Merge "Add flag for Subsequent pair Settings integration" into main
diff --git a/Android.bp b/Android.bp
index d76ea77..e27b9a1 100644
--- a/Android.bp
+++ b/Android.bp
@@ -80,11 +80,13 @@
"androidx.lifecycle_lifecycle-runtime",
"androidx.lifecycle_lifecycle-runtime-ktx",
"androidx.lifecycle_lifecycle-viewmodel",
+ "gson",
"guava",
"jsr305",
"net-utils-framework-common",
"app-usage-event-protos-lite",
"battery-event-protos-lite",
+ "battery-usage-slot-protos-lite",
"power-anomaly-event-protos-lite",
"settings-contextual-card-protos-lite",
"settings-log-bridge-protos-lite",
@@ -108,7 +110,9 @@
"aconfig_settings_flags_lib",
],
- plugins: ["androidx.room_room-compiler-plugin"],
+ plugins: [
+ "androidx.room_room-compiler-plugin",
+ ],
libs: [
"telephony-common",
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index a8adf7c..412846c 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2567,6 +2567,17 @@
</intent-filter>
</activity>
+
+ <activity android:name=".biometrics.fingerprint2.ui.enrollment.activity.FingerprintEnrollmentV2Activity"
+ android:exported="true"
+ android:permission="android.permission.MANAGE_FINGERPRINT"
+ android:theme="@style/GlifTheme.Light">
+ <intent-filter>
+ <action android:name="android.settings.FINGERPRINT_SETUP" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+
<activity android:name=".biometrics.fingerprint.FingerprintSuggestionActivity"
android:exported="true"
android:permission="android.permission.MANAGE_FINGERPRINT"
@@ -2785,6 +2796,8 @@
android:exported="true"
android:permission="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
+ <receiver android:name=".localepicker.NotificationCancelReceiver" />
+
<activity android:name="Settings$ApnEditorActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:exported="true"
@@ -4932,7 +4945,7 @@
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS"
- android:value="com.android.settings.biometrics.fingerprint2.ui.fragment.FingerprintSettingsV2Fragment" />
+ android:value="com.android.settings.biometrics.fingerprint2.ui.settings.fragment.FingerprintSettingsV2Fragment" />
<meta-data android:name="com.android.settings.HIGHLIGHT_MENU_KEY"
android:value="@string/menu_key_security"/>
</activity>
diff --git a/res-product/values-zh-rCN/strings.xml b/res-product/values-zh-rCN/strings.xml
index 1121f55..2108050 100644
--- a/res-product/values-zh-rCN/strings.xml
+++ b/res-product/values-zh-rCN/strings.xml
@@ -94,12 +94,12 @@
<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">"您可以通过刷脸来解锁手机或在应用内验证自己的身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置一张面孔。如需添加另一张面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,手机可能会解锁。\n\n此外,长相与您非常相似的人,例如您的孪生兄弟姐妹,可能也能解锁您的手机。"</string>
- <string name="security_settings_face_settings_footer" product="tablet" msgid="3467711032275909082">"您可以通过刷脸来解锁平板电脑或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,平板电脑可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
- <string name="security_settings_face_settings_footer" product="device" msgid="6237815625247917310">"您可以通过刷脸来解锁设备或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,设备可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" product="default" msgid="8266896471278294942">"您可以通过刷脸来解锁手机或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,即使您闭上眼睛,手机可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的手机。"</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" product="tablet" msgid="6932278790700490818">"您可以通过刷脸来解锁平板电脑或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,即使您闭上眼睛,平板电脑可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
- <string name="security_settings_face_settings_footer_attention_not_supported" product="device" msgid="2559602951942339212">"您可以通过刷脸来解锁设备或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,即使您闭上眼睛,设备可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
+ <string name="security_settings_face_settings_footer" product="default" msgid="3036403896485044957">"您可以通过刷脸来解锁手机或在应用内验证自己的身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置一张面孔。如需添加另一张面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,手机可能会解锁。\n\n此外,长相与您非常相似的人,例如您的孪生兄弟姐妹,可能也能解锁您的手机。"</string>
+ <string name="security_settings_face_settings_footer" product="tablet" msgid="3467711032275909082">"您可以通过刷脸来解锁平板电脑或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,平板电脑可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
+ <string name="security_settings_face_settings_footer" product="device" msgid="6237815625247917310">"您可以通过刷脸来解锁设备或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,设备可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" product="default" msgid="8266896471278294942">"您可以通过刷脸来解锁手机或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,即使您闭上眼睛,手机可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的手机。"</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" product="tablet" msgid="6932278790700490818">"您可以通过刷脸来解锁平板电脑或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,即使您闭上眼睛,平板电脑可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
+ <string name="security_settings_face_settings_footer_attention_not_supported" product="device" msgid="2559602951942339212">"您可以通过刷脸来解锁设备或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,即使您闭上眼睛,设备可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
<string name="security_settings_face_settings_footer_class3" product="default" msgid="7050076350282827484">"您可以通过刷脸来解锁手机或验证身份,例如在登录应用或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,手机可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的手机。"</string>
<string name="security_settings_face_settings_footer_class3" product="tablet" msgid="8013245173915280810">"您可以通过刷脸来解锁平板电脑或验证身份,例如在登录应用或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,平板电脑可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
<string name="security_settings_face_settings_footer_class3" product="device" msgid="4411845832787210264">"您可以通过刷脸来解锁设备或验证身份,例如在登录应用或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,设备可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
@@ -247,9 +247,9 @@
<string name="storage_wizard_migrate_v2_body" product="default" msgid="3807501187945770401">"您可以将文件、媒体和特定应用移至此<xliff:g id="NAME">^1</xliff:g>。\n\n这项移动操作将释放 <xliff:g id="SIZE">^2</xliff:g> 的手机存储空间,大约需要 <xliff:g id="DURATION">^3</xliff:g>的时间完成。"</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="tablet" msgid="5326017162943304749">"请将此平板电脑保持在充电状态"</string>
<string name="storage_wizard_migrate_v2_checklist_battery" product="default" msgid="8041162611685970218">"请将此手机保持在充电状态"</string>
- <string name="main_clear_desc" product="tablet" msgid="5778614597513856716">"此操作会清除您平板电脑"<b>"内部存储空间"</b>"中的所有数据,包括:\n\n"<li>"您的 Google 帐号"</li>\n<li>"系统和应用的数据和设置"</li>\n<li>"已下载的应用"</li></string>
- <string name="main_clear_desc" product="default" msgid="1888412491866186706">"此操作会清除您手机"<b>"内部存储空间"</b>"中的所有数据,包括:\n\n"<li>"您的 Google 帐号"</li>\n<li>"系统和应用的数据和设置"</li>\n<li>"已下载的应用"</li></string>
- <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"您目前已登录以下帐号:\n"</string>
+ <string name="main_clear_desc" product="tablet" msgid="5778614597513856716">"此操作会清除您平板电脑"<b>"内部存储空间"</b>"中的所有数据,包括:\n\n"<li>"您的 Google 账号"</li>\n<li>"系统和应用的数据和设置"</li>\n<li>"已下载的应用"</li></string>
+ <string name="main_clear_desc" product="default" msgid="1888412491866186706">"此操作会清除您手机"<b>"内部存储空间"</b>"中的所有数据,包括:\n\n"<li>"您的 Google 账号"</li>\n<li>"系统和应用的数据和设置"</li>\n<li>"已下载的应用"</li></string>
+ <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"您目前已登录以下账号:\n"</string>
<string name="main_clear_other_users_present" product="default" msgid="7750368595882863399">\n\n"此设备上目前还有其他用户。\n"</string>
<string name="main_clear_desc_erase_external_storage" product="nosdcard" msgid="5834269984459195918">\n\n"如需清除音乐、照片和其他用户数据,您需要清空该 "<b>"USB 存储设备"</b>"。"</string>
<string name="main_clear_desc_erase_external_storage" product="default" msgid="2891180770413959600">\n\n"如需清除音乐、图片和其他用户数据,您需要清空该 "<b>"SD 卡"</b>"。"</string>
@@ -301,16 +301,16 @@
<string name="battery_usage_screen_footer" product="device" msgid="6488857833906266507">"设备充电时,系统不会衡量电池用量和设备使用时间"</string>
<string name="credentials_install_summary" product="nosdcard" msgid="8585932964626513863">"从存储设备安装证书"</string>
<string name="credentials_install_summary" product="default" msgid="879796378361350092">"从SD卡安装证书"</string>
- <string name="really_remove_account_message" product="tablet" msgid="5134483498496943623">"移除该帐号会从平板电脑中删除所有相关的邮件、联系人以及其他数据。"</string>
- <string name="really_remove_account_message" product="default" msgid="6681864753604250818">"移除该帐号会从手机中删除所有相关的邮件、联系人以及其他数据。"</string>
- <string name="really_remove_account_message" product="device" msgid="1482438683708606820">"移除该帐号后,设备上的相关消息、联系人和其他数据也将全部删除!"</string>
- <string name="data_usage_auto_sync_on_dialog" product="tablet" msgid="7137933271689383781">"您在网络上对自己的帐号进行的所有更改都会自动同步到您的平板电脑。\n\n有些帐号还可以将您在平板电脑上进行的所有更改自动同步到网络上。Google 帐号就支持此类双向同步。"</string>
- <string name="data_usage_auto_sync_on_dialog" product="default" msgid="7207326473052484970">"您在网络上对自己的帐号进行的所有更改都会自动同步到您的手机。\n\n有些帐号还可以将您在手机上进行的所有更改自动同步到网络上。Google 帐号就支持此类双向同步。"</string>
+ <string name="really_remove_account_message" product="tablet" msgid="5134483498496943623">"移除该账号会从平板电脑中删除所有相关的邮件、联系人以及其他数据。"</string>
+ <string name="really_remove_account_message" product="default" msgid="6681864753604250818">"移除该账号会从手机中删除所有相关的邮件、联系人以及其他数据。"</string>
+ <string name="really_remove_account_message" product="device" msgid="1482438683708606820">"移除该账号后,设备上的相关消息、联系人和其他数据也将全部删除!"</string>
+ <string name="data_usage_auto_sync_on_dialog" product="tablet" msgid="7137933271689383781">"您在网络上对自己的账号进行的所有更改都会自动同步到您的平板电脑。\n\n有些账号还可以将您在平板电脑上进行的所有更改自动同步到网络上。Google 账号就支持此类双向同步。"</string>
+ <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/layout/battery_tips_card.xml b/res/layout/battery_tips_card.xml
index 2fa5bf2..3eb2eb2 100644
--- a/res/layout/battery_tips_card.xml
+++ b/res/layout/battery_tips_card.xml
@@ -28,7 +28,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
- android:maxLines="2"
android:textAlignment="viewStart"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="?android:attr/textColorPrimary" />
@@ -45,13 +44,12 @@
style="@style/Widget.Material3.Button.TextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="end"
+ android:layout_gravity="end|center_vertical"
android:paddingHorizontal="16dp"
android:layout_marginEnd="8dp"
android:text="@string/battery_tips_card_dismiss_button"
android:textAppearance="?android:attr/textAppearanceSmall"
- android:textColor="?android:attr/colorAccent"
- android:textStyle="bold" />
+ android:textColor="?android:attr/textColorPrimary" />
<com.google.android.material.button.MaterialButton
android:id="@+id/main_button"
@@ -59,11 +57,10 @@
android:paddingHorizontal="16dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_gravity="end"
+ android:layout_gravity="end|center_vertical"
android:text="@string/battery_tips_card_action_button"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorPrimary"
- android:textStyle="bold"
app:strokeColor="?android:attr/colorAccent"
app:strokeWidth="1dp" />
</LinearLayout>
diff --git a/res/layout/fingerprint_v2_enroll_find_sensor.xml b/res/layout/fingerprint_v2_enroll_find_sensor.xml
new file mode 100644
index 0000000..d2a495d
--- /dev/null
+++ b/res/layout/fingerprint_v2_enroll_find_sensor.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<com.google.android.setupdesign.GlifLayout
+xmlns:android="http://schemas.android.com/apk/res/android"
+android:id="@+id/setup_wizard_layout"
+style="?attr/fingerprint_layout_theme"
+android:layout_width="match_parent"
+android:layout_height="match_parent">
+
+<LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:clipToPadding="false"
+ android:clipChildren="false">
+
+ <Space
+ android:layout_width="wrap_content"
+ android:layout_height="0dp"
+ android:layout_weight="1" />
+
+ <include
+ layout="@layout/fingerprint_enroll_find_sensor_graphic"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"/>
+
+</LinearLayout>
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/fingerprint_v2_enroll_introduction.xml b/res/layout/fingerprint_v2_enroll_introduction.xml
new file mode 100644
index 0000000..e9dd08a
--- /dev/null
+++ b/res/layout/fingerprint_v2_enroll_introduction.xml
@@ -0,0 +1,214 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<com.google.android.setupdesign.GlifLayout
+xmlns:android="http://schemas.android.com/apk/res/android"
+xmlns:app="http://schemas.android.com/apk/res-auto"
+style="?attr/fingerprint_layout_theme"
+android:id="@+id/setup_wizard_layout"
+android:layout_width="match_parent"
+android:layout_height="match_parent">
+
+<LinearLayout
+ style="@style/SudContentFrame"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:clipChildren="false"
+ android:clipToPadding="false"
+ android:orientation="vertical">
+
+ <com.google.android.setupdesign.view.RichTextView
+ android:id="@+id/error_text"
+ style="@style/SudDescription.Glif"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <FrameLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <ImageView
+ style="@style/SudContentIllustration"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:contentDescription="@null"
+ android:src="@drawable/fingerprint_enroll_introduction" />
+
+ </FrameLayout>
+
+ <!-- Contains the extra information text at the bottom -->
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
+
+ <!-- How it works -->
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/BiometricEnrollIntroTitle"
+ android:text="@string/security_settings_fingerprint_v2_enroll_introduction_footer_title_2" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/icon_fingerprint"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@null"
+ android:src="@drawable/ic_fingerprint_24dp"/>
+ <Space
+ android:layout_width="16dp"
+ android:layout_height="wrap_content"/>
+ <TextView
+ android:id="@+id/footer_message_2"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/BiometricEnrollIntroMessage" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/icon_device_locked"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@null"
+ android:src="@drawable/ic_lock_24dp"/>
+ <Space
+ android:layout_width="16dp"
+ android:layout_height="wrap_content"/>
+ <TextView
+ android:id="@+id/footer_message_3"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/BiometricEnrollIntroMessage" />
+ </LinearLayout>
+
+ <!-- You're in control -->
+ <TextView
+ android:id="@+id/footer_title_1"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/BiometricEnrollIntroTitle" />
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/icon_trash_can"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@null"
+ android:src="@drawable/ic_trash_can"/>
+ <Space
+ android:layout_width="16dp"
+ android:layout_height="wrap_content"/>
+ <TextView
+ android:id="@+id/footer_message_4"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/BiometricEnrollIntroMessage" />
+ </LinearLayout>
+
+ <!-- Keep in mind -->
+ <TextView
+ android:id="@+id/footer_title_2"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/BiometricEnrollIntroTitle"
+ android:text="@string/security_settings_face_enroll_introduction_info_title"/>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/icon_info"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@null"
+ android:src="@drawable/ic_info_outline_24dp"/>
+ <Space
+ android:layout_width="16dp"
+ android:layout_height="wrap_content"/>
+ <TextView
+ android:id="@+id/footer_message_5"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/BiometricEnrollIntroMessage" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/icon_shield"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@null"
+ android:src="@drawable/ic_guarantee"/>
+ <Space
+ android:layout_width="16dp"
+ android:layout_height="wrap_content"/>
+ <TextView
+ android:id="@+id/footer_message_6"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/BiometricEnrollIntroMessage" />
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/icon_link"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:contentDescription="@null"
+ android:src="@drawable/ic_link_24dp"/>
+ <Space
+ android:layout_width="16dp"
+ android:layout_height="wrap_content"/>
+ <TextView
+ android:id="@+id/footer_learn_more"
+ android:linksClickable="true"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ style="@style/BiometricEnrollIntroMessage"
+ android:paddingBottom="0dp"
+ android:text="@string/security_settings_fingerprint_v2_enroll_introduction_message_learn_more" />
+ </LinearLayout>
+
+ </LinearLayout>
+
+</LinearLayout>
+
+</com.google.android.setupdesign.GlifLayout>
\ No newline at end of file
diff --git a/res/layout/fingerprint_v2_enroll_main.xml b/res/layout/fingerprint_v2_enroll_main.xml
new file mode 100644
index 0000000..b3d6c3d
--- /dev/null
+++ b/res/layout/fingerprint_v2_enroll_main.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2023 The Android Open Source Project
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+ <androidx.fragment.app.FragmentContainerView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/fragment_container_view"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ />
+
+</FrameLayout>
\ No newline at end of file
diff --git a/res/layout/remove_account_button.xml b/res/layout/remove_account_button.xml
index 070ecc5..2d308ae 100644
--- a/res/layout/remove_account_button.xml
+++ b/res/layout/remove_account_button.xml
@@ -19,7 +19,7 @@
android:layout_height="wrap_content"
android:orientation="vertical">
- <Button
+ <com.android.settings.widget.RestrictedButton
android:id="@+id/button"
android:text="@string/remove_account_label"
android:layout_width="wrap_content"
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 581c5d4..d6d8361 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Ná 1 minuut"</item>
<item msgid="1574040255478150028">"Ná 5 minute"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Skakel aanpasbare helderheid aan om die batterylewe te verleng"</item>
+ <item msgid="2256666063790193306">"Verkort skermuitteltyd om die batterylewe te verleng"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 7f3ff5e..f6032b2 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nie gespesifiseer nie"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Vroulik"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Manlik"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Verwyder geselekteerde taal?}other{Verwyder geselekteerde tale?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teks sal in \'n ander taal gewys word."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Kan nie alle tale verwyder nie"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gesig en <xliff:g id="WATCH">%s</xliff:g> is bygevoeg"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gesig, vingerafdruk en <xliff:g id="WATCH">%s</xliff:g> is bygevoeg"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gesig, vingerafdrukke en <xliff:g id="WATCH">%s</xliff:g> is bygevoeg"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Stel jou horlosie op"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Horlosieontsluiting is nog ’n gerieflike manier waarop jy hierdie foon kan ontsluit; byvoorbeeld, wanneer jou vingers nat is of jou gesig nie herken word nie.\n\nJy kan jou horlosie gebruik om hierdie foon te ontsluit wanneer jy:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Nie nou nie"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Gaan voort"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Meer"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Hoe dit werk"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Jou horlosie moet ontsluit, om jou pols en binne bereik van hierdie foon wees. Jy hoef jou horlosie nie weer te ontsluit terwyl dit om jou pols is nie."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Jy sal op jou horlosie in kennis gestel word wanneer hierdie foon ontsluit word. Tik op die kennisgewing om die foon weer te sluit as jy dit onbedoeld ontsluit het."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Jy is in beheer"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Jy kan jou horlosie enige tyd in Instellings uit Horlosieontsluiting verwyder"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tik op ’n kennisgewing"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swiep boontoe op die sluitskerm"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Kies jou horlosie"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Beskikbare horlosies"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Kanselleer"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bevestig"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Jy is gereed!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Jy kan nou jou horlosie gebruik om hierdie foon te ontsluit wanneer jy op die sluitskerm boontoe swiep of op ’n kennisgewing tik"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Klaar"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Horlosieontsluiting"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Jy kan jou horlosie gebruik om hierdie foon te ontsluit wanneer jy op die sluitskerm boontoe swiep of op ’n kennisgewing tik"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Om Horlosieontsluiting te gebruik, moet jou horlosie ontsluit, om jou pols, binne bereik en aan hierdie foon gekoppel wees. As die verbinding onderbreek word, sal jy die foon moet ontsluit voordat jy Horlosieontsluiting kan gebruik.\n\nHou in gedagte:\nJy kan net een horlosie op ’n slag opgestel hê. Om ’n ander horlosie by te voeg, moet jy eers die huidige een verwyder."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Kom meer te wete oor Horlosieontsluiting"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Voeg horlosie by"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Verwyder horlosie"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Gesig- en vingerafdrukslot"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Gesig- en Vingerafdrukslot vir werk"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Opstelling is nodig"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Jy sal hierdie sleutel dalk op die ander toestel ook moet invoer."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bevestig om met die gekoördineerde stel saam te bind"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Laat toegang tot jou kontakte en oproepgeskiedenis toe"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Gee ook toegang tot kontakte en oproepgeskiedenis"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Inligting sal vir oproepaankondigings en meer gebruik word"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Kon nie aan <xliff:g id="DEVICE_NAME">%1$s</xliff:g> koppel nie."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Beskikbare toestelle"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deel tans Wi‑Fi met hierdie toestel …"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Koppel tans …"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Deel warmkol"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifieer dat dit jy is"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifieer dat dit jy is"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi-wagwoord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Warmkolwagwoord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Outokoppel"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netwerk nie binne sendbereik nie"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Vergeet"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Wysig"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Kon netwerk nie vergeet nie"</string>
<string name="wifi_save" msgid="2312643132472226807">"Stoor"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Netwerkstoring het misluk"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Kanselleer"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"As jou voorkeurfrekwensie nie beskikbaar is nie, kan jou warmkol ’n ander een gebruik. Warmkolsekuriteitinstellings kan verander as jy die frekwensie verander."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nie met 6 GHz beskikbaar nie"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Sekuriteitinstellings kan verander as jy die warmkol se frekwensie verander"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Skakel tans Wi-Fi-warmkol aan..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Skakel tans Wi-Fi-warmkol af..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Verbinding is nie beskikbaar nie"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Jou wagwoord vergeet?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Jou patroon vergeet?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Jou PIN vergeet?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gebruik jou toestelpatroon om voort te gaan"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Voer jou toestel-PIN in om voort te gaan"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Voer jou toestelwagwoord in om voort te gaan"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gebruik jou werkpatroon om voort te gaan"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Teken jou patroon om voort te gaan"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Voer jou PIN in om voort te gaan"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Voer jou wagwoord in om voort te gaan"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Teken jou werkpatroon om voort te gaan"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Voer jou werk-PIN in om voort te gaan"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Voer jou werkwagwoord in om voort te gaan"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Gebruik jou toestelpatroon vir bykomende sekuriteit"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Geen beskrywing verskaf nie."</string>
<string name="settings_button" msgid="2195468788019730377">"Instellings"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ligsensitiwiteit, fotofobie, donkertema, migraine, hoofpyn, leesmodus, nagmodus, verlaag helderheid, witpunt"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Gebruiksgemak, toegangsgemak, bystand, ondersteunend"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"visie, gehoor, blind, doof, motories, handigheid, ondersteunend, bystand, gebruiksgemak, toegangsgemak, hand, hulp"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Venstervergrootglas, zoem, vergroting, swak sig, vergroot, maak groter"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Onderskrifte, onderskrifte, CC, kitstranskripsie, hardhorend, gehoorverlies, CART, spraak-na-teks, onderskrifte"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kleurkontras"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motories, muis"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"gehoortoestelle, hardhorend, gehoorverlies, kogleêre inplantings, klankversterkingtoestelle, klankverwerkers"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motories, muis, eksterne muis, hoofmuis, aannpasbare muis, rolstoel, speelstok"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"gehoortoestelle, hardhorend, gehoorverlies, kogleêre inplantings, klankversterkingtoestelle, klankverwerkers, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"hardhorend, gehoorverlies, onderskrifte, telesetter, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"drie knoppies"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"handigheid, motories, senior, artritis, rsi, beroerte, bewing, verspreide sklerose, serebrale verlamming, geskud, ooreisingbesering, hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"vertraging, handigheid, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Druk"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Af"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 drukdiens is aan}other{# drukdienste is aan}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g>-datawaarskuwing"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g>-datalimiet"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g>-datawaarskuwing / <xliff:g id="ID_2">^2</xliff:g>-datalimiet"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Diensverskaffer se datarekening kan van toestel se rekening verskil"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Sluit data uit wat deur diensverskaffernetwerke gebruik word"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> gebruik"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Stel datawaarskuwing"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Outovuldiens"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Verstekoutovuldiens"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Wagwoorde"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Wagwoorde, wagwoordsleutels en datadienste"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Wagwoorde, wagwoordsleutels en datadienste"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Bykomende verskaffers"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# wagwoord}other{# wagwoorde}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"outomaties, invul, outovul, wagwoord"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"outo, vul, outovul, data, wagwoordsleutel, wagwoord"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Maak seker dat jy hierdie program vertrou</b> <br/> <br/> <xliff:g id=app_name example=Google Outovul>%1$s</xliff:g> gebruik wat op jou skerm is om te bepaal wat outomaties ingevul kan word."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Gebruik <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> gebruik wat op jou skerm is om te bepaal wat outomaties ingevul kan word. Nuwe wagwoorde, wagwoordsleutels en ander inligting sal van nou af hier gestoor word."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Wagwoorde, wagwoordsleutels en datadienste"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Wagwoorde, wagwoordsleutels en datadienste"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Skakel %1$s af?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Skakel hierdie diens af?</b> <br/> <br/> Gestoorde inligting soos wagwoorde, wagwoordsleutels, betaalmetodes en ander inligting sal nie ingevul word wanneer jy aanmeld nie. Kies ’n wagwoord, wagwoordsleutel of datadiens om jou gestoorde inligting te gebruik."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Gebruik %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s gebruik wat op jou skerm is om te bepaal wat outomaties ingevul kan word."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limiet vir wagwoorde, wagwoordsleutels en datadienste"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Jy kan tot 5 wagwoorde, wagwoordsleutels en datadienste tegelyk aktief hê. Skakel ’n diens af om meer by te voeg."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limiet vir wagwoorde, wagwoordsleutels en datadienste"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Jy kan tot 5 wagwoorde, wagwoordsleutels en datadienste tegelyk aktief hê. Skakel ’n diens af om meer by te voeg."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Skakel af"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Outovul"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Aantekeningvlak"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Oudio vanaf versoenbare media word meer meesleurend"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Kopnasporing"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Oudio verander wanneer jy jou kop beweeg om natuurliker te klink"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Oudiotoesteltipe"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Onbekend"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Luidspreker"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Oorfone"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Motortoebehore"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Ander"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Netwerkaflaaikoerslimiet"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Stel netwerkbandwydte se binnedringingkoerslimiet op wat op alle netwerke wat \'n internetverbinding verskaf, toegepas word."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Stel netwerkaflaaikoerslimiet op"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Deïnstalleer app"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Apps wat in die afgelope # maand geïnstalleer is}other{Apps wat in die afgelope # maande geïnstalleer is}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Apps wat meer as # maand gelede geïnstalleer is}other{Apps wat meer as # maande gelede geïnstalleer is}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Aspekverhouding"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Kies ’n aspekverhouding om hierdie app in te bekyk as dit nie ontwerp is om op jou <xliff:g id="DEVICE_NAME">%1$s</xliff:g> te pas nie"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Voorgestelde apps"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Apps wat jy geïgnoreer het"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Appverstek"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Volskerm"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halfskerm"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Toestelaspekverhouding"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Die app sal herbegin as jy die aspekverhouding verander. Jy kan ongestoorde veranderinge verloor."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Vingerafdruksensor"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Flitskennisgewings"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Meer oor flitskennisgewings"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
<string name="contrast_high" msgid="3988567609694797696">"Hoog"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Hierdie app kan net in 1 venster oopgemaak word"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Diens aan"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Diens af"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Kortpad af"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aan"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Af"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Af"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Af"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Aan"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Af"</string>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index 03f79b4..37d4a62 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -210,7 +210,7 @@
<item msgid="6454031639780101439">"VPN አግብር"</item>
<item msgid="2441327072846850561">"ልጣፍ ይጻፉ"</item>
<item msgid="2162456889277589861">"የረዳት መዋቅር"</item>
- <item msgid="4644645617399271070">"የረዳት ቅጽበታዊ ገፅ እይታ"</item>
+ <item msgid="4644645617399271070">"የረዳት ቅጽበታዊ ገፅ ዕይታ"</item>
<item msgid="8321845997769724385">"የስልክ ግዛት ያንብቡ"</item>
<item msgid="8319500905789302082">"የድምፅ መልዕክት ያክሉ"</item>
<item msgid="1745447762712473288">"sip ይጠቀሙ"</item>
@@ -277,7 +277,7 @@
<item msgid="3904996949561946108">"VPN አግብር"</item>
<item msgid="504052124101832515">"ልጣፍ ይጻፉ"</item>
<item msgid="1657182386933187909">"የረዳት መዋቅር"</item>
- <item msgid="437655393941385937">"የረዳት ቅጽበታዊ ገፅ እይታ"</item>
+ <item msgid="437655393941385937">"የረዳት ቅጽበታዊ ገፅ ዕይታ"</item>
<item msgid="973363520315356844">"የስልክ ግዛት ያንብቡ"</item>
<item msgid="1203157739257425062">"የድምጽ መልዕክት ያክሉ"</item>
<item msgid="9143978647977300187">"sip ይጠቀሙ"</item>
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"ከ1 ደቂቃ በኋላ"</item>
<item msgid="1574040255478150028">"ከ5 ደቂቃዎች በኋላ"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"የባትሪ ዕድሜን ለማራዘም ተለዋዋጭ ብሩህነትን ያብሩ"</item>
+ <item msgid="2256666063790193306">"የባትሪ ዕድሜ ለማራዘም ማያ ጊዜው ማብቂያን ይቀንሱ"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 3bb1c81..be64d09 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"አልተገለጸም"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"እንስት"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"ተባዕታይ"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{የተመረጠው ቋንቋ ይወገድ?}one{የተመረጠው ቋንቋ ይወገድ?}other{የተመረጡ ቋንቋዎች ይወገዱ?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"ጽሁፍ በሌላ ቋንቋ ይታያል።"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ሁሉንም ቋንቋዎች ማስወገድ አይቻልም"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"መልክ እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"መልክ፣ የጣት አሻራ እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"መልክ፣ የጣት አሻራዎች እና <xliff:g id="WATCH">%s</xliff:g> ታክለዋል"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"የእጅ ሰዓትዎን ያዋቅሩ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"በእጅ ሰዓት መክፈቻ ለምሳሌ ጣቶችዎ እርጥብ ሲሆኑ ወይንም ፊትዎ ሳይለይ ሲቀር ይህን ስልክ ለመክፈት ሌላኛው አመቺ መንገድ ነው።\n\nየሚከተሉትን ሲያደርጉ ይህን ስልክ ለመክፈት የእጅ ሰዓትዎን መጠቀም ይችላሉ፦"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"አሁን አይደለም"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"ቀጥል"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"ተጨማሪ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"እንዴት እንደሚሠራ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"የእጅ ሰዓትዎ የተከፈተ፣ በእጅዎ ላይ ያለ እና ከስልኩ በቅርብ ርቀት ላይ መሆን አለበት። በእጅዎ ላይ በሚሆንበት ጊዜ የእጅ ሰዓትዎን በድጋሚ መክፈት አያስፈልግዎትም።"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ይህ ስልክ ሲከፈት በእጅ ሰዓትዎ ላይ ማሳወቂያ ይደርስዎታል። የተከፈተው ሳይፈልጉት ከነበረ በድጋሚ ስልኩን ለመቆለፍ ማሳወቂያውን መታ ያድርጉ።"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"እርስዎ ነዎት የሚቆጣጠሩት"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"በማንኛውም ጊዜ በቅንብሮች ውስጥ የእጅ ሰዓትዎን ከእጅ ሰዓት መክፈቻ ማስወገድ ይችላሉ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ማሳወቂያን መታ ያድርጉ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ማያ ገጽ ቁልፉ ላይ ወደ ላይ ያንሸራትቱ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"የእጅ ሰዓትዎን ይምረጡ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"የሚገኙ የእጅ ሰዓቶች"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ይቅር"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"አረጋግጥ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ጨርሰዋል!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"አሁን የማያ ገጽ ቁልፉ ላይ ወደ ላይ ሲያንሸራትቱ ወይም ማሳወቂያን መታ ሲያደርጉ ይህን ስልክ ለመክፈት የእጅ ሰዓትዎን መጠቀም ይችላሉ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ተከናውኗል"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"በእጅ ሰዓት መክፈቻ"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"የማያ ገጽ ቁልፉ ላይ ወደ ላይ ሲያንሸራትቱ ወይም ማሳወቂያን መታ ሲያደርጉ ይህን ስልክ ለመክፈት የእጅ ሰዓትዎን መጠቀም ይችላሉ"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"በእጅ ሰዓት መክፈቻን ለመጠቀም የእጅ ሰዓትዎ መከፈት፣ በአንጓዎ ላይ መሆን፣ በቅርብ ርቀት ላይ መኖር እና ከዚህ ስልክ ጋር መገናኘት አለበት። ግንኙነቱ ከተቋረጠ በእጅ ሰዓት መክፈቻን መጠቀም ከመቻልዎ በፊት ስልኩን መክፈት ይኖርብዎታል።\n\nያስታውሱ፦\nበአንድ ጊዜ ማዋቀር የሚችሉት አንድ የእጅ ሰዓት ብቻ ነው። ሌላ የእጅ ሰዓት ለማከል በመጀመሪያ የአሁኑን ያስወግዱ።"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ስለ በእጅ ሰዓት መክፈቻ የበለጠ ይወቁ"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"የእጅ ሰዓትን አክል"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"የእጅ ሰዓትን አስወግድ"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"የጣት አሻራ እና በመልክ መክፈት"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"በመልክ እና በጣት አሻራ መክፈቻ ለሥራ"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ውቅረት ያስፈልጋል"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ይህን የይለፍ ቁልፍ በሌላ መሣሪያ ላይማስገባት ሊያስፈልግህ ይችላል።"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ከተባባሪ ስብስቡ ጋር ለመጣመር ያረጋግጡ"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"የእርስዎን የእውቂያዎች እና የጥሪ ታሪክ መዳረሻ ይፍቀዱ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"እንዲሁም ለዕውቂያዎች እና ለጥሪ ታሪክ መዳረሻ ይፍቀዱ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"መረጃው ለደውል ማስታወቂያዎች እና ለሌሎችም ጥቅም ላይ ይውላል"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"ወደ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ማገናኘት አልተቻለም።"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"የሚገኙ መሣሪያዎች"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ከዚህ መሣሪያ ጋር Wi‑Fi በማጋራት ላይ…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"በመገናኘት ላይ…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"መገናኛ ነጥብን አጋራ"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"እርስዎ መሆንዎን ያረጋግጡ"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"እርስዎ መሆንዎን ያረጋግጡ"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"የWi-Fi ይለፍ ቃል፦ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"የመገናኛ ነጥብ የይለፍ ቃል፦ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"በራስ-ሰር ተገናኝ"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"አውታረ መረብ በክክል ውስጥ አይደለም"</string>
<string name="wifi_forget" msgid="3485573280364015620">"እርሳ"</string>
<string name="wifi_modify" msgid="5127926476383659412">"ቀይር"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"አውታረ መረብ መርሳት አልተሳካም"</string>
<string name="wifi_save" msgid="2312643132472226807">"አስቀምጥ"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"አውታረ መረብ ማስቀመጥ አልተሳካም"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"ይቅር"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"ተመራጭ ሞገድዎ ካልተገኘ መገናኛ ነጥብዎ ሌላ ሊጠቀም ይችላል። ሞገዱን ከለወጡት የመገናኛ ነጥብ የደህንነት ቅንብሮች ሊለወጡ ይችላሉ።"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"በ6 ጊኸ አይገኝም"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"የመገናኛ ነጥቡን ሞገድ ከለወጡ የደህነነት ቅንብሮች ሊለወጡ ይችላሉ"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"የመገናኛ ነጥብን በማብራት ላይ…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"የመገናኛ ነጥብን በማጥፋት ላይ…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"እንደ ሞደም መሰካት አይገኝም"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"የእርስዎን የይለፍ ቃል ረሱት?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"የእርስዎን ስርዓተ-ጥለት ረሱት?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"የእርስዎን ፒን ረሱት?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ለመቀጠል የመሣሪያዎን ስርዓተ ጥለት ይጠቀሙ"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ለመቀጠል የመሣሪያዎን ፒን ያስገቡ"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ለመቀጠል የመሣሪያዎን ይለፍ ቃል ያስገቡ"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ለመቀጠል የሥራ ስርዓተ-ጥለትዎን ይጠቀሙ"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ለመቀጠል የእርስዎን ሥርዓተ ጥለት ይሳሉ"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"ለተጨማሪ ደህንነት፣ የእርስዎን መሣሪያ ሥርዓተ ጥለት ይጠቀሙ"</string>
@@ -1827,7 +1861,7 @@
<string name="accessibility_screen_magnification_about_title" msgid="8857919020223505415">"ስለማጉላት"</string>
<string name="accessibility_screen_magnification_footer_learn_more_content_description" msgid="924848332575978463">"ስለማጉላት የበለጠ ይወቁ"</string>
<string name="accessibility_magnification_mode_title" msgid="8446475127807168063">"የማጉላት ዓይነት"</string>
- <string name="accessibility_magnification_area_settings_message" msgid="8498648925928109462">"የእርስዎን ሙሉ ገፅ እይታ፣ አንድ የተወሰነ ቦታ ያጉሉ ወይም በሁለቱም አማራጮች መካከል ይቀያይሩ"</string>
+ <string name="accessibility_magnification_area_settings_message" msgid="8498648925928109462">"የእርስዎን ሙሉ ገፅ ዕይታ፣ አንድ የተወሰነ ቦታ ያጉሉ ወይም በሁለቱም አማራጮች መካከል ይቀያይሩ"</string>
<string name="accessibility_magnification_area_settings_full_screen_summary" msgid="2728962784113713010">"ሙሉ ማያ ገፅ"</string>
<string name="accessibility_magnification_area_settings_window_screen_summary" msgid="9191632962955877019">"ከፊል ማያ ገፅ"</string>
<string name="accessibility_magnification_area_settings_all_summary" msgid="8107511976748799455">"በሙሉ እና በከፊል ማያ ገፅ መካከል ይቀያይሩ"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ምንም መግለጫ አልቀረበም።"</string>
<string name="settings_button" msgid="2195468788019730377">"ቅንብሮች"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"የብርሃን ስሜታዊነት፣ የፎቶፊብያ፣ ጠቆር ያለ ገጽታ፣ ማይግሬን፣ ራስ ምታት፣ የንባብ ሁነታ፣ የማታ ሁነታ፣ ብሩህነትን ይቀንሱ፣ ነጭ ነጥብ"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"የአጠቃቀም ቀላልነት፣ የመዳረሻ ቀላልነት፣ እርዳታ፣ ረዳት"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"ዕይታ፣ መስማት፣ ዓይነ ስውር፣ መስማት የተሳነው፣ ሞተር፣ ቅልጥፍና፣ ረዳት፣ ዕርዳታ፣ የአጠቃቀም ቀላልነት፣ የመድረስ ቀላልነት፣ እጅ፣ እገዛ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"የመስኮት ማጉያ፣ ኣጕላ፣ ማጉላት፣ ዝቅተኛ-ዕይታ፣ ማተለቅ፣ ያተልቁ"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"የመግለጫ ጽሑፎች፣ ዝግ መግለጫ ጽሑፎች፣ ካርቦን ቅጂ (ካቅ)፣ የቀጥታ ጽሁፍ ግልባጭ፣ የመስማት ችግር፣ መስማት አለመቻል፣ ተሳቢ፣ ከንግግር- ወደ-ጽሁፍ፣ የግርጌ ጽሑፎች"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"የቀለም ንጽጽር"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"ሞተር፣ መዳፊት"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"የመስሚያ አጋዥ መሣሪያዎች፣ የመስማት ችግር፣ የመስማት ችሎታን ማጣት፣ ኮክሌር ተከላዎች፣ የማጉያ መሣሪያዎች፣ የድምፅ ማቀናበሪያዎች"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"ሞተር፣ መዳፊት፣ ውጪያዊ መዳፊት፣ ዋና መዳፊት፣ የሚለምድ መዳፊት፣ ተሽከርካሪ ወንበር፣ ጆይስቲክ"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"የመስሚያ አጋዥ መሣሪያዎች፣ የመስማት ችግር፣ የመስማት ችሎታን ማጣት፣ ኮክሌር ተከላዎች፣ የማጉያ መሣሪያዎች፣ የድምፅ ማቀናበሪያዎች፣ ፒኤስኤፒ"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"የመስማት ችግር፣ መስማት አለመቻል፣ መግለጫ ጽሑፎች፣ TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ሦስት አዝራሮች"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ቅልጥፍና፣ ሞተር፣ አዛውንት፣ አርትራይተስ፣ አርኤስአይ፣ ስትሮክ፣ መንቀጥቀጥ፣ መልቲፕል ስክሌሮሲስ፣ ሰረብራክል ፓልሲ፣ መንቀጥቀጥ፣ ተደጋጋሚ የጫና ጉዳት፣ እጅ"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"መዘግየት፣ ቅልጥፍና፣ የበላይ"</string>
<string name="print_settings" msgid="8519810615863882491">"ማተም"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ጠፍቷል"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 የህትመት አገልግሎት በርቷል}one{# የህትመት አገልግሎት በርቷል}other{# የህትመት አገልግሎቶች በርተዋል}}"</string>
@@ -3645,10 +3682,10 @@
<string name="background_check_pref" msgid="5304564658578987535">"የዳራ ፍተሻ"</string>
<string name="assist_access_context_title" msgid="5201495523514096201">"ከማያ ገፅ ላይ ጽሁፍ ተጠቀም"</string>
<string name="assist_access_context_summary" msgid="6951814413185646275">"ረዳት መተግበሪያው የማያ ገጹን ይዘቶች እንደ ጽሁፍ እንዲደርሳባቸው ይፍቀዱ"</string>
- <string name="assist_access_screenshot_title" msgid="4395902231753643633">"ቅጽበታዊ ገፅ እይታ ይጠቀሙ"</string>
+ <string name="assist_access_screenshot_title" msgid="4395902231753643633">"ቅጽበታዊ ገፅ ዕይታ ይጠቀሙ"</string>
<string name="assist_access_screenshot_summary" msgid="5276593070956201863">"ረዳት መተግበሪያው የማያ ገጹን ምስል እንዲደርስበት ይፍቀዱ"</string>
<string name="assist_flash_title" msgid="5449512572885550108">"ማያ ገጽን አብራ"</string>
- <string name="assist_flash_summary" msgid="3032289860177784594">"የረዳት መተግበሪያ ጽሁፍ ከማያ ገፅ ወይም ቅጽበታዊ ገፅ እይታ ሲደርስ የማያ ገፅ ጠርዞችን አብራ"</string>
+ <string name="assist_flash_summary" msgid="3032289860177784594">"የረዳት መተግበሪያ ጽሁፍ ከማያ ገፅ ወይም ቅጽበታዊ ገፅ ዕይታ ሲደርስ የማያ ገፅ ጠርዞችን አብራ"</string>
<string name="assist_footer" msgid="8248015363806299068">"ረዳት መተግበሪያዎች በሚያዩት ማያ ገፅ ላይ ባለ መረጃ ላይ ተመስርቶ ሊያግዘዎት ይችላል። አንዳንድ መተግበሪያዎች የተዋሃደ እርዳታ ለእርስዎ ለመስጠት ሁለቱንም ማስጀመሪያ እና የድምጽ ግቤት አገልግሎቶችን ይደግፋሉ።"</string>
<string name="average_memory_use" msgid="717313706368825388">"አማካይ የማህደረ ትውስታ አጠቃቀም"</string>
<string name="maximum_memory_use" msgid="2171779724001152933">"ከፍተኛ ማህደረ ትውስታ አጠቃቀም"</string>
@@ -3714,7 +3751,7 @@
<string name="screen_zoom_title" msgid="6928045302654960559">"የማሳያ መጠን"</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_preview_title" msgid="5288355628444562735">"ቅድመ-ዕይታ"</string>
<string name="screen_zoom_make_smaller_desc" msgid="2628662648068995971">"አነስ አድርግ"</string>
<string name="screen_zoom_make_larger_desc" msgid="7268794713428853139">"ተለቅ አድርግ"</string>
<string name="disconnected" msgid="3469373726996129247">"አልተያያዘም"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"የ<xliff:g id="ID_1">^1</xliff:g> ውሂብ ማስጠንቀቂያ"</string>
<string name="cell_data_limit" msgid="256855024790622112">"የ<xliff:g id="ID_1">^1</xliff:g> ውሂብ ገደብ"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"የ<xliff:g id="ID_1">^1</xliff:g> ውሂብ ማስጠንቀቂያ / የ<xliff:g id="ID_2">^2</xliff:g> ውሂብ ገደብ"</string>
- <string name="operator_warning" msgid="5672761970087591211">"የአገልግሎት አቅራቢ ውሂብ የሂሳብ አከፋፈል ከመሳሪያ የሂሳብ አከፋፈል የተለየ ሊሆን ይችላል"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"የአገልግሎት አቅራቢ አውታረ መረቦች የሚጠቀሙበትን ውሂብ አያካትትም"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ጥቅም ላይ ውሏል"</string>
<string name="set_data_warning" msgid="1685771882794205462">"የውሂብ ማስጠንቀቂያ አዘጋጅ"</string>
@@ -3861,7 +3897,7 @@
<string name="notification_log_details_actions" msgid="2269605330470905236">"እርምጃዎች"</string>
<string name="notification_log_details_title" msgid="8365761340979164197">"አርዕስት"</string>
<string name="notification_log_details_remoteinput" msgid="264204203044885921">"የርቀት ግቤቶች"</string>
- <string name="notification_log_details_content_view" msgid="7193602999512479112">"ብጁ እይታ"</string>
+ <string name="notification_log_details_content_view" msgid="7193602999512479112">"ብጁ ዕይታ"</string>
<string name="notification_log_details_extras" msgid="8602887256103970989">"ተጨማሪ ነገሮች"</string>
<string name="notification_log_details_icon" msgid="6728710746466389675">"አዶ"</string>
<string name="notification_log_details_parcel" msgid="2098454650154230531">"የእሽግ መጠን"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"የራስ-ሙላ አገልግሎት"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ነባሪ የራስ-ሙላ አገልግሎት"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"የይለፍ ቃላት"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች"</string>
<string name="credman_credentials" msgid="4931371941253324143">"ተጨማሪ አቅራቢዎች"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# የይለፍ ቃል}one{# የይለፍ ቃል}other{# የይለፍ ቃሎች}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ራስ-ሰር፣ ሙላ፣ ራስ-ሙላ፣ የይለፍ ቃል"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ራስ ሰር፣ ሙላ፣ ውሂብ፣ የይለፍ ቁልፍ፣ የይለፍ ቃል"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>ይህን መተግበሪያ የሚያምኑት መሆንዎን ያረጋግጡ</b> <br/> <br/> <xliff:g id=app_name example=Google ራስ-ሙላ>%1$s</xliff:g> ምን በራስ መሞላት እንደሚችል ለማወቅ በማያ ገጽዎ ላይ ያለውን ነገር ይጠቀማል።"</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> ምን በራስ መሞላት እንደሚችል ለማወቅ በማያ ገጽዎ ላይ ያለውን ይጠቀማል። ከእንግዲህ አዲስ የይለፍ ቃላት፣ የይለፍ ቁልፎች እና ሌላ መረጃ እዚህ ይቀመጣሉ።"</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s ይጥፋ?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ይህ አገልግሎት ይጥፋ?</b> <br/> <br/> እንደ ይለፍ ቃላት፣ ይለፍ ቁልፎች፣ የመክፈያ ዘዴዎች እና ሌሎች መረጃዎች ያለ የተቀመጠ መረጃ በመለያ በሚገቡበት ጊዜ አይሞሉም። የእርስዎን የተቀመጠ መረጃ ለመጠቀም የይለፍ ቃል፣ የይለፍ ቁልፍ ወይም የውሂብ አገልግሎት ይምረጡ።"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ጥቅም ላይ ይዋል?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ምን በራስ-ሰር እንደሚሞላ ለመወሰን በማያ ገጽዎ ላይ ያለውን ይጠቀማል።"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች ገደብ"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"እስከ 5 የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች በአንድ ጊዜ ማግበር ይችላሉ። ተጨማሪ ለማከል አንድ አገልግሎት ያጥፉ።"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች ገደብ"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"እስከ 5 የይለፍ ቃላት፣ የይለፍ ቁልፎች እና የውሂብ አገልግሎቶች በአንድ ጊዜ ማግበር ይችላሉ። ተጨማሪ ለማከል አንድ አገልግሎት ያጥፉ።"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"አጥፋ"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ራስ-ሙላ"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"የምዝግብ ማስታወሻ ደረጃ"</string>
@@ -4596,7 +4632,7 @@
<string name="mic_toggle_description" msgid="484139688645092237">"ለመተግበሪያዎች እና አገልግሎቶች። ይህ ቅንብር ከጠፋ እርስዎ ወደ አንድ የአደጋ ጊዜ ቁጥር ሲደውሉ የማይክሮፎን ውሂብ አሁንም ሊጋራ ይችላል።"</string>
<string name="previous_page_content_description" msgid="6438292457923282991">"ቀዳሚ"</string>
<string name="next_page_content_description" msgid="1641835099813416294">"ቀጣይ"</string>
- <string name="colors_viewpager_content_description" msgid="2591751086138259565">"የቀለም ቅድመ-እይታ"</string>
+ <string name="colors_viewpager_content_description" msgid="2591751086138259565">"የቀለም ቅድመ-ዕይታ"</string>
<string name="bluetooth_sim_card_access_notification_title" msgid="7351015416346359536">"የሲም መዳረሻ ጥያቄ"</string>
<string name="bluetooth_sim_card_access_notification_content" msgid="8685623260103018309">"አንድ መሣሪያ ሲምዎን መድረስ ይፈልጋል። ዝርዝሮችን ለማግኘት መታ ያድርጉ።"</string>
<string name="bluetooth_sim_card_access_dialog_title" msgid="5616323725563125179">"የሲም መዳረሻ ይፈቀድ?"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ከተኳኋኝ ሚዲያ የሚመጣው ድምፅ ይበልጥ መሳጭ ይሆናል"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"የጭንቅላት ክትትል"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ጭንቅላትዎን ወደ ይበልጥ ተፈጥሯዊ ድምፅ ሲያንቀሳቅሱት ኦዲዮው ይቀየራል"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"የኦዲዮ መሣሪያ ዓይነት"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ያልታወቀ"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ድምጽ ማጉያ"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"የራስ ላይ ማዳመጫዎች"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"የመኪና መለዋወጫ"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"ሌላ"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"የአውታረ መረብ የማውረድ ፍጥነት ገደብ"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"የበይነመረብ ግንኙነትን በሚሰጡ ሁሉም አውታረ መረቦች ላይ የሚተገበረውን የአውታረ መረብ መተላለፊያ ይዘት ማስገቢያ ፍጥነት ገደብ ያዋቅሩ።"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"የአውታረ መረብ የማውረድ ፍጥነት ገደብን ያዋቅሩ"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"መተግበሪያን አራግፍ"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ባለፈው # ወር ውስጥ የተጫኑ መተግበሪያዎች}one{ባለፈው # ወር ውስጥ የተጫኑ መተግበሪያዎች}other{ባለፉት # ወራት ውስጥ የተጫኑ መተግበሪያዎች}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ከ# ወር በላይ በፊት የተጫኑ መተግበሪያዎች}one{ከ# ወር በላይ በፊት የተጫኑ መተግበሪያዎች}other{ከ# ወራት በላይ በፊት የተጫኑ መተግበሪያዎች}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"ምጥጥነ ገፅታ"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"ይህ መተግበሪያ ለእርስዎ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> እንዲሆን ካልተነደፈ እሱን ለመመልከት ምጥጥነ ገፅታን ይምረጡ"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"በአስተያየት የተጠቆሙ መተግበሪያዎች"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"የሻሯቸው መተግበሪያዎች"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"የመተግበሪያ ነባሪ"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ሙሉ ገጽ ዕይታ"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ግማሽ ማያ ገጽ"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"የመሣሪያ ምጥጥነ ገፅታ"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"የምጥጥነ ገፅታውን ሲለውጡ መተግበሪያው እንደገና ይጀምራል። ያልተቀመጡ ለውጦችን ሊያጡ ይችላሉ።"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"የጣት አሻራ ዳሳሽ"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"የብልጭታ ማሳወቂያዎች"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"ስለብልጭታ ማሳወቂያዎች"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"መካከለኛ"</string>
<string name="contrast_high" msgid="3988567609694797696">"ከፍተኛ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ይህ መተግበሪያ መከፈት የሚችለው በ1 መስኮት ብቻ ነው"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"አገልግሎት በርቷል"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"አገልግሎት ጠፍቷል"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"አቋራጭ ጠፍቷል"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"በርቷል"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ጠፍቷል"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ጠፍቷል"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ጠፍቷል"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"በርቷል"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ጠፍቷል"</string>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 966767e..156297f 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"بعد دقيقة واحدة"</item>
<item msgid="1574040255478150028">"بعد 5 دقائق"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"تفعيل ميزة \"السطوع التكيُّفي\" لإطالة عمر البطارية"</item>
+ <item msgid="2256666063790193306">"تقليل مهلة غلق الشاشة لإطالة عمر البطارية"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 09233c6..3af15d9 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"عدم تحديد صيغة مخاطبة"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"صيغة مخاطبة مؤنثة"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"صيغة مخاطبة مذكّرة"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{هل تريد إزالة اللغة المحددة؟}zero{هل تريد إزالة اللغات المحددة؟}two{هل تريد إزالة اللغتَين المحددتَين؟}few{هل تريد إزالة اللغات المحددة؟}many{هل تريد إزالة اللغات المحددة؟}other{هل تريد إزالة اللغات المحددة؟}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"سيتم عرض النص بلغة أخرى."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"تتعذر إزالة كل اللغات"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"تمت إضافة وجه و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"تمت إضافة وجه وبصمة إصبع و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"تمت إضافة وجه وبصمات أصابع و\"<xliff:g id="WATCH">%s</xliff:g>\"."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ضبط إعدادات ساعتك"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"إنّ ميزة \"فتح الهاتف من الساعة\" هي طريقة أخرى مناسبة لفتح قفل هذا الهاتف عندما لا يتم التعرّف على وجهك أو إصبعك.\n\nيمكنك استخدام ساعتك لفتح قفل هذا الهاتف عند:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"لاحقًا"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"متابعة"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"المزيد"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"طريقة العمل"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"يجب أن تكون ساعتك مفتوحة القفل وعلى معصمك وقريبة من هذا الهاتف. لن تحتاج إلى فتح قفل ساعتك مرة أخرى عندما تكون على معصمك."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"عندما يتم فتح قفل هذا الهاتف، ستتلقّى إشعارًا بذلك على ساعتك. وفي حال فتح قفل الهاتف بدون قصد، يمكنك النقر على الإشعار لقفله مرّة أخرى."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"القرار لك"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"يمكنك إزالة ساعتك من ميزة \"فتح الهاتف من الساعة\" في أي وقت من خلال \"الإعدادات\"."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"انقر على أحد الإشعارات."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"مرِّر سريعًا للأعلى على شاشة القفل."</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"اختَر ساعتك"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"الساعات المتاحة"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"إلغاء"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"تأكيد"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"تم الانتهاء من عملية الإعداد."</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"يمكنك الآن استخدام ساعتك لفتح قفل هذا الهاتف عند التمرير سريعًا للأعلى على شاشة القفل أو النقر على أحد الإشعارات."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"تم"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ميزة \"فتح الهاتف من الساعة\""</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"يمكنك استخدام ساعتك لفتح قفل هذا الهاتف عند التمرير سريعًا للأعلى على شاشة القفل أو النقر على أحد الإشعارات."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"لاستخدام ميزة \"فتح الهاتف من الساعة\"، يجب أن تكون ساعتك مفتوحة القفل وعلى معصمك وقريبة من هذا الهاتف ومتصلة به. في حال انقطاع الاتصال بينهما، سيكون عليك فتح قفل الهاتف لتتمكَّن من استخدام ميزة \"فتح الهاتف من الساعة\".\n\nملاحظة مهمّة:\nيمكنك إعداد ساعة واحدة فقط في كل مرّة. ولإضافة ساعة أخرى، يجب إزالة الساعة الحالية أولاً."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"مزيد من المعلومات عن ميزة \"فتح الهاتف من الساعة\""</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"إضافة ساعة"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"إزالة ساعة"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"فتح الجهاز بالتعرّف على الوجه وبصمة الإصبع"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"فتح الجهاز ببصمة الإصبع وبالتعرف على الوجه للملف الشخصي للعمل"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"يجب ضبط الإعدادات"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"قد يلزم أيضًا كتابة مفتاح المرور هذا على الجهاز الآخر."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"تأكيد الاقتران بمجموعة الأجهزة المنظمة"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"السماح بالوصول إلى جهات الاتصال وسجلّ المكالمات"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"السماح أيضًا بالوصول إلى جهات الاتصال وسجلّ المكالمات"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"سيتم استخدام المعلومات في إشعارات المكالمات وغير ذلك."</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"تعذر الاتصال بـ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"الأجهزة المتاحة"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"جارٍ مشاركة Wi‑Fi مع هذا الجهاز…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"جارٍ الاتصال…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"مشاركة نقطة الاتصال"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"إثبات هويتك"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"التحقق من هويتك"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"كلمة مرور Wi-Fi هي: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"كلمة مرور نقطة الاتصال: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"اتصال تلقائي"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"الشبكة ليست في النطاق."</string>
<string name="wifi_forget" msgid="3485573280364015620">"حذف"</string>
<string name="wifi_modify" msgid="5127926476383659412">"تعديل"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"تعذّر حذف الشبكة"</string>
<string name="wifi_save" msgid="2312643132472226807">"حفظ"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"تعذّر حفظ الشبكة"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"إلغاء"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"إذا كان معدّل التردد المفضّل لديك غير متاح، قد تستخدم نقطة الاتصال معدّل تردد مختلف. قد تتغير إعدادات أمان نقطة الاتصال في حال تغيير معدّل التردد."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"لا تتوفّر إمكانية الاتصال بنطاق تردد 6 غيغاهرتز."</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"قد تتغير إعدادات الأمان في حال تغيير معدّل تردد نقطة الاتصال."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"جارٍ تفعيل نقطة الاتصال…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"جارٍ إيقاف نقطة الاتصال…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"التوصيل غير متاح"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"هل نسيت كلمة المرور؟"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"هل نسيت النقش؟"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"هل نسيت رقم التعريف الشخصي؟"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"استخدِم النقش الذي اخترته على جهازك للمتابعة."</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"للمتابعة، أدخِل رقم التعريف الشخصي للجهاز."</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"أدخل كلمة مرور الجهاز للمتابعة."</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"استخدم نقش ملفك الشخصي الخاص بالعمل للمتابعة."</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"يجب رسم النقش للمتابعة."</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"استخدام نقش للجهاز لزيادة الأمان"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"لم يتم تقديم أي وصف."</string>
<string name="settings_button" msgid="2195468788019730377">"الإعدادات"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"حساسية الضوء، رهاب الضوء، المظهر الداكن، الصداع الشقِّي، الصداع، وضع القراءة، الوضع الليلي، تقليل درجة السطوع، النقطة البيضاء"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"سهولة الاستخدام، سهولة الوصول، المساعدة، تلبية احتياجات المستهلك"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"نظر، سمع، كفيف، أصم، مهارات حركية، مهارات، مساعِد، مساعدة، سهولة الاستخدام، سهولة الوصول، يد، مساعدة"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"أداة تكبير النوافذ، تصغير/تكبير، التكبير، ضعف في النظر، تكبير، جعله أكبر"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"شرح، ترجمة وشرح، CC، كتابة مباشرة، ضعيف السمع، فقدان السمع، الترجمة في الوقت الفعلي، تحويل الكلام إلى نص، ترجمة"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"تباين الألوان"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"المهارات الحركية، الماوس"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"سماعات الأذن الطبية، ضعيف السمع، فقدان السمع، القواقع المزروعة، أجهزة تضخيم الصوت، معالجات الصوت"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"مهارات حركية، ماوس، ماوس خارجي، ماوس يتبع حركة الرأس، ماوس تكيّفي، كرسي متحرك، ذراع تحكُّم"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"سماعات أذن طبية، ضعيف السمع، فقدان السمع، قواقع مزروعة، أجهزة تضخيم الصوت، معالِجات صوتية، منتجات تضخيم الصوت الشخصية (PSAP)"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"ضعيف السمع، فقدان السمع، شرح، المبرقة، tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ثلاثة أزرار"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"مهارات يدوية، مهارات حركية، كبار السن، التهاب المفاصل، إصابة الإجهاد المتكرر، سكتة دماغية، رعّاش، تصلّب متعدد، شلل دماغي، اهتزاز، إصابة الإجهاد المتكرر، يد"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"مهلة، مهارات يدوية، كبار السن"</string>
<string name="print_settings" msgid="8519810615863882491">"الطباعة"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"غير مفعّلة"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{خدمة طباعة واحدة قيد التشغيل}zero{# خدمة طباعة قيد التشغيل}two{خدمتا طباعة قيد التشغيل}few{# خدمات طباعة قيد التشغيل}many{# خدمة طباعة قيد التشغيل}other{# خدمة طباعة قيد التشغيل}}"</string>
@@ -2774,7 +2811,7 @@
<string name="help_label" msgid="2896538416436125883">"المساعدة والملاحظات"</string>
<string name="user_account_title" msgid="6389636876210834864">"حساب المحتوى"</string>
<string name="user_picture_title" msgid="7176437495107563321">"معرف الصورة"</string>
- <string name="extreme_threats_title" msgid="1098958631519213856">"التهديدات القصوى"</string>
+ <string name="extreme_threats_title" msgid="1098958631519213856">"التهديدات البالغة الخطورة"</string>
<string name="extreme_threats_summary" msgid="3560742429496902008">"تلقي إشعارات بشأن التهديدات القصوى للحياة والممتلكات"</string>
<string name="severe_threats_title" msgid="8962959394373974324">"التهديدات الخطيرة"</string>
<string name="severe_threats_summary" msgid="4982256198071601484">"تلقي تنبيهات بشأن التهديدات الخطيرة للحياة والممتلكات"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"سيتم تحذيرك عند استخدام <xliff:g id="ID_1">^1</xliff:g> من البيانات."</string>
<string name="cell_data_limit" msgid="256855024790622112">"الحد الأقصى للبيانات <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"حد التحذير بشأن البيانات <xliff:g id="ID_1">^1</xliff:g> / الحد الأقصى للبيانات <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"قد تختلف طريقة احتساب بيانات مشغِّل شبكة الجوّال عن طريقة الاحتساب على الجهاز."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"تم استبعاد البيانات التي تستخدمها شبكات مشغِّلي شبكات الجوّال."</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> مستخدَمة"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ضبط تحذيرات استخدام البيانات"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"خدمة الملء التلقائي"</string>
<string name="default_autofill_app" msgid="372234803718251606">"الخدمة التلقائية للملء التلقائي"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"كلمات المرور"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"كلمات المرور ومفاتيح المرور وخدمات البيانات"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"كلمات المرور ومفاتيح المرور وخدمات البيانات"</string>
<string name="credman_credentials" msgid="4931371941253324143">"مقدّمو الخدمات الإضافيون"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{كلمة مرور واحدة}zero{# كلمة مرور}two{كلمتا مرور}few{# كلمات مرور}many{# كلمة مرور}other{# كلمة مرور}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"تلقائي، ملء، ملء تلقائي، كلمة مرور"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"تلقائي، ملء، ملء تلقائي، بيانات، مفتاح مرور، كلمة مرور"</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="4951846866327737417">"<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="2642776965060619988">"كلمات المرور ومفاتيح المرور وخدمات البيانات"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"كلمات المرور ومفاتيح المرور وخدمات البيانات"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"هل تريد إيقاف %1$s؟"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>هل تريد إيقاف هذه الخدمة؟</b> <br/> <br/> لن يتم ملء المعلومات المحفوظة، مثل كلمات المرور ومفاتيح المرور وطرق الدفع والمعلومات الأخرى عند تسجيل الدخول. لاستخدام معلوماتك المحفوظة، اختَر كلمة مرور أو مفتاح مرور أو خدمة بيانات."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"هل تريد استخدام %1$s؟"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"يستخدم %1$s المحتوى الذي يظهر على شاشتك لتحديد ما يمكن ملؤه تلقائيًا."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"الحد الأقصى المسموح به لكلمات المرور ومفاتيح المرور وخدمات البيانات"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"يمكن أن يكون لديك ما يصل إلى 5 كلمات مرور ومفاتيح مرور وخدمات بيانات نشطة في الوقت نفسه. عليك إيقاف خدمة لإضافة المزيد."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"الحد الأقصى المسموح به لكلمات المرور ومفاتيح المرور وخدمات البيانات"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"يمكن أن يكون لديك ما يصل إلى 5 كلمات مرور ومفاتيح مرور وخدمات بيانات نشطة في الوقت نفسه. لإضافة المزيد، عليك إيقاف إحدى الخدمات."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"إيقاف"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"الملء التلقائي"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"مستوى التسجيل"</string>
@@ -4676,6 +4712,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"الصوت الصادر من الوسائط المتوافقة يصبح أكثر وضوحًا."</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"تتبُّع حركة الرأس"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"يتغيّر الصوت بينما تُحرك رأسك ليبدو طبيعيًا جدًا."</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"نوع الجهاز السماعي"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"غير معروف"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"مكبّر صوت"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"سماعات رأس"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"مجموعة أدوات السيارة"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"غير ذلك"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"الحد الأقصى لمعدّل تنزيل الشبكة"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"يمكنك ضبط الحد الأقصى لحركة البيانات الواردة في معدّل نقل البيانات للشبكة والذي يتم تطبيقه على جميع الشبكات التي توفّر اتصالاً بالإنترنت."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ضبط الحد الأقصى لمعدّل تنزيل الشبكة"</string>
@@ -4692,7 +4736,7 @@
<string name="bluetooth_find_broadcast_summary" msgid="3907899428626210673">"محتوى البث الذي تستمع إليه"</string>
<string name="bluetooth_find_broadcast" msgid="1768337775649457586">"البحث عن عمليات بث"</string>
<string name="bluetooth_find_broadcast_button_leave" msgid="7881206581147104908">"مغادرة البث"</string>
- <string name="bluetooth_find_broadcast_button_scan" msgid="3995664694641895189">"إجراء مسح ضوئي لرمز الاستجابة السريعة"</string>
+ <string name="bluetooth_find_broadcast_button_scan" msgid="3995664694641895189">"مسح رمز الاستجابة السريعة ضوئيًا"</string>
<string name="find_broadcast_password_dialog_title" msgid="3176988702535737484">"إدخال كلمة المرور"</string>
<string name="find_broadcast_password_dialog_connection_error" msgid="47873617983439400">"يتعذّر الاتصال. يُرجى إعادة المحاولة."</string>
<string name="find_broadcast_password_dialog_password_error" msgid="243855327674765">"كلمة مرور غير صحيحة"</string>
@@ -4708,24 +4752,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"إلغاء تثبيت التطبيق"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{التطبيقات التي تم تثبيتها خلال آخر شهر}zero{التطبيقات التي تم تثبيتها خلال آخر # شهر}two{التطبيقات التي تم تثبيتها خلال آخر شهرَين}few{التطبيقات التي تم تثبيتها خلال آخر # شهور}many{التطبيقات التي تم تثبيتها خلال آخر # شهرًا}other{التطبيقات التي تم تثبيتها خلال آخر # شهر}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{التطبيقات التي تم تثبيتها قبل أكثر من شهر واحد}zero{التطبيقات التي تم تثبيتها قبل أكثر من # شهر}two{التطبيقات التي تم تثبيتها قبل أكثر من شهرَين}few{التطبيقات التي تم تثبيتها قبل أكثر من # شهور}many{التطبيقات التي تم تثبيتها قبل أكثر من # شهرًا}other{التطبيقات التي تم تثبيتها قبل أكثر من # شهر}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"نسبة العرض إلى الارتفاع"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"يمكنك اختيار نسبة العرض إلى الارتفاع لهذا التطبيق في حال لم يكن مصمّمًا ليلائم جهاز <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"التطبيقات المقترَحة"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"التطبيقات التي تم فيها إلغاء نسبة العرض إلى الارتفاع"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"نسبة العرض إلى الارتفاع التلقائية في التطبيق"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ملء الشاشة"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"نصف الشاشة"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"نسبة العرض إلى الارتفاع في الجهاز"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ستتم إعادة تشغيل التطبيق عند تغيير نسبة العرض إلى الارتفاع. يُرجى العِلم أنّك قد تفقد التغييرات التي يتم حفظها."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"أداة استشعار بصمة الإصبع"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"الإشعارات المصحوبة بوميض"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"لمحة عن الإشعارات المصحوبة بوميض"</string>
@@ -4760,10 +4798,9 @@
<string name="contrast_medium" msgid="384414510709285811">"متوسط"</string>
<string name="contrast_high" msgid="3988567609694797696">"مرتفع"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"لا يمكن فتح هذا التطبيق إلا في نافذة واحدة."</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"الخدمة مفعَّلة"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"الخدمة غير مفعَّلة"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"الاختصار غير مفعَّل"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"الميزة مفعّلة"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"الميزة غير مفعّلة"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"الاختصار غير مفعَّل"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"الاختصار غير مفعَّل"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"الميزة مفعَّلة"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"الميزة غير مفعَّلة"</string>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index 702d076..963bd3f 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"১ মিনিটৰ পাছত"</item>
<item msgid="1574040255478150028">"৫ মিনিটৰ পাছত"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"বেটাৰীৰ জীৱনকাল বৃদ্ধি কৰিবলৈ অভিযোজিত উজ্জ্বলতা অন কৰক"</item>
+ <item msgid="2256666063790193306">"বেটাৰীৰ জীৱনকাল বৃদ্ধি কৰিবলৈ স্ক্ৰীনৰ সময় উকলা হ্ৰাস কৰক"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 19fb5e6..fec8a03 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"নিৰ্দিষ্ট কৰা হোৱা নাই"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"নাৰী-বিষয়ক"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"পুৰুষ-বিষয়ক"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{বাছনি কৰা ভাষাটো আঁতৰাবনে?}one{বাছনি কৰা ভাষাসমূহ আঁতৰাবনে?}other{বাছনি কৰা ভাষাসমূহ আঁতৰাবনে?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"পাঠ অইন এটা ভাষাত দেখুওৱা হ\'ব।"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"আটাইবোৰ ভাষা আঁতৰাব নোৱাৰি"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"মুখাৱয়ব আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"মুখাৱয়ব, ফিংগাৰপ্ৰিণ্ট আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"মুখাৱয়ব, ফিংগাৰপ্ৰিণ্ট আৰু <xliff:g id="WATCH">%s</xliff:g> যোগ দিয়া হৈছে"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"আপোনাৰ ঘড়ীটো ছেট আপ কৰক"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটো হৈছে এই ফ’নটো আনলক কৰাৰ অন্য এটা বিশ্বাসযোগ্য উপায়, যেনে, আপোনাৰ আঙুলিকেইটা তিতি থাকিলে অথবা মুখাৱয়ব চিনাক্ত নকৰিলে।\n\nআপুনি এইবোৰ পৰিস্থিতিত এই ফ’নটো আনলক কৰিবলৈ আপোনাৰ ঘড়ীটো ব্যৱহাৰ কৰিব পাৰে:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"এতিয়া নহয়"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"অব্যাহত ৰাখক"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"অধিক"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"এইটোৱে কেনেকৈ কাম কৰে"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"আপোনাৰ ঘড়ীটো আনলক কৰা অৱস্থাত, আপোনাৰ হাতৰ মণিবন্ধত থকাৰ লগতে এই ফ’নটোৰ ওচৰত থাকিবই লাগিব। আপোনাৰ ঘড়ীটো আপোনাৰ হাতৰ মণিবন্ধত থকাৰ সময়ত আপুনি সেইটো পুনৰ আনলক কৰিব নালাগে।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"এই ফ’নটো আনলক কৰিলে, আপুনি নিজৰ ঘড়ীত জাননী পাব। এইটো আপুনি নিবিচৰাকৈ আনলক কৰা হ’লে, পুনৰ ফ’নটো লক কৰিবলৈ জাননীত টিপক।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"নিয়ন্ত্ৰণ আপোনাৰ হাতত আছে"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"আপুনি ছেটিঙত যিকোনো সময়তে ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটোৰ পৰা আপোনাৰ ঘড়ীটো আঁতৰাব পাৰে"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"কোনো জাননীত টিপক"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"লক স্ক্ৰীনত ওপৰলৈ ছোৱাইপ কৰক"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"আপোনাৰ ঘড়ীটো বাছনি কৰক"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"উপলব্ধ ঘড়ী"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"বাতিল কৰক"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"নিশ্চিত কৰক"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"আপুনি সম্পূৰ্ণ সাজু!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"আপুনি এতিয়া লক স্ক্ৰীনত ওপৰলৈ ছোৱাইপ কৰোঁতে অথবা কোনো জাননীত টিপাৰ সময়ত আপুনি নিজৰ ফ’নটো আনলক কৰিবলৈ আপোনাৰ ঘড়ীটো ব্যৱহাৰ কৰিব পাৰে"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"কৰা হ’ল"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধা"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"আপুনি লক স্ক্ৰীনত ওপৰলৈ ছোৱাইপ কৰিলে অথবা কোনো জাননীত টিপিলে নিজৰ ফ’নটো আনলক কৰিবলৈ আপোনাৰ ঘড়ীটো ব্যৱহাৰ কৰিব পাৰে"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটো ব্যৱহাৰ কৰিবলৈ, আপোনাৰ ঘড়ীটো আনলক কৰা অৱস্থাত হাতৰ মণিবন্ধত থকাৰ লগতে সেইটো ওচৰতে তথা ফ’নটোৰ সৈতে সংযুক্ত হৈ থাকিবই লাগিব। যদি সংযোগটো ব্যাহত হয়, আপুনি ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটো ব্যৱহাৰ কৰিব পৰা হোৱাৰ পূৰ্বে ফ’নটো আনলক কৰিব লাগিব।\n\nমনত ৰাখিব:\nআপুনি এবাৰত কেৱল এটা ঘড়ী ছেট আপ কৰি ৰাখিব পাৰে। আন এটা ঘড়ী যোগ দিবলৈ, প্ৰথমে বৰ্তমানৰটো আঁতৰাওক।"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ঘড়ীৰ দ্বাৰা আনলক কৰাৰ সুবিধাটোৰ বিষয়ে অধিক জানক"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ঘড়ী যোগ দিয়ক"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ঘড়ীটো আঁতৰাওক"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ফিংগাৰপ্ৰিণ্ট আৰু মুখাৱয়বৰ দ্বাৰা আনলক কৰাৰ সুবিধা"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"কাৰ্যৰ বাবে ফেচ আৰু ফিংগাৰপ্ৰিন্ট আনলক"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ছেটআপৰ আৱশ্যক"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"আপুনি এই পাছকীটো অন্য ডিভাইচত টাইপ কৰিবলগীয়াও হ’ব পাৰে৷"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"সংগতিপূৰ্ণ ছেটৰ সৈতে পেয়াৰ কৰিবলৈ নিশ্চিত কৰক"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"আপোনাৰ সম্পৰ্কসূচী আৰু কলৰ ইতিহাস এক্সেছ কৰিবলৈ অনুমতি দিয়ক"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"লগতে আপোনাৰ সম্পৰ্কসমূহ আৰু কলৰ ইতিহাস এক্সেছ কৰিবলৈ অনুমতি দিয়ক"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"এই তথ্য কল ঘোষণা আৰু অধিক কাৰ্যৰ বাবে ব্যৱহাৰ কৰা হ’ব"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰিব পৰা নগ\'ল।"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"উপলব্ধ ডিভাইচসমূ্হ"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"এই ডিভাইচটোৰ সৈতে ৱাই-ফাই শ্বেয়াৰ কৰি থকা হৈছে…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"সংযোগ কৰি থকা হৈছে…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"হ’টস্প’ট শ্বেয়াৰ কৰক"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"এইজন আপুনিয়েই বুলি সত্যাপন কৰক"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"এইজন আপুনি বুলি ভেৰিফাই কৰক"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ৱাই-ফাইৰ পাছৱৰ্ড: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"হটস্পটৰ পাছৱৰ্ড: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"স্বয়ং-সংযোগ"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"নেটৱৰ্ক পৰিসৰত নাই"</string>
<string name="wifi_forget" msgid="3485573280364015620">"পাহৰক"</string>
<string name="wifi_modify" msgid="5127926476383659412">"সংশোধন কৰক"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"নেটৱৰ্ক পাহৰিব পৰা নগ\'ল"</string>
<string name="wifi_save" msgid="2312643132472226807">"ছেভ কৰক"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"নেটৱৰ্ক ছেভ কৰাত ব্যৰ্থ হ’ল"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"বাতিল কৰক"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"যদি আপুনি অগ্ৰাধিকাৰ দিয়া ফ্ৰিকুৱেন্সীটো উপলব্ধ নহয়, আপোনাৰ হ\'টস্প\'টে অন্য এটা ব্যৱহাৰ কৰিব পাৰে। আপুনি ফ্ৰিকুৱেন্সীটো সলনি কৰিলে হ\'টস্প\'টৰ সুৰক্ষাৰ ছেটিংটো সলনি হ\'ব পাৰে।"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"৬ গিগাহাৰ্টজৰ সৈতে উপলব্ধ নহয়"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"আপুনি হ’টস্প’টৰ ফ্ৰিকুৱেন্সীটো সলনি কৰিলে সুৰক্ষাৰ ছেটিংটো সলনি হ’ব পাৰে"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"হটস্পট অন কৰি থকা হৈছে…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"হটস্পট অফ কৰি থকা হৈছে…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"টিথাৰিং উপলব্ধ নহয়"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"আপোনাৰ পাছৱর্ডটো পাহৰিলে নেকি?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"আপোনাৰ আর্হিটো পাহৰিলে নেকি?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"আপোনাৰ পিনটো পাহৰিলে নেকি?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"অব্যাহত ৰাখিবলৈ আপোনাৰ ডিভাইচৰ আৰ্হিটো দিয়ক।"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"অব্যাহত ৰাখিবলৈ আপোনাৰ ডিভাইচৰ পিন দিয়ক"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"অব্যাহত ৰাখিবলৈ আপোনাৰ ডিভাইচৰ পাছৱৰ্ডটো দিয়ক"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"অব্যাহত ৰাখিবলৈ আপোনাৰ কৰ্মস্থানৰ আৰ্হিটো ব্যৱহাৰ কৰক"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"অব্যাহত ৰাখিবলৈ আপোনাৰ আৰ্হিটো অংকন কৰক"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"অতিৰিক্ত সুৰক্ষাৰ বাবে আপোনাৰ ডিভাইচ আৰ্হি ব্যৱহাৰ কৰক"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"কোনো বিৱৰণ যোগান ধৰা হোৱা নাই।"</string>
<string name="settings_button" msgid="2195468788019730377">"ছেটিং"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"পোহৰৰ প্ৰতি সংবেদনশীলতা, ফট’ফ’বিয়া, গাঢ় থীম, মাই-গ্ৰেইন, মূৰৰ বিষ, পঢ়াৰ ম’ড, নৈশ ম’ড, উজ্জ্বলতা কমাওক, হোৱাইট পইণ্ট"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ব্যৱহাৰ কৰাৰ বাবে সুবিধাজনক, এক্সেছ কৰাৰ বাবে সুবিধাজনক, সহায়তা, সহায়ক"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"দৃষ্টিশক্তি, শ্ৰৱণশক্তি, দৃষ্টিশক্তিহীন, শ্ৰৱণশক্তিহীন, মটৰ, দক্ষতা, সহায়তা, সহায়ক, ব্যৱহাৰ কৰাৰ বাবে সুবিধাজনক, এক্সেছ কৰাৰ বাবে সুবিধাজনক, হাত, সহায়"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ৱিণ্ড’ বিবৰ্ধক, জুম, বিবৰ্ধন, কম দৃষ্টিশক্তি, প্ৰসাৰিত কৰক, ডাঙৰ কৰক"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"কেপশ্বন, ক্ল’জ্ড কেপশ্বন, CC, লাইভ ট্ৰেন্সক্ৰাইব, কমকৈ শুনা, শ্ৰৱণশক্তিৰ ক্ষয়, CART, কথনৰ পৰা পাঠ, ছাবটাইটেল"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"ৰঙৰ কনট্ৰাষ্ট"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"মটৰ, মাউছ"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"শ্ৰৱণ যন্ত্ৰ, শুনাৰ ক্ষেত্ৰত সমস্যা, শ্ৰৱণ শক্তি হ্ৰাস, ক’ক্লিয়াৰ ইমপ্লাণ্ট, পৰিৱৰ্ধন ডিভাইচ, ধ্বনি প্ৰ’চেছৰ"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"মটৰ, মাউছ, বাহ্যিক মাউছ, হে’ড মাউছ, অভিযোজিত মাউছ, হুইলচ্চেয়াৰ, জয়ষ্টিক"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"শ্ৰৱণ যন্ত্ৰ, কমকৈ শুনা, শ্ৰৱণশক্তিৰ ক্ষয়, ক’ক্লিয়াৰ ইমপ্লাণ্ট, ধ্বনি পৰিৱৰ্ধক ডিভাইচ, ধ্বনি প্ৰ’চেছৰ, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"কমকৈ শুনা, শ্ৰৱণশক্তিৰ ক্ষয়, কেপশ্বন, টেলিটাইপ, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"তিনিটা বুটাম"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"দক্ষতা, মটৰ, জ্যেষ্ঠ, অৰ্থ্ৰাইটিছ, আৰএছআই, ষ্ট্ৰ’ক, ট্ৰিম’ৰ, একাধিক স্ক্লেৰ’চিছ, চেৰেব্ৰেল পলছি, কঁপনি, পুনৰাবৃত্তিমূলক ষ্ট্ৰেইন আঘাত, হাত"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"বিলম্ব, দক্ষতা, জ্যেষ্ঠ"</string>
<string name="print_settings" msgid="8519810615863882491">"প্ৰিণ্ট কৰি থকা হৈছে"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"অফ"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{১ টা প্ৰিণ্ট সেৱা অন আছে}one{# টা প্ৰিণ্ট সেৱা অন আছে}other{# টা প্ৰিণ্ট সেৱা অন আছে}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"ডেটাৰ ব্যৱহাৰ সম্পৰ্কীয় সকীয়নি <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"ডেটাৰ সীমা <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ডেটাৰ ব্যৱহাৰ সম্পৰ্কীয় সকীয়নি <xliff:g id="ID_1">^1</xliff:g> / ডেটাৰ সীমা <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"বাহকৰ ডেটা গণনা কাৰ্য ডিভাইচৰ গণনাতকৈ পৃথক হ’ব পাৰে"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"বাহকৰ নেটৱর্কে ব্যৱহাৰ কৰা ডেটা বহিৰ্ভূত কৰে"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> খৰচ কৰা হৈছে"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ডেটা ব্যৱহাৰৰ সকীয়নি ছেট কৰক"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"স্বয়ংপূৰ্তি সেৱা"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ডিফ’ল্ট স্বয়ংক্ৰিয়ভাৱে পূৰ হোৱাৰ সেৱা"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"পাছৱৰ্ড"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা"</string>
<string name="credman_credentials" msgid="4931371941253324143">"অতিৰিক্ত প্ৰদানকাৰী"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# টা পাছৱৰ্ড}one{# টা পাছৱৰ্ড}other{# টা পাছৱৰ্ড}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"স্বয়ংক্ৰিয়, পূৰ, স্বয়ংক্রিয়ভাৱে পূৰ হোৱা, পাছৱৰ্ড"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"স্বয়ংক্রিয়, পূৰ হোৱা, স্বয়ংক্রিয়ভাৱে পূৰ হোৱাৰ সুবিধা, ডেটা, পাছকী, পাছৱৰ্ড"</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="4951846866327737417">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g>এ কি স্বয়ংক্রিয়ভাৱে পূৰ কৰা হ’ব সেয়া নিৰ্ধাৰণ কৰিবলৈ আপোনাৰ স্ক্ৰীনত প্ৰদৰ্শিত সমল ব্যৱহাৰ কৰে। এতিয়াৰ পৰা নতুন পাছৱৰ্ড, পাছকী আৰু অন্য তথ্য ইয়াৰ পৰা ছেভ কৰা হ’ব।"</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s অফ কৰিবনে?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>এই সেৱাটো অফ কৰিব নেকি?</b> <br/> <br/> আপুনি ছাইন ইন কৰিলে পাছৱৰ্ড, পাছকী, পৰিশোধ পদ্ধতিৰ দৰে ছেভ কৰি থোৱা তথ্য আৰু অন্য তথ্য পূৰ কৰা নহ’ব। আপোনাৰ ছেভ হৈ থকা তথ্য ব্যৱহাৰ কৰিবলৈ, এটা পাছৱৰ্ড, পাছকী অথবা ডেটা সেৱা বাছনি কৰক।"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ব্যৱহাৰ কৰিব নেকি?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$sএ স্বয়ংক্ৰিয়ভাৱে কি পূৰাব পাৰি সেয়া নিৰ্ধাৰণ কৰিবলৈ আপোনাৰ স্ক্ৰীনত থকা বস্তুবোৰ ব্যৱহাৰ কৰে।"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱাৰ সীমা"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"একে সময়তে আপোনাৰ ৫ টা পৰ্যন্ত পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা সক্ৰিয় হৈ থাকিব পাৰে। অধিক যোগ দিবলৈ এটা সেৱা অফ কৰক।"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱাৰ সীমা"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"একে সময়তে আপোনাৰ ৫ টা পৰ্যন্ত পাছৱৰ্ড, পাছকী আৰু ডেটা সেৱা সক্ৰিয় হৈ থাকিব পাৰে। অধিক যোগ দিবলৈ এটা সেৱা অফ কৰক।"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"অফ কৰক"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"স্বয়ংপূৰ্তি"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"লগিঙৰ স্তৰ"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"সমিল মিডিয়াৰ পৰা অহা অডিঅ’ অধিক ইমাৰ্ছিভ হৈ পৰে"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"হে’ড ট্ৰেকিং"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"আপুনি নিজৰ মূৰটো লৰচৰ কৰিলে শ্ৰৱণৰ অভিজ্ঞতা অধিক স্বতঃস্ফূৰ্ত কৰিবলৈ অডিঅ’ সলনি হয়"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"অডিঅ’ ডিভাইচৰ প্ৰকাৰ"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"অজ্ঞাত"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"স্পীকাৰ"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"হেডফ’ন"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"গাড়ীৰ কিট"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"অন্য"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"নেটৱৰ্কৰ ডাউনল’ডৰ হাৰৰ সীমা"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"নেটৱৰ্কৰ বেণ্ডৱিথ ইনগ্ৰেছৰ হাৰৰ সীমা কনফিগাৰ কৰক, যিটো ইণ্টাৰনেট সংযোগ প্ৰদান কৰা আটাইবোৰ নেটৱৰ্কত প্ৰযোজ্য হয়।"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"নেটৱৰ্কৰ ডাউনল’ডৰ হাৰৰ সীমা কনফিগাৰ কৰক"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"মধ্যমীয়া"</string>
<string name="contrast_high" msgid="3988567609694797696">"উচ্চ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"এই এপ্টো কেৱল ১ খন ৱিণ্ড’ত খুলিব পাৰি"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"সেৱা অন আছে"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"সেৱা অফ আছে"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"শ্বৰ্টকাট অফ আছে"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"অন আছে"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"অফ আছে"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"অফ আছে"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"অফ আছে"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"অন আছে"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"অফ আছে"</string>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index ed6a3f2..f98c8c9 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 dəqiqə sonra"</item>
<item msgid="1574040255478150028">"5 dəqiqə sonra"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Adaptiv parlaqlığı aktiv edərək batareya ömrünü uzadın"</item>
+ <item msgid="2256666063790193306">"Ekranın avtomatik sönmə vaxtını azaldaraq batareya ömrünü uzadın"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index bd614ed..c58264d 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Göstərilməyib"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Qadın"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Kişi"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Seçilmiş dil silinsin?}other{Seçilmiş dillər silinsin?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Mətn başqa dildə göstəriləcək."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Bütün dilləri silmək mümkün deyil."</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Üz və <xliff:g id="WATCH">%s</xliff:g> əlavə edilib"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Üz, barmaq izi və <xliff:g id="WATCH">%s</xliff:g> əlavə edilib"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Üz, barmaq izləri və <xliff:g id="WATCH">%s</xliff:g> əlavə edilib"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Saatı ayarlayın"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Barmaq yaş olduqda, yaxud üz tanınmadıqda Saatla Kilidaçma ilə bu telefonu asanlıqla kiliddən çıxara bilərsiniz.\n\nAşağıdakı hallarda bu telefonu saat ilə kiliddən çıxarmaq olar:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"İndi yox"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Davam edin"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Ardı"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Haqqında"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Saat kiliddən çıxarılmalı, biləkdə və bu telefona yaxın olmalıdır. Biləkdə olarkən saatı yenidən kiliddən çıxarmaq lazım deyil."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Bu telefon kiliddən çıxarıldıqda saatda bildiriş alacaqsınız. İstəmədiyiniz halda kiliddən çıxarılarsa, telefonu yenidən kilidləmək üçün bildirişə toxunun."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Hər şey nəzarətiniz altındadır"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Ayarlarda saatı Saatla Kilidaçmadan silə bilərsiniz"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Bildirişə toxunun"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Kilid ekranında yuxarı sürüşdürün"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Saatınızı seçin"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Əlçatan saatlar"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Ləğv edin"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Təsdiq edin"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Hər şey hazırdır!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Kilid ekranında yuxarı sürüşdürdükdə və ya bildirişə toxunduqda saat ilə bu telefonu kiliddən çıxara bilərsiniz"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Hazırdır"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Saatla Kilidaçma"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Kilid ekranında yuxarı sürüşdürməklə və ya bildirişə toxunmaqla bu telefonu saat ilə kiliddən çıxara bilərsiniz"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Saatla Kilidaçmadan istifadə üçün saat kiliddən çıxarılmalı, biləkdə, yaxında olmalı və bu telefona qoşulmalıdır. Bağlantı dayandıqda Saatla Kilidaçmadan istifadə üçün telefonu kiliddən çıxarmalısınız.\n\nUnutmayın:\nEyni anda yalnız bir saat ayarlamaq olar. Başqa saat əlavə etmək üçün cari saatı silin."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saatla Kilidaçma haqqında ətraflı məlumat"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Saat əlavə edin"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Saatı silin"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Barmaq İzi və Üz ilə Kiliddən Açma"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"İş üçün Üz və Barmaq izi ilə kiliddən çıxarma"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Ayarlamaq lazımdır"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Siz bu əsas açarı digər cihazda da yazmalı ola bilərsiniz."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Əlaqələndirilmiş dəstlə birləşdirməyi təsdiq edin"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Kontaktlar və zəng tarixçəsinə giriş icazəsi verin"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Kontaktlar və zəng tarixçəsinə də giriş imkanı verin"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Məlumat zəng elanı və s. üçün istifadə ediləcək"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazına qoşula bilmədi."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Əlçatan cihazlar"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi bu cihazla paylaşılır…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Qoşulur..."</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot\'u paylaşın"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Siz olduğunuzu doğrulayın"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Siz olduğunuzu təsdiqləyin"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi parolu: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot parolu: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Avtomatik bağlantı"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Şəbəkə aralıqda deyil"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Unudulsun"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Dəyişdirin"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Şəbəkəni unutmaq alınmadı"</string>
<string name="wifi_save" msgid="2312643132472226807">"Yadda saxlayın"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Şəbəkəni yadda saxlamaq alınmadı"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Ləğv edin"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Tərcih etdiyiniz tezlik əlçatan deyilsə, hotspot digərindən istifadə edə bilər. Tezliyi dəyişsəniz, hotspot təhlükəsizlik ayarları dəyişə bilər."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz ilə əlçatan deyil"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Hotspot tezliyini dəyişsəniz, təhlükəsizlik ayarları dəyişə bilər"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Hotspot yandırılır..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Hotspot söndürülür…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Modem rejimi əlçatan deyil"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Parolu unutmusunuz?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Modeli unutmusunuz?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN\'i unutmusunuz?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Davam etmək üçün cihaz modelinizi istifadə edin"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Davam etmək üçün cihaz PİN kodunu daxil edin"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Davam etmək üçün cihaz parolunu daxil edin"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Davam etmək üçün iş modelinizi istifadə edin"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Modeli çəkərək davam edin"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"PIN-i daxil edərək davam edin"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Parolu daxil edərək davam edin"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"İş modelini çəkərək davam edin"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Davam etmək üçün iş PİN kodunu yazın"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Davam etmək üçün iş parolunu daxil edin"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Əlavə edilmiş təhlükəsizlik üçün cihaz modelini istifadə edin"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Heç bir təsvir verilməyib."</string>
<string name="settings_button" msgid="2195468788019730377">"Parametrlər"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"işıq həssaslığı, fotofobiya, qaranlıq tema, miqren, baş ağrısı, oxu rejimi, gecə rejimi, parlaqlığı azalt, ağ nöqtə"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Asan istifadə, asan giriş, yardım, yardımçı"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"görmə, eşitmə, kor, kar, motorika, çeviklik, köməkçi, yardım, asan istifadə, asan giriş, əl, kömək"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Pəncərə Böyüdücü, Zoom, Böyütmə, Zəif görmə, Böyüt, böyüt"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Altyazı, qapalı altyazılar, Nüsxəni alan, Canlı Transkripsiya, eşitmə çətinliyi, eşitmə qabiliyyətinin itirilməsi, CART, nitqin mətnə çevrilməsi, subtitr"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"rəng kontrastı"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"sistem, maus"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"eşitmə aparatları, eşitmə çətinliyi, eşitmə qabiliyyətinin itməsi, qulaq ilbizi implantları, gücləndirmə cihazları, səs prosessorları"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, maus, xarici maus, baş ilə hərəkət etdirilən maus, adaptiv maus, əlil arabası, coystik"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"eşitmə aparatları, eşitmə çətinliyi, eşitmə qabiliyyətinin itməsi, qulaq ilbizi implantları, gücləndirmə cihazları, səs prosessorları, fərdi səs gücləndirmə məhsulları"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"eşitmə çətinliyi, eşitmə qabiliyyətinin itirilməsi, altyazılar, Teletayp, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"üç düymə"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"çeviklik, motorika, yaşlı, artrit, rsi, iflic, əsmə, dağınıq skleroz, serebral iflic, titrəmə, təkrarlanan gərginlik zədəsi, əl"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"gecikmə, çeviklik, yaşlı"</string>
<string name="print_settings" msgid="8519810615863882491">"Çap"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Deaktiv"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 çap xidməti aktivdir}other{# çap xidməti aktivdir}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> trafik xəbərdarlığı"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> trafik limiti"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data xəbərdarlığı / <xliff:g id="ID_2">^2</xliff:g> data limiti"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operator data hesablanması cihazınızın hesablamasından fərqli ola bilər"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Operatorun işlətdiyi trafik istisnadır"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> istifadə edildi"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Xəbərdarlıq ayarlayın"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Avtodoldurma xidməti"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Defolt avtomatik doldurma xidməti"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Parollar"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Parol, açar və data xidmətləri"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Parol, giriş açarı və data xidmətləri"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Əlavə provayderlər"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# parol}other{# parol}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"avto, doldur, avto doldurma, parol"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"avto, doldurma, avto doldurma, data, giriş açarı, parol"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Bu tətbiqə inana biləcəyinizi dəqiqləşdirin</b> <br/> <br/> <xliff:g id=app_name example=Google Avtodoldurma>%1$s</xliff:g> ekranı analiz edərək avtomatik doldurula bilən sahələri tapır."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>İstifadə edin: <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> avtomatik doldurulan məlumatları müəyyənləşdirmək üçün ekrandakı kontentdən istifadə edir. Yeni parol, açar və digər məlumatlar burada saxlanacaq."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Parol, açar və data xidmətləri"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Parol, giriş açarı və data xidmətləri"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s deaktiv edilsin?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Bu xidmət deaktiv edilsin?</b> <br/> <br/> Daxil olduqda parol, giriş açarı, ödəniş metodu və s. kimi saxlanmış məlumatlar doldurulmayacaq. Saxlanmış məlumatdan istifadə etmək üçün parol, giriş açarı və ya data xidməti seçin."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s istifadə edilsin?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s avto doldurma üçün ekrandakı məlumatdan istifadə edir."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Parol, açar və data xidmətləri limiti"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Eyni anda maksimum 5 parol, açar və data xidməti aktiv ola bilər. Yenisini əlavə etmək üçün xidmətlərdən birini deaktiv edin."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Parol, giriş açarı və data xidmətləri limiti"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Eyni anda maksimum 5 parol, giriş açarı və data xidməti aktiv ola bilər. Yenisini əlavə etmək üçün bir xidməti deaktiv edin."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Deaktiv edin"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Avtodoldurma"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Jurnal səviyyəsi"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Uyğun mediadan gələn audio daha immersiv olur"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Baş izləməsi"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Daha təbii səslənmək üçün başınızı hərəkət etdirdikcə səs dəyişir"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audiocihaz növü"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Naməlum"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Dinamik"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Qulaqlıqlar"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Avtomobil dəsti"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Digər"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Şəbəkə endirmə sürəti limiti"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"İnternet bağlantısı təmin edən bütün şəbəkələrə tətbiq edilən şəbəkə zolaq genişliyi giriş sürəti limitini konfiqurasiya edin."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Şəbəkə endirmə sürəti limitini konfiqurasiya edin"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Tətbiqi sistemdən silin"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Son # ay ərzində quraşdırılmış tətbiqlər}other{Son # ay ərzində quraşdırılmış tətbiqlər}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Minimum # ay əvvəl quraşdırılmış tətbiqlər}other{Minimum # ay əvvəl quraşdırılmış tətbiqlər}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Tərəflər nisbəti"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazına uyğun deyilsə, bu tətbiqə baxmaq üçün tərəflər nisbəti seçin"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Təklif edilən tətbiqlər"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Əvəzlədiyiniz tətbiqlər"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Tətbiq defoltu"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Tam ekran"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Yarımekran"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Cihazın tərəflər nisbəti"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Tərəflər nisbətini dəyişdikdə tətbiq yenidən başladılacaq. Yadda saxlanmayan dəyişikliklər itə bilər."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Barmaq izi sensoru"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"İşıqlı bildirişlər"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"İşıqlı bildirişlər haqqında"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Orta"</string>
<string name="contrast_high" msgid="3988567609694797696">"Yüksək"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Bu tətbiq yalnız 1 pəncərədə açıla bilər"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Xidmət aktivdir"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Xidmət deaktivdir"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Qısayol deaktivdir"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aktiv"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Deaktiv"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Deaktiv"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Deaktiv"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Aktiv"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Deaktiv"</string>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index bee9f81..be79aa7 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Posle 1 minuta"</item>
<item msgid="1574040255478150028">"Posle 5 minuta"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Uključite prilagodljivu osvetljenost da biste produžili trajanje baterije"</item>
+ <item msgid="2256666063790193306">"Smanjite vreme gašenja ekrana da biste produžili trajanje baterije"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 8e0b9db..31978ca 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nije navedeno"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženski rod"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Muški rod"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Želite li da uklonite izabrani jezik?}one{Želite li da uklonite izabrane jezike?}few{Želite li da uklonite izabrane jezike?}other{Želite li da uklonite izabrane jezike?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst će biti prikazan na nekom drugom jeziku."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nije moguće ukloniti sve jezike"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodati su lice i <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodati su lice, otisak prsta i <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodati su lice, otisci prstiju i <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Podesite sat"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Otključavanje satom je još jedan pogodan način za otključavanje ovog telefona, na primer, kada su vam prsti mokri ili se lice ne prepoznaje.\n\nMožete da koristite sat da biste otključali ovaj telefon kada:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne sada"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Nastavi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Još"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Princip rada"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Sat mora da bude otključan, na zglobu i u domašaju ovog telefona. Sat nećete morati da otključavate ponovo dok vam je na zglobu."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Dobićete obaveštenje na satu kada se ovaj telefon otključa. Ako se otključao kada to niste želeli, dodirnite obaveštenje da biste ga ponovo zaključali."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ti imaš kontrolu"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Sat možete da uklonite iz otključavanja satom u bilo kom trenutku u podešavanjima"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Dodirnite obaveštenje"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Prevucite nagore na zaključanom ekranu"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Odaberite sat"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupni satovi"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Otkaži"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdi"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Spremni ste!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Sada možete da koristite sat da biste otključali ovaj telefon kada prevučete nagore na zaključanom ekranu ili dodirnete obaveštenje"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gotovo"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Otključavanje satom"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Možete da koristite sat da biste otključali ovaj telefon kada prevučete nagore na zaključanom ekranu ili dodirnete obaveštenje"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Da biste koristili otključavanje satom, sat mora da bude otključan, na zglobu, u domašaju i povezan sa ovim telefonom. Ako se veza prekine, moraćete da otključate telefon da biste mogli da koristite otključavanje satom.\n\nImajte na umu:\nU jednom navratu možete da podesite samo jedan sat. Da biste dodali drugi sat, prvo uklonite aktuelni sat."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saznajte više o otključavanju sata"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj sat"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Ukloni sat"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Otisak prsta i otključavanje licem"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Otključavanje licem i otiskom prsta za posao"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Treba da podesite"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Možda će biti potrebno da unesete ovaj pristupni kôd i na drugom uređaju."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrdite radi uparivanja sa koordinisanim skupom"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Dozvoli pristup kontaktima i istoriji poziva"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Dozvoli i pristup kontaktima i istoriji poziva"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informacije će se koristiti za obaveštenja o pozivima i drugo"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nije moguće povezati se sa uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupni uređaji"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deli se Wi‑Fi sa ovim uređajem…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Povezuje se…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Delite hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potvrdite svoj identitet"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potvrdite da ste to vi"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Lozinka za WiFi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Lozinka hotspota: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatsko povezivanje"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mreža nije u dometu"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Zaboravi"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Izmeni"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Brisanje mreže nije uspelo"</string>
<string name="wifi_save" msgid="2312643132472226807">"Sačuvaj"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Čuvanje mreže nije uspelo"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Otkaži"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ako željena frekvencija nije dostupna, hotspot može da koristi neku drugu. Podešavanja bezbednosti hotspota mogu da se promene ako promenite frekvenciju."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nije dostupno uz 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Podešavanja bezbednosti mogu da se promene ako promenite frekvenciju hotspota"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Uključivanje hotspota…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Isključivanje hotspota..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Privezivanje je nedostupno"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zaboravili ste lozinku?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zaboravili ste šablon?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zaboravili ste PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Koristite šablon za uređaj da biste nastavili"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Unesite PIN uređaja da biste nastavili"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Unesite lozinku uređaja da biste nastavili"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Koristite šablon za poslovni profil da biste nastavili"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Nacrtajte šablon da biste nastavili"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Unesite PIN da biste nastavili"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Unesite lozinku da biste nastavili"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Nacrtajte šablon za posao da biste nastavili"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Unesite PIN za poslovni profil da biste nastavili"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Unesite lozinku za poslovni profil da biste nastavili"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Radi veće bezbednosti koristite šablon za uređaj"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nije naveden opis."</string>
<string name="settings_button" msgid="2195468788019730377">"Podešavanja"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"osetljivost na svetlost, fotofobija, tamna tema, migrena, glavobolja, režim čitanja, noćni režim, smanjivanje osvetljenosti, bela tačka"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"jednostavnost korišćenja, lakši pristup, pomoć, pomoćno"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vid, sluh, slepi, gluvi, motorika, spretnost, pomoćno, pomoć, jednostavno korišćenje, jednostavni pristup, ruka, pomoć"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"uveličavanje prozora, zumiranje, uvećanje, slabovidost, uveličavanje, povećati"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"titl, titlovi, CC, transkripcija uživo, oštećenje sluha, gubitak sluha, CART, pretvaranje govora u tekst, titlovanje"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kontrast boja"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, miš"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"slušni aparati, sa oštećenjem sluha, gubitak sluha, kohlearni implanti, uređaji za pojačavanje zvuka, procesori zvuka"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, miš, spoljni miš, miš za glavu, adaptivni miš, invalidska kolica, džojstik"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"slušni aparati, sa oštećenjem sluha, gubitak sluha, kohlearni implanti, uređaji za pojačavanje zvuka, procesori zvuka, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"oštećenje sluha, gubitak sluha, titl, teleprinter, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri dugmeta"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"spretnost, motorika, starije osobe, artritis, učestala traumatska istegnuća zgloba, moždani udar, tremor, multipla skleroza, cerebralna paraliza, drhtavica, povreda izazvana ponavljajućim pokretima, ruka"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"odlaganje, spretnost, starija osoba"</string>
<string name="print_settings" msgid="8519810615863882491">"Štampanje"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Isključeno"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 usluga štampanja je uključena}one{# usluga štampanja je uključena}few{# usluge štampanja su uključene}other{# usluga štampanja je uključeno}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Upozorenje za potrošnju podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Ograničenje potrošnje podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Upozorenje za potrošnju podataka: <xliff:g id="ID_1">^1</xliff:g>/Ograničenje potrošnje podataka: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Obračun podataka kod mobilnog operatera se možda razlikuje od obračuna uređaja."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ne obuhvata podatke koje koriste mreže mobilnih operatera"</string>
<string name="data_used_template" msgid="8229342096562327646">"Potrošili ste <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Podesi upozorenje o podacima"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Usluga automatskog popunjavanja"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Podrazumevana usluga automatskog popunjavanja"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Lozinke"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Usluge za lozinke, pristupne kodove i podatke"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Usluge za lozinke, pristupne kodove i podatke"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Dodatni dobavljači usluga"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# lozinka}one{# lozinka}few{# lozinke}other{# lozinki}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatski, popuniti, automatski popuniti, lozinka"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatski, popunjavanje, automatsko popunjavanje, podaci, pristupni kôd, lozinka"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Uverite se da je ova aplikacija pouzdana</b> <br/> <br/> <xliff:g id=app_name example=Google automatsko popunjavanje>%1$s</xliff:g> koristi sadržaj ekrana za utvrđivanje podataka koji mogu automatski da se popune."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Koristićete aplikaciju <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> koristi ono što je na ekranu radi određivanja šta može automatski da se popuni. Nove lozinke, pristupni kodovi i drugi podaci će se od sada čuvati ovde."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Usluge za lozinke, pristupne kodove i podatke"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Usluge za lozinke, pristupne kodove i podatke"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Želite da isključite: %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Želite da isključite ovu uslugu?</b> <br/> <br/> Sačuvane informacije kao što su lozinke, pristupni kodovi, načini plaćanja i drugi podaci se neće popunjavati kada ste prijavljeni. Da biste koristili sačuvane informacije, odaberite uslugu za lozinke, pristupne kodove ili podatke."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Želite da koristite %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s koristi sadržaj na ekranu da bi utvrdio šta može automatski da se popuni."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Ograničenje usluga za lozinke, pristupne kodove i podatke"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Možete istovremeno da imate najviše 5 usluga za lozinke, pristupne kodove i podatke. Isključite neku od njih da biste dodali još."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Ograničenje usluga za lozinke, pristupne kodove i podatke"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Možete istovremeno da imate najviše 5 usluga za lozinke, pristupne kodove i podatke. Isključite neku od njih da biste dodali još."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Isključi"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automatsko popunjavanje"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivo evidentiranja"</string>
@@ -4673,6 +4709,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk kompatibilnih medija postaje realističniji"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Praćenje glave"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvuk se menja kako pomerate glavu da bi delovao prirodnije"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tip audio uređaja"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nepoznato"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvučnik"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Slušalice"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Oprema za automobil"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Drugo"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ograničenje brzine preuzimanja na mreži"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurišite ograničenje brzine dolaznog propusnog opsega mreže koje se primenjuje na sve mreže koje pružaju internet vezu."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurišite ograničenje brzine preuzimanja na mreži"</string>
@@ -4751,10 +4795,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Srednje"</string>
<string name="contrast_high" msgid="3988567609694797696">"Visoko"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ova aplikacija može da se otvori samo u jednom prozoru"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Usluga je uključena"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Usluga je isključena"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Prečica je isključena"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Uključeno"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Isključeno"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Isključeno"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Isključeno"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Uključeno"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Isključeno"</string>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index 9b85ddc..023fa5b 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Праз 1 хвіліну"</item>
<item msgid="1574040255478150028">"Праз 5 хвілін"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Каб павялічыць час працы ад акумулятара, уключыце адаптыўную яркасць"</item>
+ <item msgid="2256666063790193306">"Каб павялічыць час працы ад акумулятара, зменшыце час да выключэння экрана"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 660fca4..ace7b42 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не вызначана"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Жаночая"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Мужчынская"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Выдаліць выбраную мову?}one{Выдаліць выбраныя мовы?}few{Выдаліць выбраныя мовы?}many{Выдаліць выбраныя мовы?}other{Выдаліць выбраныя мовы?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Тэкст будзе адлюстроўвацца на іншай мове."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Не атрымалася выдаліць усе мовы"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Твар і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Твар, адбітак пальца і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Твар, адбіткі пальцаў і гадзіннік \"<xliff:g id="WATCH">%s</xliff:g>\" дададзены"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Наладжванне гадзінніка"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Разблакіроўку гадзіннікам зручна выкарыстоўваць, калі, напрыклад, у вас мокрыя пальцы або калі ваш твар не распазнаецца.\n\nНіжэй паказваецца, як карыстацца гэтай функцыяй."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Не зараз"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Працягнуць"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Яшчэ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Як гэта працуе"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Гадзіннік павінен быць разблакіраваны і знаходзіцца на вашым запясці і побач з тэлефонам. Пакуль гадзіннік знаходзіцца на руцэ, яго не трэба будзе разблакіраваць зноў."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Калі тэлефон будзе разблакіраваны, на гадзінніку з\'явіцца апавяшчэнне. Вы можаце націснуць на яго, калі хочаце зноў заблакіраваць тэлефон."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Усё пад кантролем"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Вы можаце ў любы час выдаліць функцыю разблакіроўкі гадзіннікам праз Налады"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Націсніце на апавяшчэнне"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Правядзіце пальцам уверх па экране блакіроўкі"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Выберыце гадзіннік"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Даступныя гадзіннікі"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Скасаваць"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Пацвердзіць"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Усё гатова!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Цяпер вы можаце выкарыстоўваць гадзіннік для разблакіроўкі тэлефона: вам дастаткова будзе правесці пальцам уверх па экране блакіроўкі або націснуць на апавяшчэнне"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Гатова"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Разблакіроўка гадзіннікам"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Вы можаце разблакіраваць тэлефон гадзіннікам. Для гэтага правядзіце пальцам уверх па экране блакіроўкі або націсніце на апавяшчэнне."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Каб скарыстаць разблакіроўку гадзіннікам, ён павінен быць разблакіраваны, знаходзіцца на вашым запясці і паблізу ад падключанага да яго тэлефона. Калі падключэнне перарвецца, вам трэба будзе разблакіраваць тэлефон, перш чым выкарыстоўваць разблакіроўку гадзіннікам.\n\nМайце на ўвазе:\nналадзіць для гэтай функцыі можна толькі адзін гадзіннік. Каб дадаць іншы гадзіннік, спачатку выдаліце ўжо падключаны."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Даведацца больш пра разблакіроўку гадзіннікам"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Дадаць гадзіннік"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Выдаліць гадзіннік"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Разблакіроўка тварам і адбіткам пальца"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Разблакіроўка тварам і адбіткам пальца для працоўнага профілю"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Патрабуецца наладжванне"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Вам таксама можа спатрэбіцца ўвесці гэты ключ доступу на іншай прыладзе."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Пацвердзіце спалучэнне з узгодненым наборам"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Дазволіць доступ да сваіх кантактаў і гісторыі выклікаў"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Дазволіць доступ таксама да кантактаў і гісторыі выклікаў"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Гэта інфармацыя будзе выкарыстоўвацца для апавяшчэнняў аб выкліках і іншых функцый"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не атрымалася падключыцца да прылады <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Даступныя прылады"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi абагульваецца з гэтай прыладай…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Ідзе падключэнне…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Абагульванне хот-спота"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Пацвердзіце, што гэта вы"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Пацвердзіце, што гэта вы"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Пароль Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Пароль хот-спота: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Аўтаматычнае падключэнне"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Сетка не ў зоне дасягальнасці"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Забыць"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Змяніць"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Не атрымалася iгнараваць сетку"</string>
<string name="wifi_save" msgid="2312643132472226807">"Захаваць"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Не атрымалася захаваць сетку"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Скасаваць"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Калі прыярытэтная частата недаступная, ваш хот-спот можа выкарыстаць іншую. Налады прыватнасці хот-спота могуць адрознівацца ад налад прыватнасці прыярытэтнай частаты."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Недаступна на частаце 6 ГГц"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Калі вы зменіце частату на хот-споце, могуць змяніцца налады прыватнасці"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Уключэнне хот-спота..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Выключэнне хот-спота..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Мадэм недаступны"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Забылі пароль?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Забылі ўзор разблакіроўкі?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Забылі PIN-код?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Каб працягнуць, выкарыстайце ўзор разблакіроўкі прылады"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Каб працягнуць, увядзіце PIN-код прылады"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Каб працягнуць, увядзіце пароль прылады"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Каб працягнуць, выкарыстайце ўзор свайго працоўнага профілю"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Каб працягнуць, увядзіце ўзор разблакіроўкі"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Каб працягнуць, увядзіце PIN-код"</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">"Каб працягнуць, увядзіце PIN-код свайго працоўнага профілю."</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Каб працягнуць, увядзіце пароль свайго працоўнага профілю"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Для большай бяспекі выкарыстоўвайце ўзор разблакіроўкі прылады"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Няма апісання."</string>
<string name="settings_button" msgid="2195468788019730377">"Налады"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"адчувальнасць да святла, фотафобія, цёмная тэма, мігрэнь, галаўны боль, рэжым чытання, начны рэжым, паменшыць яркасць, кропка белага"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Лёгкасць выкарыстання, прастата доступу, дапамога, дапаможны"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"зрок, слых, сляпы, глухі, рухальныя працэсы, рухальныя магчымасці, дапаможны, дапамога, лёгкасць выкарыстання, просты доступ, рука, дапамога"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Лупа для акна, маштаб, павелічэнне, слабы зрок, павялічыць, зрабіць большым"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Субцітры, цітры, Імгненная расшыфроўка, слабы слых, страта слыху, расшыфроўка ў рэальным часе, пераўтварэнне маўлення ў тэкст, субцітр"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"кантрастнасць колераў"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"маторыка, мыш"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"слыхавыя апараты, асобы с парушэннем слыху, парушаны слых, кахлеарныя імпланты, прылады для ўзмацнення гуку, апрацоўка гуку"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"рухальныя працэсы, мыш, знешняя мыш, кіраванне курсорам з дапамогай рухаў галавы, адаптыўная мыш, інвалідная каляска, джойсцік"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"слыхавыя апараты, парушэнне слыху, страта слыху, кахлеарныя імпланты, прылады для ўзмацнення гуку, апрацоўка гуку, персанальныя прадукты для ўзмацнення гуку"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"слабы слых, страта слыху, субцітры, тэлетайп, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"тры кнопкі"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"рухальныя працэсы, рухальныя магчымасці, пажылы чалавек, артрыт, траўма ад рэгулярных нагрузак, інсульт, трэмар, рассеяны склероз, цэрэбральны параліч, дрыжанне, рука"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"затрымка, рухальныя магчымасці, пажылы чалавек"</string>
<string name="print_settings" msgid="8519810615863882491">"Друк"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Выключана"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Уключаны 1 сэрвіс друку}one{Уключаны # сэрвіс друку}few{Уключана # сэрвісы друку}many{Уключана # сэрвісаў друку}other{Уключана # сэрвісу друку}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Папярэджанне пра выкарыстанне трафіка: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Абмежаванне трафіка: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Папярэджанне перадачы даных: <xliff:g id="ID_1">^1</xliff:g> / Ліміт трафіка: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Улік даных аператара можа адрознівацца ад уліку прылады"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Без уліку трафіка, выкарыстанага сеткамі аператара"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> выкарыстана"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Укл. папярэджанне пра трафік"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Служба аўтазапаўнення"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Стандартная служба аўтазапаўнення"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Паролі"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Пароль, ключ доступу і служба перадачы даных."</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Сэрвісы для захоўвання пароляў, ключоў доступу і даных"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Дадатковыя пастаўшчыкі"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# пароль}one{# пароль}few{# паролі}many{# пароляў}other{# пароля}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"аўта, запаўненне, аўтазапаўненне, пароль"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"аўта, запаўненне, аўтазапаўненне, даныя, ключ доступу, пароль"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Упэўніцеся, што давяраеце гэтай праграме</b> <br/> <br/> <xliff:g id=app_name example=Аўтазапаўненне Google>%1$s</xliff:g> выкарыстоўвае тое, што знаходзіцца на вашым экране, каб вызначыць, што можна запоўніць аўтаматычна."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"Паролі, ключы доступу і службы перадачы даных."</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Сэрвісы для захоўвання пароляў, ключоў доступу і даных"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Выключыць %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Адключыць гэты сэрвіс?</b> <br/> <br/> Паролі, ключы доступу, спосабы аплаты і іншая захаваная інфармацыя не будуць аўтаматычна падстаўляцца пры ўваходзе. Каб выкарыстоўваць захаваную інфармацыю, выберыце пароль, ключ доступу або сэрвіс перадачы даных."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Выкарыстоўваць %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s выкарыстоўвайце звесткі пра тое, што ў вас на экране, каб вызначыць, да чаго можна прымяніць аўтазапаўненне."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Перавышаны ліміт пароляў, ключоў доступу і служб перадачы даных."</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Праграма дазваляе стварыць да пяці адначасова актыўных пароляў, ключоў доступу і служб перадачы даных. Каб дадаць новую службу, выключыце тую, што ўжо існуе."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Перавышаны ліміт сэрвісаў для захоўвання пароляў, ключоў доступу і даных"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Адначасова можна выкарыстоўваць да пяці сэрвісаў для захоўвання пароляў, ключоў доступу і даных. Каб дадаць новы сэрвіс, адключыце адзін з існуючых."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Выключыць"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Аўтазапаўненне"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Узровень запісаў"</string>
@@ -4674,6 +4710,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Гук з сумяшчальных мультымедыйных прылад стварае больш глыбокі эфект прысутнасці"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Адсочванне рухаў галавы"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Калі вы рухаеце галавой, гук змяняецца. Дзякуючы гэтаму вы чуеце больш натуральнае гучанне"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тып аўдыяпрылады"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Невядома"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Дынамік"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Навушнікі"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Аўтамабільны камплект"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Іншае"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Абмежаванне хуткасці спампоўвання праз сетку"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Наладзьце абмежаванне ўваходнай паласы прапускання для ўсіх сетак, якія забяспечваюць падключэнне да інтэрнэту."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Наладзьце абмежаванне хуткасці спампоўвання праз сетку"</string>
@@ -4706,24 +4750,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Выдаліць праграму"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Праграмы, усталяваныя за апошні # месяц}one{Праграмы, усталяваныя за апошні # месяц}few{Праграмы, усталяваныя за апошнія # месяцы}many{Праграмы, усталяваныя за апошнія # месяцаў}other{Праграмы, усталяваныя за апошнія # месяца}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Праграмы, усталяваныя больш як # месяц назад}one{Праграмы, усталяваныя больш як # месяц назад}few{Праграмы, усталяваныя больш як # месяцы назад}many{Праграмы, усталяваныя больш як # месяцаў назад}other{Праграмы, усталяваныя больш як # месяца назад}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Суадносіны бакоў"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Калі праграма не аптымізавана для вашай прылады (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>), выберыце суадносіны бакоў, якія вам падыходзяць"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Прапанаваныя праграмы"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Праграмы з перавызначаным вамі значэннем"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Стандартнае значэнне для праграмы"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Поўнаэкранны рэжым"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Палова экрана"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Суадносіны бакоў на прыладзе"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Калі вы зменіце суадносіны бакоў, праграма перазапусціцца. Незахаваныя змяненні могуць быць страчаны."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сканер адбіткаў пальцаў"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Флэш-апавяшчэнні"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Пра флэш-апавяшчэнні"</string>
@@ -4758,10 +4796,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Сярэдняя"</string>
<string name="contrast_high" msgid="3988567609694797696">"Высокая"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Гэту праграму можна адкрыць толькі ў адным акне"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Сэрвіс уключаны"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Сэрвіс выключаны"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Хуткая каманда выключана"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Уключана"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Выключана"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Выключана"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Выключана"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Уключана"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Выключана"</string>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 5031ee1..a646f78 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"След 1 минута"</item>
<item msgid="1574040255478150028">"След 5 минути"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Включете адаптивната яркост с цел удължаване на живота на батерията"</item>
+ <item msgid="2256666063790193306">"Намалете времето за изчакване на екрана с цел удължаване на живота на батерията"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 2cc261b..69184e6 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не е посочено"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Женски род"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Мъжки род"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Да се премахне ли избраният език?}other{Да се премахнат ли избраните езици?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текстът ще се показва на друг език."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Не могат да се премахнат всички езици"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Лицето и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Лицето, отпечатъкът и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Лицето, отпечатъците и <xliff:g id="WATCH">%s</xliff:g> бяха добавени"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Настройване на часовника ви"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Функцията за отключване чрез часовника е друг удобен начин да отключвате този телефон, например когато пръстите ви са мокри или лицето ви не бъде разпознато.\n\nМожете да отключвате този телефон чрез часовника си, като:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Не сега"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Напред"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Още"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Как работи"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Часовникът ви трябва да е отключен, да е на китката ви и да е близо до този телефон. Няма да е необходимо отново да отключвате часовника си, докато е на китката ви."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Ще получавате известие на часовника си, когато телефонът е отключен. Ако не сте възнамерявали да отключите телефона си, докоснете известието, за да го заключите отново."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Контролът е във ваши ръце"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Можете да премахнете часовника си от функцията „Отключване чрез часовника“ по всяко време от настройките"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Докоснете известие"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Прекарайте пръст нагоре през заключения екран"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Изберете часовника си"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Налични часовници"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Отказ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Потвърждаване"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Готово!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Вече можете да отключвате този телефон чрез часовника си, като прекарате пръст нагоре през заключения екран или докоснете известие"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Отключване чрез часовника"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Можете да отключвате този телефон чрез часовника си, като прекарате пръст нагоре през заключения екран или докоснете известие"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"За да използвате функцията за отключване чрез часовника, той трябва да е отключен, да е на китката ви, да е наблизо и да е свързан с този телефон. Ако връзката е прекъснала, ще трябва да отключите телефона, преди да можете да използвате отключване чрез часовника.\n\nИмайте предвид следното:\nВ даден момент може да е настроен само един часовник. За да добавите друг, първо премахнете текущия."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Научете повече за „Отключване чрез часовника“"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Добавяне на часовник"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Премахване на часовника"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отключване с лице и отпечатък"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Отключване с лице и отпечатък за служебни цели"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Необходимо е настройване"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Възможно е също така да се наложи да въведете този код за достъп на другото устройство."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Потвърдете, за да сдвоите с координирания набор"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Разрешаване на достъпа до контактите и историята на обажданията ви"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Разрешаване и на достъпа до контактите и историята на обажданията"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Информацията ще се използва за съобщения чрез обаждания и др."</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не можа да се установи връзка със: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Налични устройства"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi-Fi мрежата се споделя с това устройство…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Свързва се…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Споделяне на точката за достъп"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Потвърдете, че това сте вие"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Потвърдете, че сте вие"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Парола за Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Парола за точката за достъп: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автоматично свързване"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Мрежата не е в обхват"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Забравяне"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Промяна"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Забравянето на мрежата не бе успешно"</string>
<string name="wifi_save" msgid="2312643132472226807">"Запазване"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Запазването на мрежата не бе успешно"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Отказ"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ако предпочитаната от вас честота не е налице, точката ви за достъп може да използва друга. Настройките за сигурност на точката за достъп може да се променят, ако промените честотата."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Не е налице при 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Настройките за сигурност може да се променят, ако зададете друга честота за точката за достъп."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Точката за достъп се включва…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Точката за достъп се изключва…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Функцията за тетъринг не е налице"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Забравили сте паролата?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Забравили сте фигурата?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Забравили сте ПИН кода?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Използвайте фигурата за устройството си, за да продължите"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Въведете ПИН кода за устройството си, за да продължите"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Въведете паролата за устройството си, за да продължите"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Използвайте служебната си фигура, за да продължите"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Начертайте фигурата си, за да продължите"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"За допълнителна сигурност използвайте фигурата за устройството си"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Няма описание."</string>
<string name="settings_button" msgid="2195468788019730377">"Настройки"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"чувствителност към светлина, фотофобия, тъмна тема, мигрена, главоболие, режим за четене, нощен режим, намаляване на яркостта, точка на бялото"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Лекота на използване, лесен достъп, помощ, помощно"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"зрение, слух, незрящо лице, лице, лишено от слух, моторно, двигателно, помощно, асистенция, лесно използване, лесен достъп, ръка, помощ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"инструмент за увеличаване на прозорци, промяна на мащаба, ниво на мащаба, слабо зрение, уголемяване, увеличение"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Надписи, субтитри, „Незабавно транскрибиране“, увреден слух, загуба на слуха, надписи в реално време (CART), транскрибиране на говор"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"контраст на цветовете"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"двигателна система, мишка"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"слухови апарати, лице с увреден слух, загуба на слуха, кохлеарни импланти, устройства за усилване на звука, звукови процесори"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"моторно, мишка, външна мишка, управлявана чрез главата мишка, адаптивна мишка, инвалидна количка, джойстик"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"слухови апарати, лице с увреден слух, загуба на слуха, кохлеарни импланти, устройства за усилване на звука, звукови процесори, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"увреден слух, загуба на слуха, надписи, телетайп, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"три бутона"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"двигателно, моторно, възрастно лице, артрит, повтарящо се нараняване на щама (RSI), удар, тремор, множествена склероза, церебрална парализа, треперене, ръка"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"забавяне, двигателно, възрастен човек"</string>
<string name="print_settings" msgid="8519810615863882491">"Отпечатване"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Изключено"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Включена е 1 услуга за отпечатване}other{Включени са # услуги за отпечатване}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Предупреждение за данните: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Лимит за данните: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Предупреждение за данните: <xliff:g id="ID_1">^1</xliff:g>/ограничение за данните: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Отчетените от оператора данни може да се различават от показаните на устройството"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Изключва данните, които се използват от мрежите на операторите"</string>
<string name="data_used_template" msgid="8229342096562327646">"Използвали сте <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Задаване на предупр. за данните"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Услуга за автоматично попълване"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Основна услуга за автоматично попълване"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Пароли"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Пароли, ключове за достъп и услуги за данни"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Пароли, ключове за достъп и услуги за данни"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Допълнителни доставчици"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# парола}other{# пароли}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"автоматично, попълване, автоматично попълване, парола"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"автоматично, попълване, автоматично попълване, данни, ключ за достъп, парола"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Уверете се, че имате доверие на това приложение</b> <br/> <br/> <xliff:g id=app_name example=Функцията на Google за автоматично попълване>%1$s</xliff:g> използва това, което е на екрана ви, за да определи какво може да се попълни автоматично."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"Пароли, ключове за достъп и услуги за данни"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Пароли, ключове за достъп и услуги за данни"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Искате ли да изключите %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Искате ли да изключите тази услуга?</b> <br/> <br/> Запазената информация, като например пароли, ключове за достъп, начини на плащане и други данни, няма да се попълва автоматично, когато влизате в даден профил. За да използвате запазената си информация, изберете услуга за пароли, ключове за достъп или данни."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Да се използва ли %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s използва съдържанието на екрана ви, за да определи какво може да бъде попълнено автоматично."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Ограничение за паролите, ключовете за достъп и услугите за данни"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Не можете да имате едновременно повече от 5 активни пароли, ключа за достъп и услуги за данни. Изключете една от услугите, за да добавите друга."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Ограничение за паролите, ключовете за достъп и услугите за данни"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Не можете да имате едновременно повече от 5 активни пароли, ключа за достъп и услуги за данни. Изключете една от услугите, за да добавите друга."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Изключване"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Автоматично попълване"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Ниво на регистриране"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звукът от съвместимите източници става по-реалистичен"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Проследяване на движенията на главата"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звукът се променя, докато движите главата си, с цел да бъде по-естествен"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудиоустройство"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Неизвестно"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Високоговорител"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Слушалки"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Комплект за автомобил"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Друго"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ограничение за мрежата за скоростта при изтегляне"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Конфигуриране на ограничението за скорост на мрежовата пропускателна способност за входящи данни, което се прилага за всички мрежи, осигуряващи връзка с интернет."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Конфигуриране на ограничението за мрежата за скоростта при изтегляне"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Деинсталиране на приложението"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Приложения, инсталирани през последния # месец}other{Приложения, инсталирани през последните # месеца}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Приложения, инсталирани преди повече от # месец}other{Приложения, инсталирани преди повече от # месеца}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Съотношение"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Изберете съотношение за показване на това приложение, ако то не е оптимизирано за устройството ви <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Предложени приложения"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Приложения, които сте заменили"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Стандартно за приложението"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Цял екран"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Половин екран"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Съотношение за устройството"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Когато промените съотношението, приложението ще се рестартира. Възможно е да изгубите незапазените промени."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сензор за отпечатъци"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Известия с премигване"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Всичко за известията с премигване"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Среден"</string>
<string name="contrast_high" msgid="3988567609694797696">"Висок"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Това приложение може да се отвори само в 1 прозорец"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Услугата е включена"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Услугата е изключена"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Прекият път е изключен"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Вкл."</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Изкл."</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Изкл."</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Изкл."</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Вкл."</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Изкл."</string>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index d977a18..20c64f7 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"১ মিনিট পর"</item>
<item msgid="1574040255478150028">"৫ মিনিট পর"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"ব্যাটারির আয়ু বাড়াতে পরিবেশের আলো অনুযায়ী উজ্জ্বলতা চালু করুন"</item>
+ <item msgid="2256666063790193306">"ব্যাটারির আয়ু বাড়াতে স্ক্রিন টাইমআউট কমান"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 0da6cd0..2ffce42 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"নির্দিষ্ট করে উল্লেখ করা নেই"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"মহাশয়া"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"মহাশয়"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{বেছে নেওয়া ভাষা মুছে দিতে চান?}one{বেছে নেওয়া ভাষা মুছে দিতে চান?}other{বেছে নেওয়া ভাষা মুছে দিতে চান?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"পাঠ্য অন্য ভাষায় প্রদর্শিত হবে৷"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"সমস্ত ভাষা সরানো যাবে না"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ফেস ও <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ফেস, ফিঙ্গারপ্রিন্ট এবং <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ফেস, ফিঙ্গারপ্রিন্ট এবং <xliff:g id="WATCH">%s</xliff:g> যোগ করা হয়েছে"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"আপনার ঘড়ি সেট-আপ করুন"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"\'ঘড়ি আনলক করা\' ফিচার এই ফোন আনলক করার আরেকটি সুবিধাজনক উপায়, যেমন আপনার আঙুল ভিজে থাকলে বা মুখ শনাক্ত না করা গেলে।\n\nআপনি এই ফোন আনলক করতে নিজের ঘড়ি ব্যবহার করতে পারবেন যখন:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"এখন নয়"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"চালিয়ে যান"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"আরও দেখুন"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"এটি কীভাবে কাজ করে"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"আপনার ঘড়ি অবশ্যই আনলক করা, হাতের কব্জিতে থাকতে হবে ও এই ফোনের কাছাকাছি রাখতে হবে। কব্জিতে থাকাকালীন আপনাকে ঘড়ি আবার আনলক করতে হবে না।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"এই ফোন আনলক করা হলে, আপনার ঘড়িতে বিজ্ঞপ্তি পাবেন। আপনি না চাইলেও এটি আনলক হয়ে গেলে, ফোন আবার লক করতে বিজ্ঞপ্তির উপরে ট্যাপ করুন।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"আপনি নিয়ন্ত্রণ করছেন"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"সেটিংসে গিয়ে আপনি যেকোনও সময় \'ঘড়ি আনলক করা\' ফিচার থেকে ঘড়ি সরিয়ে দিতে পারবেন"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"বিজ্ঞপ্তির উপর ট্যাপ করুন"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"লক স্ক্রিনে উপরের দিকে সোয়াইপ করুন"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"আপনার ঘড়ি বেছে নিন"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"উপলভ্য ঘড়ি"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"বাতিল করুন"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"কনফার্ম করুন"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"আপনি একদম রেডি!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"আপনি লক স্ক্রিনে উপরের দিকে সোয়াইপ করলে বা কোনও বিজ্ঞপ্তির উপর ট্যাপ করলে, এই ফোন আনলক করতে এখন নিজের ঘড়ি ব্যবহার করতে পারবেন"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"হয়ে গেছে"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ঘড়ি আনলক করুন"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"আপনি লক স্ক্রিনে উপরের দিকে সোয়াইপ করলে বা কোনও বিজ্ঞপ্তির উপর ট্যাপ করলে, এই ফোন আনলক করতে নিজের ঘড়ি ব্যবহার করতে পারবেন"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"\'ঘড়ি আনলক করুন\' ফিচার ব্যবহার করতে, আপনার ঘড়ি অবশ্যই আনলক করা অবস্থায়, কব্জিতে, কাছাকাছি এবং এই ফোনের সাথে কানেক্ট থাকতে হবে। কানেকশনে কোনও বিঘ্ন ঘটলে, \'ঘড়ি আনলক করুন\' ফিচার ব্যবহার করার আগে আপনাকে ফোন আনলক করতে হবে।\n\nমনে রাখবেন:\nএকবারে আপনি শুধুমাত্র একটি ঘড়ি সেট-আপ করতে পারবেন। অন্য কোনও ঘড়ি যোগ করতে, প্রথমে বর্তমান ঘড়িটি সরান।"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"\'ঘড়ি আনলক করুন\' ফিচার সম্পর্কে আরও জানুন"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ঘড়ি যোগ করুন"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ঘড়ি সরান"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ফিঙ্গারপ্রিন্ট & ফেস আনলক"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"কাজের জন্য ফেস ও \'ফিঙ্গারপ্রিন্ট আনলক\' ফিচার"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"সেট-আপ করতে হবে"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"আপনাকে অন্য ডিভাইসে এই পাস কী টাইপ করতে হতে পারে।"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"কো-অর্ডিনেটেড সেটের সাথে পেয়ার করার বিষয়টি কনফার্ম করুন"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"আপনার পরিচিতি এবং কল ইতিহাস অ্যাক্সেসের অনুমতি দিন"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"এছাড়াও পরিচিতি ও কলের ইতিহাস অ্যাক্সেস করার অনুমতি দিন"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"কল সম্পর্কিত ঘোষণা ও আরও অনেক কিছুর জন্য তথ্য ব্যবহার করা হবে"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> এ কানেকশন করতে পারেনি।"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"উপলভ্য ডিভাইস"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"এই ডিভাইসটি ওয়াই-ফাই-এর সাথে কানেক্ট করা আছে…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"কানেক্ট হচ্ছে…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"হটস্পট শেয়ার করুন"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"এটি যে আপনি তা যাচাই করুন"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"আপনার পরিচয় যাচাই করুন"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ওয়াই-ফাইয়ের পাসওয়ার্ড: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"হটস্পটের পাসওয়ার্ড: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"অটো-কানেক্ট"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"নেটওয়ার্ক পরিষেবা সীমার মধ্যে নেই"</string>
<string name="wifi_forget" msgid="3485573280364015620">"ভুলে যান"</string>
<string name="wifi_modify" msgid="5127926476383659412">"বদলান"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"নেটওয়ার্ক ভুলে যেতে করতে ব্যর্থ হয়েছে"</string>
<string name="wifi_save" msgid="2312643132472226807">"সেভ করুন"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"নেটওয়ার্ক সংরক্ষণ করতে ব্যর্থ হয়েছে"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"বাতিল করুন"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"আপনার পছন্দমতো ফ্রিকোয়েন্সি উপলভ্য না হলে, আপনার হটস্পট অন্য কিছু ব্যবহার করতে পারবে। ফ্রিকোয়েন্সির পরিবর্তন করা হলে হটস্পটের নিরাপত্তা সেটিংস পরিবর্তিত হতে পারে।"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"৬ গিগাহার্ৎজের জন্য উপলভ্য নেই"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"আপনি হটস্পটের ফ্রিকোয়েন্সি পরিবর্তন করলে নিরাপত্তা সেটিংস পরিবর্তিত হতে পারে"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"হটস্পট চালু হচ্ছে..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"হটস্পট বন্ধ হচ্ছে..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"টেথারিংয়ের সুবিধা উপলভ্য নেই"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"পাসওয়ার্ড ভুলে গেছেন?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"প্যাটার্ন ভুলে গেছেন?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"পিন ভুলে গেছেন?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"চালিয়ে যেতে আপনার ডিভাইসের প্যাটার্ন ব্যবহার করুন"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"চালিয়ে যেতে আপনার ডিভাইসের পিন লিখুন"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"চালিয়ে যেতে আপনার ডিভাইসের পাসওয়ার্ড লিখুন"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"চালিয়ে যেতে আপনার কর্মস্থলের প্যাটার্ন ব্যবহার করুন"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"চালিয়ে যেতে আপনার প্যাটার্ন আঁকুন"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"অতিরিক্ত নিরাপত্তার জন্য, আপনার ডিভাইসের প্যাটার্ন ব্যবহার করুন"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"কোনো বিবরণ প্রদান করা নেই।"</string>
<string name="settings_button" msgid="2195468788019730377">"সেটিংস"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"লাইট সেন্সিটিভিটি, ফটোফোবিয়া, ডার্ক থিম, মাইগ্রেন, মাথাব্যথা, রিডিং মোড, রাতের মোড, স্ক্রিনের উজ্জ্বলতা কমান, হোয়াইট পয়েন্ট"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"সহজে ব্যবহার করার সুবিধা, সহজে অ্যাক্সেস করার সুবিধা, সহায়তা, সহায়ক"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"দৃষ্টিশক্তি, শ্রবণশক্তি, অন্ধ, বধির, মোটর, দক্ষতা, সহায়ক, সহায়তা, ব্যবহারের সহজলভ্যতা, সহজলভ্য অ্যাক্সেস, হাত, সাহায্য"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"উইন্ডো ম্যাগনিফায়ার, জুম, বড় করে দেখা, কম দৃষ্টি, আকারে বড় করুন, আরও বড় করুন"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"ক্যাপশন, ক্লোজড ক্যাপশন, CC, লাইভ ট্রানস্ক্রাইব, কম শুনতে পাওয়া, শুনতে সমস্যা হওয়া, CART, স্পিচ টু টেক্সট, সাবটাইটেল"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"কালার কনট্রাস্ট"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"মোটর, মাউস"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"হিয়ারিং এড, আংশিক বধির, শুনতে না পাওয়া, কক্লিয়ার ইমপ্ল্যান্ট, অ্যামপ্লিফিকেশন ডিভাইস, সাউন্ড প্রসেসর"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"মোটর, মাউস, এক্সটার্নাল মাউস, হেড মাউস, অ্যাডাপ্টিভ মাউস, হুইলচেয়ার, জয়স্টিক"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"হিয়ারিং এড, আংশিক বধির, শুনতে না পাওয়া, কক্লিয়ার ইমপ্ল্যান্ট, অ্যামপ্লিফিকেশন ডিভাইস, সাউন্ড প্রসেসর, পিএসএপি"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"কম শুনতে পাওয়া, শুনতে সমস্যা হওয়া, ক্যাপশন, টেলিটাইপ, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"তিনটি বোতাম"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"দক্ষতা, মোটর, সিনিয়র, আর্থ্রাইটিস, আরএসআই, স্ট্রোক, কাঁপুনি, মাল্টিপল স্ক্লেরোসিস, সেরিব্রাল পাল্সি, ঝাঁকুনি, ক্রমাগত চাপের ফলে আঘাত, হাত"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"দেরি, দক্ষতা, সিনিয়র"</string>
<string name="print_settings" msgid="8519810615863882491">"প্রিন্টিং"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"বন্ধ আছে"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{১টি প্রিন্ট পরিষেবা চালু আছে}one{#টি প্রিন্ট পরিষেবা চালু আছে}other{#টি প্রিন্ট পরিষেবা চালু আছে}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ডেটার বিষয়ে সতর্কতা"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ডেটার সীমা"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ডেটার বিষয়ে সতর্কতা / <xliff:g id="ID_2">^2</xliff:g> ডেটার সীমা"</string>
- <string name="operator_warning" msgid="5672761970087591211">"পরিষেবা প্রদানকারী ডেটার হিসাব, ডিভাইসের হিসাব থেকে ভিন্ন হতে পারে"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"পরিষেবা প্রদানকারী নেটওয়ার্কের ব্যবহৃত ডেটা বাদ দিয়ে"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ব্যবহৃত হয়েছে"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ডেটা সতর্কতা সেট করুন"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"আটোফিল পরিষেবা"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ডিফল্ট অটোফিল পরিষেবা"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"পাসওয়ার্ড"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা"</string>
<string name="credman_credentials" msgid="4931371941253324143">"অতিরিক্ত পরিষেবা প্রদানকারী"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{#টি পাসওয়ার্ড}one{#টি পাসওয়ার্ড}other{#টি পাসওয়ার্ড}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"অটো, ফিল, অটোফিল, পাসওয়ার্ড"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"অটো, ফিল, অটো-ফিল ফিচার, ডেটা, পাসকি, পাসওয়ার্ড"</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="4951846866327737417">"<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="2642776965060619988">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s বন্ধ করবেন?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>এই পরিষেবা বন্ধ করবেন?</b> <br/> <br/> পাসওয়ার্ড, \'পাসকী\', পেমেন্ট পদ্ধতির মতো তথ্য ও অন্যান্য সেভ করে রাখা তথ্য, আপনি সাইন-ইন করার সময় উপলভ্য হবে না। আপনার সেভ করে রাখা তথ্য ব্যবহার করতে, একটি পাসওয়ার্ড, \'পাসকী\' বা ডেটা পরিষেবা বেছে নিন।"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ব্যবহার করবেন?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"কী কী অটোফিল করা যাবে তা নির্ধারণ করতে, %1$s, আপনার স্ক্রিনে যা দেখা যাচ্ছে সেগুলি ব্যবহার করে।"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবার সীমা"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"আপনি একই সময়ে সর্বাধিক ৫টি পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা চালু রাখতে পারবেন। আরও পরিষেবা যোগ করতে একটি বন্ধ করুন।"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবার সীমা"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"আপনি একই সময়ে সর্বাধিক ৫টি পাসওয়ার্ড, পাসকী ও ডেটা পরিষেবা চালু রাখতে পারবেন। আরও পরিষেবা যোগ করতে একটি বন্ধ করুন।"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"বন্ধ করুন"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"অটো-ফিল"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"লগ-ইন লেভেল"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"মানানসই মিডিয়ার অডিও আরও বেশি শ্রবণযোগ্য"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"হেড ট্র্যাকিং"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"মাথা নাড়াচাড়া করার সাথে সাথে অডিও পরিবর্তন হয় যাতে আরও স্বাভাবিক শব্দ হয়"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"অডিও ডিভাইসের ধরন"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"অজানা"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"স্পিকার"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"হেডফোন"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"কার কিট"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"অন্যান্য"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"নেটওয়ার্কের জন্য নির্দিষ্ট করা ডাউনলোড করার হার"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"নেটওয়ার্ক ব্যান্ডউইথ ইনগ্রেস নির্দিষ্ট করা ডেটা ট্রাফিকের হারকে কনফিগার করুন। এটি ইন্টারনেট কানেকশন দেয় এমন সব নেটওয়ার্কের ক্ষেত্রে প্রযোজ্য।"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"নেটওয়ার্কের জন্য নির্দিষ্ট করা ডাউনলোড করার হার কনফিগার করুন"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"অ্যাপ আনইনস্টল করুন"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{শেষ # মাসের মধ্যে ইনস্টল করা অ্যাপ}one{শেষ # মাসের মধ্যে ইনস্টল করা অ্যাপ}other{শেষ # মাসের মধ্যে ইনস্টল করা অ্যাপ}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# মাসেরও বেশি সময় আগে অ্যাপ ইনস্টল করা হয়েছে}one{# মাসেরও বেশি সময় আগে অ্যাপ ইনস্টল করা হয়েছে}other{# মাসেরও বেশি সময় আগে অ্যাপ ইনস্টল করা হয়েছে}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"অ্যাস্পেক্ট রেশিও"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"অ্যাপটি যদি আপনার <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এ কাজ করার মতো করে ডিজাইন করা না হয়ে থাকে, তাহলে এটি দেখার জন্য অ্যাস্পেক্ট রেশিও বেছে নিন"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"সাজেস্ট করা অ্যাপ"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"আপনার ওভাররাইড করা অ্যাপ"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"অ্যাপ ডিফল্ট"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ফুল স্ক্রিন"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"অর্ধেক স্ক্রিন"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ডিভাইসের অ্যাস্পেক্ট রেশিও"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"১৬:৯"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"৩:২"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"৪:৩"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"আপনি অ্যাস্পেক্ট রেশিও পরিবর্তন করলে, অ্যাপ রিস্টার্ট হবে। সেভ না করা পরিবর্তন আপনি হারাতে পারেন।"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ফিঙ্গারপ্রিন্ট সেন্সর"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"ফ্ল্যাশ নোটিফিকেশন"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"ফ্ল্যাশ বিজ্ঞপ্তি সম্পর্কে"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"মিডিয়াম"</string>
<string name="contrast_high" msgid="3988567609694797696">"হাই"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"এই অ্যাপটি শুধুমাত্র ১টি উইন্ডোতে খোলা যেতে পারে"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"পরিষেবা চালু আছে"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"পরিষেবা বন্ধ আছে"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"শর্টকাট বন্ধ আছে"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"চালু আছে"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"বন্ধ আছে"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"বন্ধ আছে"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"বন্ধ আছে"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"চালু আছে"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"বন্ধ আছে"</string>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 2a21b78..8d1c193 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Nakon 1 min"</item>
<item msgid="1574040255478150028">"Nakon 5 min"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Uključite prilagodljivu osvijetljenost da produžite vijek trajanja baterije"</item>
+ <item msgid="2256666063790193306">"Smanjite istek vremena ekrana da produžite vijek trajanja baterije"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index ead9d03..0e279b0 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nije navedeno"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženski rod"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Muški rod"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Ukloniti odabrani jezik?}one{Ukloniti odabrane jezike?}few{Ukloniti odabrane jezike?}other{Ukloniti odabrane jezike?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst će biti prikazan na drugom jeziku"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ne mogu se ukloniti svi jezici"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodani su lice i <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodani su lice, otisak prsta i <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodani su lice, otisci prstiju i <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Postavite sat"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Otključavanje pomoću sata je još jedan praktičan način otključavanja telefona, npr. kada su vam vlažni prsti ili kada se ne prepoznaje vaše lice.\n\nTelefon možete otključati pomoću sata kada:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne sada"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Nastavi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Više"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Kako funkcionira"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Sat mora biti otključan, nalaziti se na zglobu šake i nadohvat ovog telefona. Dok je sat na zglobu šake, više ga nećete morati otključavati."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kada se telefon otključa, dobit ćete obavještenje na satu. Ako se telefon otključao kada niste namjeravali, dodirnite obavještenje da ponovo zaključate telefon."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vi upravljate svime"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Možete ukloniti sat iz Otključavanja pomoću sada bilo kada u Postavkama"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Dodirnite obavještenje"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Prevucite nagore na zaključanom ekranu"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Odaberite sat"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupni satovi"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Otkaži"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdi"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Spremni ste!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Sada možete otključati telefon pomoću sata kada prevučete nagore na zaključanom ekranu ili dodirnete obavještenje"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gotovo"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Otključavanje pomoću sata"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Možete otključati telefon pomoću sata kada prevučete nagore na zaključanom ekranu ili dodirnete obavještenje"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Da koristite Otključavanje pomoću sata, sat mora biti otključan, nalaziti se na zglobu šake, nadohvat ovog telefona i povezan s njim. Ako se prekine veza, trebate otključati telefon da možete koristiti Otključavanje pomoću sata.\n\nImajte na umu:\nu datom trenutku možete imati samo jedan postavljen sat. Da dodate drugi sat, prvo uklonite trenutni."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saznajte više o Otključavanju pomoću sata"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj sat"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Uklanjanje sata"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Otisak prsta i otključavanje licem"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Otključavanje licem i otiskom prsta za posao"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Potrebno je postavljanje"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Možda ćete morati otkucati ovaj pristupni kôd na drugom uređaju."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrdite da uparite s koordiniranim kompletom"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Dozvoli pristup kontaktima i historiji poziva"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Također dozvolite pristup kontaktima i historiji poziva"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Podaci će se koristiti za obavještenja o pozivu i još mnogo toga"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nije uspjelo povezivanje sa uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupni uređaji"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Dijeljenje WiFi mreže s ovim uređajem…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Povezivanje…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Dijeljenje pristupne tačke"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potvrdite svoj identitet"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potvrdite da ste to vi"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Lozinka WiFi mreže: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Lozinka pristupne tačke: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatsko povezivanje"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mreža nije u dometu"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Zaboravi"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Izmijeni"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Zaboravljanje mreže nije uspjelo"</string>
<string name="wifi_save" msgid="2312643132472226807">"Sačuvaj"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Čuvanje mreže nije uspjelo"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Otkaži"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ako željena frekvencija nije dostupna, pristupna tačka može koristiti drugu frekvenciju. Postavke privatnosti pristupne tačke se mogu promijeniti ako promijenite frekvenciju."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nije dostupno uz 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Postavke sigurnosti se mogu promijeniti ako promijenite frekvenciju pristupne tačke"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Uključivanje pristupne tačke…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Isključivanje pristupne tačke…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Dijeljenje internetske veze nije dostupno"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zaboravili ste lozinku?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zaboravili ste uzorak?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zaboravili ste PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Unesite uzorak uređaja da nastavite"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Unesite PIN uređaja da nastavite"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Unesite lozinku uređaja da nastavite"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Za nastavak, unesite radni uzorak"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Nacrtajte obrazac da nastavite"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Unesite PIN da nastavite"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Unesite lozinku da nastavite"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Nacrtajte obrazac radnog profila da nastavite"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Unesite radni PIN da nastavite"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Za nastavak, unesite radnu lozinku."</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Za dodatnu sigurnost, unesite uzorak uređaja"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nije naveden opis."</string>
<string name="settings_button" msgid="2195468788019730377">"Postavke"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"osjetljivost na svjetlost, fotofobija, tamna tema, migrena, glavobolja, način rada za čitanje, noćni način rada, smanjivanje osvjetljenja, bijela tačka"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Jednostavno korištenje, jednostavni pristup, pomoć, od pomoći"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vid, sluh, slijepi, gluhi, motorika, pokretljivost ruku, pomoćni, pomoć, jednostavnost korištenja, jednostavnost pristupa, ruka, pomoć"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"povećalo prozora, zumiranje, uvećavanje, slabi vid, uvećanje, povećavanje"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"titlovi, titlovanje, cc, automatska transkripcija, poteškoće sa sluhom, gubitak sluha, transkripcija u stvarnom vremenu pomoću računara, pretvaranje govora u tekst"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kontrast boja"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, miš"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"slušni aparati, poteškoće sa sluhom, gubitak sluha, kohlearni implantati, uređaji za pojačavanje zvuka, procesori zvuka"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, miš, vanjski miš, naglavni miš, prilagodljivi miš, invalidska kolica, džojstik"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"slušni aparati, oštećenje sluha, gubitak sluha, kohlearni implantati, uređaji za pojačavanje zvuka, procesori zvuka, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"poteškoće sa sluhom, gubitak sluha, titlovi, teletype, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri dugmeta"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"pokretljivost ruku, motorika, starija osoba, artritis, RSI, moždani udar, tremor, multipla skleroza, cerebralna paraliza, drhtanje, povreda uzrokovana učestalim ponavljanjem radnje, ruka"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"odgoda, pokretljivost ruku, starija osoba"</string>
<string name="print_settings" msgid="8519810615863882491">"Štampanje"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Isključeno"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Uključena je 1 usluga štampanja}one{Uključena je # usluga štampanja}few{Uključene su # usluge štampanja}other{Uključeno je # usluga štampanja}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Upozorenje o prijenosu podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Ograničenje prijenosa podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Upozorenje o prijenosu podataka: <xliff:g id="ID_1">^1</xliff:g> / Ograničenje prijenosa podataka: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Obračun podataka koji vrši operater se može razlikovati od obračuna koji vrši uređaj."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ne obuhvata podatke koje koriste mreže mobilnog operatera"</string>
<string name="data_used_template" msgid="8229342096562327646">"Iskorišteno je <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Postavi upozor. o prij. podat."</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Usluga automatskog popunjavanja"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Zadana usluga automatskog popunjavanja"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Lozinke"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Usluge za lozinke, pristupne ključeve i podatke"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Usluge za lozinke, pristupne ključeve i podatke"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Dodatni pružaoci usluga"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# lozinka}one{# lozinka}few{# lozinke}other{# lozinki}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatski, popunjavanje, automatsko popunjavanje, lozinka"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatski, popuniti, automatsko popunjavanje, podaci, pristupni ključ, lozinka"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Provjerite je li ova aplikacija pouzdana</b> <br/> <br/> <xliff:g id=app_name example=Google Automatsko popunjavanje>%1$s</xliff:g> koristi sadržaj na vašem ekranu da odredi šta se može automatski popuniti."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Koristiti aplikaciju <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> koristi ono što je na ekranu radi utvrđivanja podataka koji se mogu automatski popuniti. Nove lozinke, pristupni ključevi i druge informacije od sada će se pohranjivati ovdje."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Usluge za lozinke, pristupne ključeve i podatke"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Usluge za lozinke, pristupne ključeve i podatke"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Isključiti %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Isključiti uslugu?</b> <br/> <br/> Sačuvane informacije kao što su lozinke, pristupni ključevi, načini plaćanja i druge informacije se neće popunjavati prilikom prijave. Da koristite sačuvane informacije, odaberite lozinku, pristupni ključ ili uslugu za podatke."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Koristiti uslugu %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s koristi sadržaj na ekranu da odredi šta se može automatski popuniti."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Ograničeni broj usluga za lozinke, pristupne ključeve i podatke"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Istovremeno možete imati najviše 5 aktivnih usluga za lozinke, pristupne ključeve i podatke. Isključite jednu uslugu da dodate drugu."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Ograničeni broj usluga za lozinke, pristupne ključeve i podatke"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"U datom trenutku možete imati najviše 5 aktivnih usluga za lozinke, pristupne ključeve i podatke. Isključite uslugu da dodate više."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Isključi"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automatsko popunjavanje"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivo zapisivanja"</string>
@@ -4673,6 +4709,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk iz kompatibilnih medija postaje prostraniji"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Praćenje glave"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvuk se mijenja dok pomjerate glavu radi prirodnijeg zvuka"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Vrsta audio uređaja"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nepoznato"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvučnik"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Slušalice"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Komplet za automobil"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Drugo"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ograničenje stope preuzimanja mreže"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurirajte ograničenje stope ulaza propusnosti mreže koje se primjenjuje na sve mreže koje pružaju internetsku vezu."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurirajte ograničenje stope preuzimanja mreže"</string>
@@ -4705,24 +4749,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Deinstaliraj aplikaciju"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacije instalirane u proteklom mjesecu}one{Aplikacije instalirane u proteklom # mjesecu}few{Aplikacije instalirane u protekla # mjeseca}other{Aplikacije instalirane u proteklih # mjeseci}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacije instalirane prije # mjesec}one{Aplikacije instalirane prije # mjesec}few{Aplikacije instalirane prije # mjeseca}other{Aplikacije instalirane prije # mjeseci}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Format slike"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Odaberite format slike u kojem će se aplikacija prikazivati ako nije namijenjena da stane na uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Predložene aplikacije"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacije koje ste zaobišli"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Zadano za aplikaciju"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Prikaz preko cijelog ekrana"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Pola ekrana"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Format slike uređaja"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacija će se ponovo pokrenuti kada promijenite format slike. Možda ćete izgubiti nesačuvane promjene."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Senzor za otisak prsta"</string>
<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>
@@ -4757,10 +4795,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Srednje"</string>
<string name="contrast_high" msgid="3988567609694797696">"Visoko"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ova aplikacija se može otvoriti samo u 1 prozoru"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Usluga je uključena"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Usluga je isključena"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Prečica je isključena"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Uključeno"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Isključeno"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Isključeno"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Isključeno"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Uključeno"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Isključeno"</string>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 3dfd06f..bc13daa 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Després d\'1 minut"</item>
<item msgid="1574040255478150028">"Després de 5 minuts"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Activa la brillantor adaptativa per allargar la durada de la bateria"</item>
+ <item msgid="2256666063790193306">"Redueix el temps d\'espera de la pantalla per allargar la durada de la bateria"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 483650f..8456fc9 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Sense especificar"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Femení"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculí"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vols suprimir l\'idioma seleccionat?}other{Vols suprimir els idiomes seleccionats?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"El text es mostrarà en un altre idioma."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"No es poden suprimir tots els idiomes"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Cara i <xliff:g id="WATCH">%s</xliff:g> afegits"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Cara, empremta digital i <xliff:g id="WATCH">%s</xliff:g> afegits"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Empremtes digitals, cara i <xliff:g id="WATCH">%s</xliff:g> afegits"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura el rellotge"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"La funció Desbloqueig amb rellotge és una altra manera pràctica de desbloquejar el telèfon (per exemple, quan tens els dits mullats o quan no se\'t reconeix la cara).\n\nPots utilitzar el rellotge per desbloquejar el telèfon quan:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ara no"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continua"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Més"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Com funciona"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"El rellotge ha d\'estar desbloquejat, al canell i a l\'abast d\'aquest telèfon. No cal que tornis a desbloquejar el rellotge mentre el tinguis al canell."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quan aquest telèfon estigui desbloquejat, rebràs notificacions al rellotge. Si desbloqueges el telèfon sense voler, toca la notificació per tornar-lo a bloquejar."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ets tu qui té el control"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Pots suprimir el rellotge de Desbloqueig amb rellotge en qualsevol moment a Configuració"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toca una notificació"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Llisca cap amunt a la pantalla de bloqueig"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Tria el rellotge"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Rellotges disponibles"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel·la"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirma"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Ja està tot a punt!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Ara pots utilitzar el rellotge per desbloquejar aquest telèfon quan llisques cap amunt a la pantalla de bloqueig o quan toques una notificació"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Fet"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueig amb rellotge"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Pots utilitzar el rellotge per desbloquejar aquest telèfon quan llisques cap amunt a la pantalla de bloqueig o quan toques una notificació"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Per utilitzar Desbloqueig amb rellotge, el rellotge ha d\'estar desbloquejat, al canell, a l\'abast i connectat a aquest telèfon. Si s\'interromp la connexió, hauràs de desbloquejar el telèfon abans d\'utilitzar Desbloqueig amb rellotge.\n\nInformació important:\nNomés pots tenir un rellotge configurat cada vegada. Per afegir un altre rellotge, abans has de suprimir l\'actual."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Més informació sobre Desbloqueig amb rellotge"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Afegeix un rellotge"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Suprimeix el rellotge"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueig facial i amb empremta digital"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueig facial i amb empremta digital per a la feina"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Cal fer la configuració"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Pot ser que també hagis d\'introduir aquesta clau d\'accés a l\'altre dispositiu."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirma per vincular amb el conjunt coordinat"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permet l\'accés als contactes i a l\'historial de trucades"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Permet també l\'accés als contactes i a l\'historial de trucades"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"La informació s\'utilitzarà per als avisos de trucades i més"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"No s\'ha pogut connectar amb <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositius disponibles"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"S\'està compartint la Wi‑Fi amb aquest dispositiu…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"S\'està connectant…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Comparteix el punt d\'accés Wi‑Fi"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica la teva identitat"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifica la teva identitat"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Contrasenya de la Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Contrasenya del punt d\'accés Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Connexió automàtica"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"La xarxa està fora de l\'abast"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Oblida"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modifica"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"No s\'ha pogut oblidar la xarxa"</string>
<string name="wifi_save" msgid="2312643132472226807">"Desa"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"No s\'ha pogut desar la xarxa"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancel·la"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Si la teva freqüència preferida no està disponible, pot ser que el punt d\'accés Wi‑Fi en faci servir una altra. La configuració de seguretat del punt d\'accés Wi‑Fi pot canviar si modifiques la freqüència."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"No està disponible amb 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"La configuració de seguretat pot canviar si modifiques la freqüència del punt d\'accés Wi‑Fi"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"S\'està activant el punt d\'accés Wi-Fi…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"S\'està desactivant el punt d\'accés Wi-Fi…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"La compartició de xarxa no està disponible"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Has oblidat la contrasenya?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Has oblidat el patró?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Has oblidat el PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Utilitza el patró del dispositiu per continuar"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Introdueix el PIN del dispositiu per continuar"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Introdueix la contrasenya del dispositiu per continuar"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utilitza el patró de la feina per continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dibuixa el patró per continuar"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Introdueix el PIN per continuar"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Introdueix la contrasenya per continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dibuixa el patró de treball per continuar"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Introdueix el PIN de la feina per continuar"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Introdueix la contrasenya de la feina per continuar"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Per a més seguretat, utilitza el patró del dispositiu"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No s\'ha proporcionat cap descripció."</string>
<string name="settings_button" msgid="2195468788019730377">"Configuració"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilitat a la llum, fotofòbia, tema fosc, migranya, mal de cap, mode de lectura, mode nocturn, redueix la brillantor, punt blanc"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"fàcil d\'utilitzar, fàcil accés, assistència, suport"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"visió, audició, invident, sord, motricitat, destresa, suport, assistència, facilitat d\'ús, facilitat d\'accés, mà, ajuda"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ampliador de finestres, zoom, ampliació, poca visió, ampliar, fer més gran"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"subtítols, transcripció instantània, deficiències auditives, pèrdua auditiva, CART, parla a text, subtítol"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contrast de color"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, ratolí"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"audiòfons, deficiències auditives, pèrdua d\'audició, implants coclears, dispositius d\'amplificació, processadors de so"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motricitat, ratolí, ratolí extern, ratolí de cap, ratolí adaptatiu, cadira de rodes, palanca de control"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"audiòfons, deficiències auditives, pèrdua d\'audició, implants coclears, dispositius d\'amplificació, processadors de so, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"deficiències auditives, pèrdua auditiva, subtítols, teletip, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tres botons"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destresa, motricitat, sènior, artritis, rsi, accident cerebrovascular, tremolor, esclerosi múltiple, paràlisi cerebral, tremolors, lesió per moviment repetitiu, mà"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retard, destresa, sènior"</string>
<string name="print_settings" msgid="8519810615863882491">"Impressió"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desactivat"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 servei d\'impressió activat}other{# serveis d\'impressió activats}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Advertiment de dades: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Límit de dades: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Advertiment de dades: <xliff:g id="ID_1">^1</xliff:g> / Límit de dades: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"El recompte de dades de l\'operador de telefonia mòbil pot ser diferent del calculat pel dispositiu"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"No inclou les dades que utilitzen les xarxes d\'operadors"</string>
<string name="data_used_template" msgid="8229342096562327646">"Dades utilitzades: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Defineix l\'advertiment de dades"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Servei d\'emplenament automàtic"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Servei d\'emplenament automàtic predeterminat"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Contrasenyes"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Serveis de contrasenyes, claus d\'accés i dades"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Contrasenyes, claus d\'accés i serveis de dades"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Proveïdors addicionals"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# contrasenya}other{# contrasenyes}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automàtic, emplenament, emplenament automàtic, contrasenya"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, emplena, emplenament automàtic, dades, clau d\'accés, contrasenya"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Assegura\'t que confies en aquesta aplicació</b> <br/> <br/> <xliff:g id=app_name example=Emplenament automàtic amb Google>%1$s</xliff:g> utilitza el contingut que es mostra a la pantalla per determinar què es pot emplenar automàticament."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Vols utilitzar <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> fa servir el que es mostra a la pantalla per determinar què es pot emplenar automàticament. Les noves contrasenyes, claus d\'accés i altres dades es desaran aquí a partir d\'ara."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Serveis de contrasenyes, claus d\'accés i dades"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Contrasenyes, claus d\'accés i serveis de dades"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vols desactivar %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Vols desactivar aquest servei?</b> <br/> <br/> La informació desada, com ara contrasenyes, claus d\'accés i formes de pagament, entre d\'altres, no s\'emplenarà quan iniciïs la sessió. Per utilitzar la teva informació desada, tria una contrasenya, una clau d\'accés o un servei de dades."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Vols utilitzar %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s fa servir el que es mostra a la pantalla per determinar què es pot emplenar automàticament."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Límit de serveis de contrasenyes, claus d\'accés i dades"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Pots tenir fins a 5 serveis de contrasenyes, claus d\'accés i dades actius alhora. Desactiva un servei per afegir-ne més."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Límit de contrasenyes, claus d\'accés i serveis de dades"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Pots tenir fins a 5 contrasenyes, claus d\'accés i serveis de dades actius alhora. Desactiva un servei per afegir-ne més."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desactiva"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Emplenament automàtic"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivell de registre"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"L\'àudio dels continguts multimèdia compatibles esdevé més immersiu"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguiment del cap"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"L\'àudio canvia a mesura que mous el cap per sonar més natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipus de dispositiu d\'àudio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconegut"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altaveu"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Auriculars"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Equip per a l\'automòbil"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Altres"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Límit de velocitat de baixada de la xarxa"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura el límit de velocitat d\'entrada de l\'amplada de banda de la xarxa que s\'aplica a totes les xarxes que proporcionen connexió a Internet"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura el límit de velocitat de baixada de la xarxa"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Desinstal·la l\'aplicació"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplicacions instal·lades en el # darrer mes}other{Aplicacions instal·lades en els # darrers mesos}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplicacions instal·lades fa més d’# mes}other{Aplicacions instal·lades fa més de # mesos}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Relació d\'aspecte"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Tria una relació d\'aspecte per veure aquesta aplicació en cas que no s\'hagi dissenyat per adaptar-se al teu dispositiu (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplicacions suggerides"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplicacions que has anul·lat"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Configuració predeterminada de l\'aplicació"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pantalla completa"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Mitja pantalla"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Relació d\'aspecte del dispositiu"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"L\'aplicació es reiniciarà quan canviïs la relació d\'aspecte. És possible que es perdin els canvis sense desar."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensor d\'empremtes digitals"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Notificacions amb flaix"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Sobre les notificacions amb flaix"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Mitjà"</string>
<string name="contrast_high" msgid="3988567609694797696">"Alt"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Aquesta aplicació només pot obrir-se en 1 finestra"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Servei activat"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Servei desactivat"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Drecera desactivada"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Activada"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desactivada"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desactivada"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desactivada"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Activat"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Desactivat"</string>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index c0b73a5..9741c06 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Po 1 minutě"</item>
<item msgid="1574040255478150028">"Po 5 minutách"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Pokud chcete prodloužit výdrž baterie, zapněte adaptivní jas"</item>
+ <item msgid="2256666063790193306">"Pokud chcete prodloužit výdrž baterie, zkraťte interval vypnutí obrazovky"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index f57cae2..1b7f7fa 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Neurčeno"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Žena"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Muž"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Odstranit vybraný jazyk?}few{Odstranit vybrané jazyky?}many{Odstranit vybrané jazyky?}other{Odstranit vybrané jazyky?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text se bude zobrazovat v jiném jazyce."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nelze odstranit všechny jazyky"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Obličej a hodinky <xliff:g id="WATCH">%s</xliff:g> byly přidány"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Obličej, otisk prstu a hodinky <xliff:g id="WATCH">%s</xliff:g> byly přidány"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Obličej, otisky prstů a hodinky <xliff:g id="WATCH">%s</xliff:g> byly přidány"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavení hodinek"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Odemknutí pomocí hodinek je další pohodlný způsob, jak tento telefon odemknout, například když máte mokré prsty nebo když nerozpozná váš obličej.\n\nPomocí hodinek můžete tento telefon odemknout, když:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Teď ne"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Pokračovat"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Další možnosti"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Jak to funguje"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Hodinky musí být odemknuté, nasazené na ruce a v dosahu telefonu. Nasazené hodinky nebudete muset znovu odemykat."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Když se telefon odemkne, obdržíte na hodinky oznámení. Pokud byl odemknutý, aniž byste to chtěli, klepnutím na oznámení ho můžete znovu zamknout."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vše máte ve svých rukou"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Hodinky můžete z odemykání pomocí hodinek kdykoli odstranit v Nastavení"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Klepněte na oznámení"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Přejeďte po obrazovce uzamčení nahoru"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Vyberte své hodinky"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupné hodinky"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Zrušit"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdit"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"A je to."</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Když po obrazovce uzamčení přejedete prstem nahoru nebo klepnete na oznámení, můžete nyní tento telefon odemknout pomocí hodinek"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Hotovo"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Odemknutí pomocí hodinek"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Když po obrazovce uzamčení přejedete prstem nahoru nebo klepnete na oznámení, můžete tento telefon odemknout pomocí hodinek"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"K odemknutí pomocí hodinek musíte být hodinky odemknuté, nasazené na ruce, v dosahu a připojené k tomuto telefonu. V případě přerušení připojení budete odemknutí pomocí hodinek moci používat až poté, co telefon odemknete.\n\nMějte na paměti:\nV jednu chvíli lze mít nastavené jen jedny hodinky. Pokud chcete přidat další hodinky, nejdříve odstraňte ty aktuální."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Další informace o odemknutí pomocí hodinek"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Přidat hodinky"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Odstranit hodinky"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odemknutí pomocí otisku prstu nebo obličeje"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Odemknutí obličejem a otiskem prstu pro práci"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Nutné nastavení"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Tento přístupový klíč bude možná nutné zadat i v druhém zařízení."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrďte párování s koordinovanou sadou"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Povolit přístup ke kontaktům a historii volání"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Povolit také přístup ke kontaktům a historii volání"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informace se budou používat k oznamování hovorů a k dalším účelům"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"K zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> se nelze připojit."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupná zařízení"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sdílení Wi‑Fi s tímto zařízením…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Připojování…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Sdílení hotspotu"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Ověřte svou totožnost"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potvrďte, že jste to vy"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Heslo k Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Heslo k hotspotu: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatické připojení"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Síť není v dosahu"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Zapomenout"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Upravit"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Zapomenutí sítě se nezdařilo."</string>
<string name="wifi_save" msgid="2312643132472226807">"Uložit"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Uložení sítě se nezdařilo."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Zrušit"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Pokud vámi preferovaná frekvence nebude k dispozici, hotspot může použít jinou. Pokud frekvenci změníte, může se změnit nastavení zabezpečení hotspotu."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"S frekvencí 6 GHz není k dispozici"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Pokud frekvenci hotspotu změníte, může se změnit nastavení zabezpečení"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Zapínání hotspotu…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Vypínání hotspotu…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering není k dispozici"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zapomněli jste heslo?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zapomněli jste gesto?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zapomněli jste PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Pokud chcete pokračovat, zadejte gesto zařízení."</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Chcete-li pokračovat, zadejte PIN zařízení."</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Chcete-li pokračovat, zadejte heslo zařízení."</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Chcete-li pokračovat, zadejte pracovní gesto."</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Pokud chcete pokračovat, zadejte gesto"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Pokud chcete pokračovat, zadejte PIN"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Pokud chcete pokračovat, zadejte heslo"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Pokud chcete pokračovat, zadejte pracovní gesto"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Chcete-li pokračovat, zadejte pracovní PIN."</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Chcete-li pokračovat, zadejte pracovní heslo."</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Za účelem zvýšení zabezpečení použijte gesto zařízení"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"K dispozici není žádný popis."</string>
<string name="settings_button" msgid="2195468788019730377">"Nastavení"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"citlivost na světlo, fotofobie, tmavý motiv, migréna, bolest hlavy, režim čtení, noční režim, snížení jasu, bílý bod"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Usnadnění přístupu, přístupnost, asistence, asistenční"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"zrak, sluch, nevidomý, neslyšící, pohyb, obratnost, asistenční, asistence, snadné používání, snadný přístup, ruka, pomoc"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Zvětšení oken, velikost zobrazení, zoom, zvětšení, slabozrakost, zvětšit"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Titulky pro neslyšící, skryté titulky, Okamžitý přepis, nedoslýchavost, ztráta sluchu, převod řeči na text, titulky"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"barevný kontrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, myš"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"naslouchátka, nedoslýchavost, kochleární implantáty, zesilovací zařízení, zvukové procesory"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"pohyb, myš, externí myš, náhlavní myš, adaptivní myš, invalidní vozík, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"naslouchátka, nedoslýchavost, ztráta sluchu, kochleární implantáty, zesilovací zařízení, zvukové procesory, osobní zesilovač zvuku"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"nedoslýchavost, ztráta sluchu, titulky pro neslyšící, Teletype, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tři tlačítka"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"obratnost, pohyb, senior, artritida, syndrom rsi, mozková mrtvice, třes, roztroušená skleróza, mozková obrna, poškození z opakovaného namáhání, ruka"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"prodleva, obratnost, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Tisk"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Vypnuto"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 tisková služba je zapnutá}few{# tiskové služby jsou zapnuté}many{# tiskové služby je zapnutých}other{# tiskových služeb je zapnutých}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Upozornění na data při <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Limit dat <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Upozornění na data: <xliff:g id="ID_1">^1</xliff:g> / limit dat: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operátor může data počítat jinak než zařízení"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Graf nezahrnuje data využitá sítěmi operátora."</string>
<string name="data_used_template" msgid="8229342096562327646">"Využito <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Nastavit upozornění na data"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Služba automatického vyplňování"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Výchozí služba automatického vyplňování"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Hesla"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Hesla, přístupové klíče a datové služby"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Hesla, přístupové klíče a datové služby"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Další poskytovatelé"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# heslo}few{# hesla}many{# hesla}other{# hesel}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automaticky, vyplnit, vyplnit automaticky, heslo"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatické, vyplňování, automatické vyplňování, údaje, přístupový klíč, heslo"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Zkontrolujte, zda se jedná o důvěryhodnou aplikaci</b> <br/> <br/> <xliff:g id=app_name example=Automatické doplňování Google>%1$s</xliff:g> určuje, co lze automaticky vyplnit, na základě obsahu obrazovky."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Použít <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> používá obsah obrazovky k určení, co lze automaticky vyplnit. Odteď se sem budou ukládat nová hesla, přístupové klíče a další údaje."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Hesla, přístupové klíče a datové služby"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Hesla, přístupové klíče a datové služby"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vypnout poskytovatele %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Vypnout tuto službu?</b> <br/> <br/> Při přihlášení se nebudou vyplňovat uložené údaje, jako jsou hesla, přístupové klíče, platební metody a podobně. Pokud chcete používat uložené údaje, zvolte heslo, přístupový klíč nebo datovou službu."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Použít %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s určuje údaje, které lze automaticky vyplnit, na základě obsahu obrazovky."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limit hesel, přístupových klíčů a datových služeb"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"V jednu chvíli můžete mít aktivních až 5 hesel, přístupových klíčů a datových služeb. Pokud chcete přidat další, některou službu vypněte."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limit hesel, přístupových klíčů a datových služeb"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"V jednu chvíli můžete mít aktivních až 5 hesel, přístupových klíčů a datových služeb. Pokud chcete přidat další, některou službu vypněte."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Vypnout"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automatické vyplňování"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Úroveň protokolování"</string>
@@ -4674,6 +4710,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk z kompatibilních mediálních zařízení bude realističtější"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Sledování hlavy"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Při pohybu hlavou se zvuk mění, aby zněl přirozeněji"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Typ zvukového zařízení"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Neznámé"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Reproduktor"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Sluchátka"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Sada handsfree do auta"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Jiné"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limit rychlosti stahování v síti"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Možnost nakonfigurovat limit rychlosti připojení k síti u příchozích přenosů, který bude platit pro všechny sítě poskytující připojení k internetu."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurace limitu rychlosti stahování v síti"</string>
@@ -4706,24 +4750,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Odinstalovat aplikaci"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikace nainstalované během posledního # měsíce}few{Aplikace nainstalované během posledních # měsíců}many{Aplikace nainstalované během posledního # měsíce}other{Aplikace nainstalované během posledních # měsíců}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikace nainstalované před více než # měsícem}few{Aplikace nainstalované před více než # měsíci}many{Aplikace nainstalované před více než # měsíce}other{Aplikace nainstalované před více než # měsíci}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Poměr stran"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Zvolte poměr stran, ve kterém se bude aplikace zobrazovat, pokud není určena pro rozměr obrazovky vašeho zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Navrhované aplikace"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikace, které jste přepsali"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Výchozí možnost aplikace"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Celá obrazovka"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Polovina obrazovky"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Poměr stran zařízení"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16 : 9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4 : 3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Když změníte poměr stran, aplikace se restartuje. Můžete přijít o neuložené změny."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Snímač otisků prstů"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Světelná oznámení"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Informace o světelných oznámeních"</string>
@@ -4758,10 +4796,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Střední"</string>
<string name="contrast_high" msgid="3988567609694797696">"Vysoká"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Tuto aplikaci lze otevřít jen v jednom okně"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Služba zapnuta"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Služba vypnuta"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Zkratka vypnuta"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Zapnuto"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Vypnuto"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Vypnuto"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Vypnuto"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Zapnuto"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Vypnuto"</string>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index cfc4b97..279e474 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Efter 1 minut"</item>
<item msgid="1574040255478150028">"Efter 5 minutter"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Aktivér automatisk lysstyrke for at forlænge batteritiden"</item>
+ <item msgid="2256666063790193306">"Reducer timeout for skærm for at forlænge batteritiden"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 525ca16..110bda9 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ikke angivet"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Femininum"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulinum"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vil du fjerne det valgte sprog?}one{Vil du fjerne det valgte sprog?}other{Vil du fjerne de valgte sprog?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Al tekst vises på et andet sprog."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Du kan ikke fjerne alle sprog."</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ansigt og <xliff:g id="WATCH">%s</xliff:g> er tilføjet"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ansigt, fingeraftryk og <xliff:g id="WATCH">%s</xliff:g> er tilføjet"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ansigt, fingeraftryk og <xliff:g id="WATCH">%s</xliff:g> er tilføjet"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfigurer dit ur"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Oplåsning via ur er en nem måde at låse telefonen op, f.eks. når dine hænder er våde, eller dit ansigt ikke genkendes.\n\nDu kan bruge dit ur til at låse denne telefon op, når du:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ikke nu"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Fortsæt"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mere"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Sådan fungerer det"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Dit ur skal være oplåst, sidde omkring dit håndled og være tæt på denne telefon. Du behøver ikke at låse dit ur op igen, når det sidder omkring dit håndled."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Når denne telefon låses op, får du en notifikation på dit ur. Hvis den låses op ved en fejl, kan du trykke på notifikationen for at låse telefonen igen."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Du bestemmer"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Du kan til enhver tid fjerne dit ur fra oplåsning via ur i Indstillinger"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tryk på en notifikation"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Stryg opad på låseskærmen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Vælg dit ur"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Tilgængelige ure"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annuller"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bekræft"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Så er du klar!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Du kan nu bruge dit ur til at låse denne telefon op, når du stryger opad på låseskærmen eller trykker på en notifikation"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Udfør"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Oplåsning via ur"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Du kan bruge dit ur til at låse denne telefon op, når du stryger opad på låseskærmen eller trykker på en notifikation"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Hvis du vil bruge oplåsning via ur, skal uret være oplåst, sidde omkring dit håndled og være tæt på samt forbundet til denne telefon. Hvis forbindelsen afbrydes, skal du låse telefonen op, før du kan bruge oplåsning via ur.\n\nHusk!\nDu kan kun konfigurere ét ur ad gangen. For at tilføje et nyt ur skal du først fjerne det aktuelle ur."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Få flere oplysninger om oplåsning via ur"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Tilføj ur"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Fjern ur"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingeraftryk og ansigtslås"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ansigtslås og oplåsning med fingeraftryk til arbejdsprofil"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfiguration er påkrævet"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Du skal muligvis også indtaste denne adgangsnøgle på den anden enhed."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bekræft for at parre med det koordinerede sæt"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Giv adgang til dine kontakter og din opkaldshistorik"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Tillad også adgang til kontakter og opkaldshistorik"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Oplysningerne bruges til opkaldsmeddelelser m.m."</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Der kunne ikke oprettes forbindelse til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Tilgængelige enheder"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deler Wi-Fi med denne enhed…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Opretter forbindelse…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Del hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verificer, at det er dig"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Bekræft, at det er dig"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Adgangskode til Wi-Fi-netværk: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Adgangskode til hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Opret automatisk forbindelse"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netværket er ikke inden for rækkevidde"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Glem"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Rediger"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Netværket kunne ikke glemmes"</string>
<string name="wifi_save" msgid="2312643132472226807">"Gem"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Netværk kunne ikke gemmes"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Annuller"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Hvis din foretrukne frekvens ikke er tilgængelig, anvender dit hotspot muligvis en anden. Sikkerhedsindstillingerne for hotspottet kan ændres, hvis du justerer frekvensen."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Ikke tilgængeligt med 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Sikkerhedsindstillingerne kan ændres, hvis du justerer frekvensen for hotspottet"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Aktiverer hotspot..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Deaktiverer hotspot..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Netdeling er ikke tilgængeligt"</string>
@@ -1364,7 +1398,7 @@
<string name="mobile_connect_to_internet" msgid="8162654404357069060">"Opret forbindelse til internettet"</string>
<string name="location_category_recent_location_requests" msgid="2205900488782832082">"Seneste lokationsanmodninger"</string>
<string name="managed_profile_location_switch_title" msgid="1265007506385460066">"Lokation for arbejdsprofil"</string>
- <string name="location_app_level_permissions" msgid="907206607664629759">"Adgangstilladelse til lokation for apps"</string>
+ <string name="location_app_level_permissions" msgid="907206607664629759">"Lokationstilladelse for apps"</string>
<string name="location_app_permission_summary_location_off" msgid="2711822936853500335">"Lokation er slået fra"</string>
<string name="location_app_permission_summary_location_on" msgid="7552095451731948984">"{count,plural, =1{# ud af {total} apps har adgang til din lokation}one{# ud af {total} apps har adgang til din lokation}other{# ud af {total} apps har adgang til din lokation}}"</string>
<string name="location_category_recent_location_access" msgid="2558063524482178146">"Seneste adgang"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Har du glemt din adgangskode?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Har du glemt dit mønster?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Har du glemt din pinkode?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Brug mønsteret til din enhed for at fortsætte"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Angiv pinkoden til din enhed for at fortsætte"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Angiv adgangskoden til din enhed for at fortsætte"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Brug mønsteret til din arbejdsprofil for at fortsætte"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Tegn dit mønster for at fortsætte"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Angiv din pinkode for at fortsætte"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Angiv din adgangskode for at fortsætte"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Tegn dit arbejdsmønster for at fortsætte"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Angiv pinkoden til din arbejdsprofil for at fortsætte"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Angiv adgangskoden til din arbejdsprofil for at fortsætte"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Brug mønsteret til din enhed for at opnå øget sikkerhed"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ingen beskrivelse til rådighed."</string>
<string name="settings_button" msgid="2195468788019730377">"Indstillinger"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"lysfølsomhed, fotofobi, mørkt tema, migræne, hovedpine, læsetilstand, nattilstand, dæmp lyset, hvidt punkt"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Brugervenlighed, nem at bruge, nem adgang, hjælp, hjælpsom"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"syn, hørelse, blind, døv, mobilitet, fingerbevægelighed, hjælp, hjælpefunktion, brugervenlighed, nem adgang, hånd, assistance"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Forstørrelse af vindue, zoom, forstørrelse, nedsat syn, forstør, gør større"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Tekster, undertekster for hørehæmmede, undertekster, Live transskribering, hørehæmmet, hørelsestab, CART, indtaling, undertekst"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"farvekontrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorik, fingerfærdighed, mus"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"høreapparater, hørehæmmet, tab af hørelse, cochlear-implantater, lydforstærkere, lydprocessorer"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"mobilitet, ekstern mus, hovedmus, adaptiv mus, kørestol, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"høreapparater, hørehæmmet, tab af hørelse, cochlear-implantater, lydforstærkere, lydprocessorer, produkter til lydforstærkning"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"hørehæmmet, hørelsestab, undertekster, teleprinter, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tre knapper"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"fingerbevægelighed, mobilitet, ældre, gigt, rsi, slagtilfælde, ufrivillige bevægelser, multipel sklerose, spastisk lammelse, rystelser, belastningsskade, hånd"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"forsinkelse, fingerbevægelighed, ældre"</string>
<string name="print_settings" msgid="8519810615863882491">"Udskrivning"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Fra"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 udskrivningstjeneste er aktiveret}one{# udskrivningstjeneste er aktiveret}other{# udskrivningstjenester er aktiveret}}"</string>
@@ -2451,7 +2488,7 @@
<string name="number_of_urls" msgid="1128699121050872188">"{count,plural, =1{# webadresse}one{# webadresse}other{# webadresser}}"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Ringesignal i nødsituationer"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Angiv adfærd ved nødopkald"</string>
- <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
+ <string name="privacy_settings_title" msgid="6437057228255974577">"Sikkerhedskopiering"</string>
<string name="backup_summary_state_on" msgid="9018954639693085240">"Til"</string>
<string name="backup_summary_state_off" msgid="5341339397224835909">"Fra"</string>
<string name="backup_section_title" msgid="6539706829848457794">"Backup og gendannelse"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Dataadvarsel ved <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Datagrænse på <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Dataadvarsel ved <xliff:g id="ID_1">^1</xliff:g>/datagrænse på <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Mobilselskabets dataopgørelse kan afvige fra enhedens opgørelse."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Omfatter ikke data, der anvendes af mobilnetværk"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> brugt"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Konfigurer dataadvarsel"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Autofyld-tjeneste"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Standardtjeneste til autofyld"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Adgangskoder"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Adgangskoder, adgangsnøgler og datatjenester"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Adgangskoder, adgangsnøgler og datatjenester"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Yderligere udbydere"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# adgangskode}one{# adgangskode}other{# adgangskoder}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatisk, udfyld, autofyld, adgangskode"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatisk, udfyldning, autofyld, data, adgangsnøgle, adgangskode"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Sørg for, at du har tillid til denne app</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> anvender indholdet af din skærm til at fastslå, hvad der kan udfyldes automatisk."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Vil du bruge <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> bruger det, der vises på din skærm, til at afgøre, hvad der kan udfyldes automatisk. Nye adgangskoder, adgangsnøgler og andre nye oplysninger gemmes her fra nu af."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Adgangskoder, adgangsnøgler og datatjenester"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Adgangskoder, adgangsnøgler og datatjenester"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vil du deaktivere %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Vil du deaktivere denne tjeneste?</b> <br/> <br/> Gemte oplysninger som f.eks. adgangskoder, adgangsnøgler, betalingsmetoder og andre oplysninger udfyldes ikke, når du logger ind. Hvis du vil bruge dine gemte oplysninger, skal du vælge en adgangskode, en adgangsnøgle eller en datatjeneste."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Vil du bruge %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s bruger det, der vises på din skærm, til at afgøre, hvad der kan udfyldes automatisk."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Grænse for antal adgangskoder, adgangsnøgler og datatjenester"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Du kan have op til 5 aktive adgangskoder, adgangsnøgler og datatjenester ad gangen. Deaktiver en tjeneste, hvis du vil tilføje en ny."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Grænse for antal adgangskoder, adgangsnøgler og datatjenester"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Du kan have op til 5 aktive adgangskoder, adgangsnøgler og datatjenester ad gangen. Deaktiver en tjeneste, hvis du vil tilføje en ny."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Deaktiver"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autofyld"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Logningsniveau"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Lyden fra kompatible medieenheder bliver endnu bedre"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Registrering af hovedbevægelser"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Lyden ændrer sig, når du bevæger dit hoved, for at opnå en mere naturlig lyd"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type af lydenhed"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Ukendt"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Højttaler"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Høretelefoner"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Bilsæt"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Andet"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Grænse for downloadhastighed på netværket"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurer grænsen for indgående båndbredde på netværket, som vil gælde for alle netværk, der leverer internetforbindelse."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurer grænsen for downloadhastighed på netværket"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Afinstaller app"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Apps installeret i den seneste måned}one{Apps installeret i de seneste}other{Apps installeret i de seneste # måneder}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Apps, som er installeret for mere end # måned siden}one{Apps, som er installeret for mere end # måned siden}other{Apps, som er installeret for mere end # måneder siden}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Billedformat"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Vælg et billedformat for at se denne app, hvis den ikke er designet til at vises korrekt på din <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Foreslåede apps"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Apps, du har tilsidesat"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Standardindstilling for appen"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Fuld skærm"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halv skærm"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Billedformat på enheden"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Denne app genstartes, når du ændrer billedformatet. Du mister muligvis ændringer, der ikke er gemt."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingeraftrykssensor"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Lysnotifikationer"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Om lysnotifikationer"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Middel"</string>
<string name="contrast_high" msgid="3988567609694797696">"Høj"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Denne app kan kun åbnes i 1 vindue"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Tjenesten er aktiveret"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Tjenesten er deaktiveret"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Genvejen er deaktiveret"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Til"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Fra"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Fra"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Fra"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Til"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Fra"</string>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index de855c4..12fbf28 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Nach 1 Minute"</item>
<item msgid="1574040255478150028">"Nach 5 Minuten"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Automatische Helligkeit aktivieren, um die Akkulaufzeit zu verlängern"</item>
+ <item msgid="2256666063790193306">"Zeit bis zum automatischen Ausschalten des Displays verkürzen, um die Akkulaufzeit zu verlängern"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 5d7f8d8..0742fe0 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -122,7 +122,7 @@
<string name="stylus_default_notes_app" msgid="4165657465911764628">"Drücken der Eingabestifttaste"</string>
<string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Arbeitsprofil)"</string>
<string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Textfelder ausfüllen"</string>
- <string name="stylus_ignore_button" msgid="7734540973145241391">"Alle Schaltflächenaktivierungen durch Eingabestift ignorieren"</string>
+ <string name="stylus_ignore_button" msgid="7734540973145241391">"Drücken der Taste am Eingabestift ignorieren"</string>
<string name="stylus_connected_devices_title" msgid="2823967577941359812">"Eingabestift"</string>
<string name="date_and_time" msgid="1788358029823431692">"Datum & Uhrzeit"</string>
<string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nicht angegeben"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Weiblich"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Männlich"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Ausgewählte Sprache entfernen?}other{Ausgewählte Sprachen entfernen?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text wird in einer anderen Sprache angezeigt."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Du kannst nicht alle Sprachen entfernen"</string>
@@ -388,8 +390,33 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gesicht und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gesicht, Fingerabdruck und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gesicht, Fingerabdrücke und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Smartwatch einrichten"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock ist eine weitere bequeme Möglichkeit, das Smartphone zu entsperren, z. B. wenn deine Finger nass sind oder dein Gesicht nicht erkannt wird.\n\nDu kannst das Smartphone in den folgenden Fällen mit deiner Smartwatch entsperren:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Nicht jetzt"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Weiter"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mehr"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"So gehts"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Deine Smartwatch muss entsperrt sein und sich an deinem Handgelenk sowie in Reichweite des Smartphones befinden. Während du die Smartwatch am Handgelenk trägst, musst du sie nicht noch einmal entsperren."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Wenn dieses Smartphone entsperrt ist, wirst du auf der Smartwatch benachrichtigt. Wenn es versehentlich entsperrt wurde, tippe auf die Benachrichtigung, um das Smartphone wieder zu sperren."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Du hast die Kontrolle"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Du kannst deine Smartwatch jederzeit in den Einstellungen aus Watch Unlock entfernen"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Auf eine Benachrichtigung tippen"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Auf dem Sperrbildschirm nach oben wischen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Smartwatch auswählen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Verfügbare Smartwatches"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Abbrechen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bestätigen"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Fertig."</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Du kannst dieses Smartphone jetzt mit deiner Smartwatch entsperren, indem du auf dem Sperrbildschirm nach oben wischst oder auf eine Benachrichtigung tippst"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Fertig"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Du kannst dieses Smartphone mit deiner Smartwatch entsperren, indem du auf dem Sperrbildschirm nach oben wischst oder auf eine Benachrichtigung tippst"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Wenn du Watch Unlock verwenden möchtest, muss deine Smartwatch entsperrt und an deinem Handgelenk sein. Außerdem muss es sich in Reichweite des Smartphones befinden und mit diesem verbunden sein. Wenn die Verbindung unterbrochen wird, musst du das Smartphone entsperren, um Watch Unlock verwenden zu können.\n\nHinweis:\nFür diese Funktion kann immer nur eine Smartwatch auf einmal eingerichtet sein. Wenn du eine andere Smartwatch einrichten möchtest, musst du zuerst die aktuelle löschen."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Weitere Informationen zu Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Smartwatch hinzufügen"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Smartwatch entfernen"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Entsperrung per Gesichtserkennung & Fingerabdruck"</string>
- <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Gesichts- und Fingerabdruckentsperrung für die Arbeit"</string>
+ <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Entsperrung per GesichtsU+00ADerkennung & FingerU+00ADabdruck für die Arbeit"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Einrichtung erforderlich"</string>
<string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Gesicht und Fingerabdrücke hinzugefügt"</string>
<string name="security_settings_biometric_preference_summary_both_fp_single" msgid="684409535278676426">"Gesicht und Fingerabdruck hinzugefügt"</string>
@@ -504,10 +531,10 @@
<string name="encryption_settings_title" msgid="2848716008695618360">"Verschlüsselung"</string>
<string name="encrypted_summary" msgid="545623487587251207">"Verschlüsselt"</string>
<string name="no_screen_lock_issue_title" msgid="1814109590692792891">"Displaysperre einrichten"</string>
- <string name="no_screen_lock_issue_summary" msgid="2383217853510608406">"Für zusätzliche Sicherheit kannst du eine PIN, ein Muster oder ein Passwort für dieses Gerät einrichten."</string>
+ <string name="no_screen_lock_issue_summary" msgid="2383217853510608406">"Für zusätzliche Sicherheit lässt sich eine PIN, ein Muster oder ein Passwort einrichten."</string>
<string name="no_screen_lock_issue_action_label" msgid="2691229130486382863">"Displaysperre einrichten"</string>
<string name="no_screen_lock_issue_notification_title" msgid="1214876733592830628">"Displaysperre einrichten"</string>
- <string name="no_screen_lock_issue_notification_text" msgid="8696194459170873345">"Für zusätzliche Sicherheit kannst du eine PIN, ein Muster oder ein Passwort für dieses Gerät einrichten."</string>
+ <string name="no_screen_lock_issue_notification_text" msgid="8696194459170873345">"Für zusätzliche Sicherheit lässt sich eine PIN, ein Muster oder ein Passwort einrichten."</string>
<string name="suggested_lock_settings_title" msgid="7836065447159730217">"Smartphone schützen"</string>
<string name="suggested_fingerprint_lock_settings_title" msgid="3140266181874137984">"Fingerabdruck zum Entsperren hinzufügen"</string>
<string name="lock_settings_picker_title" msgid="9219376327364915334">"Displaysperre wählen"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Eventuell musst du diesen Zugangscode auch auf dem anderen Gerät eingeben."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bestätigen, um die Geräte in koordinierter Art und Weise zu koppeln"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Zugriff auf meine Kontakte und meine Anrufliste zulassen"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Auch den Zugriff auf Kontakte und Anruflisten erlauben"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Die Daten werden für Anrufbenachrichtigungen und anderes verwendet"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Keine Verbindung zu <xliff:g id="DEVICE_NAME">%1$s</xliff:g> möglich"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Verfügbare Geräte"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"WLAN wird für dieses Gerät freigegeben…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Verbindung wird hergestellt…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot teilen"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Deine Identität bestätigen"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Identität bestätigen"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"WLAN-Passwort: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Passwort des Hotspots: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatische Verbindung"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netzwerk außer Reichweite"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Entfernen"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Ändern"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Netzwerk konnte nicht entfernt werden."</string>
<string name="wifi_save" msgid="2312643132472226807">"Speichern"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Netzwerk konnte nicht gespeichert werden."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Abbrechen"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Wenn die bevorzugte Frequenz nicht verfügbar ist, verwendet dein Hotspot möglicherweise eine andere Frequenz. Die Sicherheitseinstellungen für den Hotspot ändern sich unter Umständen, wenn du die Frequenz änderst."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nicht verfügbar mit 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Die Sicherheitseinstellungen ändern sich unter Umständen, wenn du die Frequenz des Hotspots änderst"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Hotspot wird aktiviert…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Hotspot wird deaktiviert…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering nicht verfügbar"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Passwort vergessen?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Muster vergessen?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN vergessen?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gib zum Fortfahren das Muster für dein Gerät ein"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Gib zum Fortfahren die PIN für dein Gerät ein"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Gib zum Fortfahren das Passwort für dein Gerät ein"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gib zum Fortfahren das Muster deines Arbeitsprofils ein"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Zeichne dein Muster, um fortzufahren"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Gib deine PIN ein, um fortzufahren"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Gib dein Passwort ein, um fortzufahren"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Zeichne das Muster deines Arbeitsprofils, um fortzufahren"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Gib zum Fortfahren die PIN deines Arbeitsprofils ein"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Gib zum Fortfahren das Passwort deines Arbeitsprofils ein"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Verwende das Muster für dein Gerät, um die Sicherheit zu erhöhen"</string>
@@ -1702,7 +1736,7 @@
<string name="trackpad_bottom_right_tap_summary" msgid="8734094086900680674">"Tippe unten rechts auf das Touchpad für weitere Optionen"</string>
<string name="trackpad_pointer_speed" msgid="7786579408631352625">"Zeigergeschwindigkeit"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Informationen zu Touchpad-Gesten"</string>
- <string name="gesture_title_go_home" msgid="3682238648647225933">"Zum Startbildschirm"</string>
+ <string name="gesture_title_go_home" msgid="3682238648647225933">"Zum StartU+00ADbildschirm"</string>
<string name="gesture_summary_go_home" msgid="6409031586904205741">"Wische irgendwo auf dem Touchpad mit drei Fingern nach oben"</string>
<string name="gesture_title_go_back" msgid="6619462058488419802">"Zurück"</string>
<string name="gesture_summary_go_back" msgid="4981604277892236888">"Wische mit drei Fingern von links oder rechts"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Es wurde keine Beschreibung bereitgestellt."</string>
<string name="settings_button" msgid="2195468788019730377">"Einstellungen"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"Lichtempfindlichkeit, Photophobie, dunkles Design, Migräne, Kopfschmerzen, Lesemodus, Nachtmodus, Helligkeit verringern, Weißpunkt"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Einfache Verwendung, einfacher Zugriff, Unterstützung, unterstützend"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"Sehfähigkeit, Hörfähigkeit, blind, gehörlos, motorische Einschränkungen, Feinmotorik, Unterstützung, Nutzerfreundlichkeit, Zugänglichkeit, Hand, Hilfe"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Fenstervergrößerung, Zoom, Vergrößerung, eingeschränktes Sehvermögen, Vergrößerung, größer machen"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Untertitel, Automatische Transkription, Schwerhörigkeit, Hörverlust, Spracherkennung in Echtzeit (CART), Spracherkennung"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"Farbkontrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"Motorik, Maus"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"Hörgeräte, schwerhörig, Hörverlust, Cochlea-Implantate, Audioverstärker, Geräuschprozessor"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorische Einschränkungen, Maus, externe Maus, Kopfmaus, adaptive Maus, Rollstuhl, Joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"Hörgeräte, schwerhörig, Hörverlust, Cochlea-Implantate, Audioverstärker, Geräuschprozessor, persönliche Tonverstärker"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"Schwerhörigkeit, Hörverlust, Untertitel, Fernschreiber, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"drei Schaltflächen"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"Feinmotorik, motorische Einschränkungen, Senioren, Arthritis, RSI-Syndrom, Schlaganfall, Tremor, multiple Sklerose, zerebrale Kinderlähmung, Zittern, Repetitive-Strain-Injury-Syndrom, Hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"Verzögerung, Feinmotorik, Senioren"</string>
<string name="print_settings" msgid="8519810615863882491">"Drucken"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Aus"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 Druckdienst aktiviert}other{# Druckdienste aktiviert}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Warnlimit für mobile Datennutzung: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Datenlimit: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Warnlimit für mobile Datennutzung: <xliff:g id="ID_1">^1</xliff:g>/Datenlimit: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Dein Mobilfunkanbieter berechnet die Datennutzung eventuell anders als das Gerät"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Beinhaltet keine im Mobilfunknetz verbrauchten Daten"</string>
<string name="data_used_template" msgid="8229342096562327646">"Verbrauchte Daten: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Datenwarnung festlegen"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Autofill-Service"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Standard-Autofill-Service"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Passwörter"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwörter, Passkeys und Datendienste"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Passwörter, Passkeys und Datendienste"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Zusätzliche Anbieter"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# Passwort}other{# Passwörter}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatisch, füllen, ausfüllen, Passwort, auto, fill, autofill, password"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatisch, ausfüllen, Autofill, Daten, Passkey, Passwort"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Nur für vertrauenswürdige Apps</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> greift auf die Displayanzeige zu, um zu bestimmen, welche Felder automatisch ausgefüllt werden können. Die Funktion sollte daher nur für vertrauenswürdige Apps zugelassen werden."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b><xliff:g id=app_name example=Provider>%1$s</xliff:g> verwenden?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> bestimmt anhand des Bildschirminhalts, was automatisch ausgefüllt werden kann. Ab jetzt werden neue Passwörter, Passkeys und andere Informationen hier gespeichert."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Passwörter, Passkeys und Datendienste"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Passwörter, Passkeys und Datendienste"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s deaktivieren?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Diesen Dienst deaktivieren?</b> <br/> <br/> Gespeicherte Daten wie Passwörter, Passkeys, Zahlungsmethoden usw. werden beim Anmelden nicht eingetragen. Wenn du deine gespeicherten Daten verwenden möchtest, nutze einen Passwort-, Passkey- oder Datendienst."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s verwenden?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ermittelt anhand der Inhalte auf deinem Bildschirm, welche Informationen automatisch ausgefüllt werden können."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Beschränkung für Passwörter, Passkeys und Datendienste"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Es können bis zu 5 Passwörter, Passkeys und Datendienste gleichzeitig aktiviert sein. Wenn du einen weiteren Dienst hinzufügen möchtest, deaktiviere einen anderen."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Beschränkung für Passwörter, Passkeys und Datendienste"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Es können bis zu 5 Passwörter, Passkeys und Datendienste gleichzeitig aktiviert sein. Wenn du einen weiteren Dienst hinzufügen möchtest, deaktiviere einen anderen."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Deaktivieren"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autofill"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Protokollierungsebene"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Klang von kompatiblen Medien wird noch voller"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Erfassung von Kopfbewegungen"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Änderungen am Ton, während du deinen Kopf bewegst, damit er natürlicher klingt"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audiogerätetyp"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unbekannt"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Lautsprecher"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Kopfhörer"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Freisprechanlage"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Sonstiges"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ratenbegrenzung für Downloads im Netzwerk"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Damit kannst du die Ratenbegrenzung für eingehenden Traffic über die Netzwerkbandbreite konfigurieren, die für alle Netzwerke angewendet wird, die eine Internetverbindung zur Verfügung stellen."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Ratenbegrenzung für Downloads im Netzwerk konfigurieren"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"App deinstallieren"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Apps, die innerhalb des letzten Monats installiert wurden}other{Apps, die innerhalb der letzten # Monate installiert wurden}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Apps, die vor mehr als # Monat installiert wurden}other{Apps, die vor mehr als # Monaten installiert wurden}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Seitenverhältnis"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Wähle ein Seitenverhältnis für diese App aus, wenn sie nicht für dein Gerät (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) optimiert ist."</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Vorgeschlagene Apps"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Apps mit Überschreibung"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"App-Standard"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Ganzes Display"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halbes Display"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Seitenverhältnis des Geräts"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Wenn du das Seitenverhältnis änderst, wird die App neu gestartet. Dadurch gehen nicht gespeicherte Änderungen möglicherweise verloren."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingerabdrucksensor"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Aufleuchten bei Benachrichtigungen"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Infos zum Aufleuchten bei Benachrichtigungen"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Mittel"</string>
<string name="contrast_high" msgid="3988567609694797696">"Hoch"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Diese App kann nur in einem einzigen Fenster geöffnet werden"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Dienst aktiviert"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Dienst deaktiviert"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Verknüpfung deaktiviert"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"An"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Aus"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Aus"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Aus"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"An"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Aus"</string>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 2884bf0..d6caf0c 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Μετά από 1 λεπτό"</item>
<item msgid="1574040255478150028">"Μετά από 5 λεπτά"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Ενεργοποιήστε την προσαρμοστική φωτεινότητα για να επεκτείνετε τη διάρκεια ζωής της μπαταρίας"</item>
+ <item msgid="2256666063790193306">"Μειώστε τη λήξη χρονικού ορίου οθόνης για να επεκτείνετε τη διάρκεια ζωής της μπαταρίας"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 5ebef79..1e7195d 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Δεν έχει καθοριστεί"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Θηλυκό"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Αρσενικό"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Να αφαιρεθεί η επιλεγμένη γλώσσα;}other{Να αφαιρεθούν οι επιλεγμένες γλώσσες;}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Το κείμενο θα προβληθεί σε άλλη γλώσσα."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Δεν είναι δυνατή η κατάργηση όλων των γλωσσών"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Προστέθηκε το πρόσωπο και το <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Προστέθηκαν πρόσωπο, δακτυλικό αποτύπωμα και το <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Προστέθηκαν πρόσωπο, δακτυλικά αποτυπώματα και το <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Ρυθμίστε το ρολόι σας"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Το ξεκλείδωμα ρολογιού είναι ένας άλλος βολικός τρόπος για να ξεκλειδώνετε αυτό το τηλέφωνο, για παράδειγμα, όταν τα δάχτυλά σας είναι βρεγμένα ή δεν αναγνωρίζεται το πρόσωπό σας.\n\nΜπορείτε να χρησιμοποιήσετε το ρολόι σας για να ξεκλειδώσετε αυτό το τηλέφωνο όταν:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Όχι τώρα"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Συνέχεια"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Περισσότερα"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Πώς λειτουργεί"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Το ρολόι σας πρέπει να είναι ξεκλειδωμένο, να το φοράτε στον καρπό σας και να βρίσκεται κοντά στο τηλέφωνο. Δεν θα χρειαστεί να ξεκλειδώσετε ξανά το ρολόι σας όσο το φοράτε στον καρπό σας."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Όταν αυτό το τηλέφωνο ξεκλειδώνεται, θα ειδοποιείστε στο ρολόι σας. Αν ξεκλειδωθεί κατά λάθος, πατήστε την ειδοποίηση για να κλειδώσετε ξανά το τηλέφωνο."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Εσείς έχετε τον έλεγχο"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Μπορείτε να καταργήσετε το ρολόι σας από το ξεκλείδωμα ρολογιού οποιαδήποτε στιγμή στις Ρυθμίσεις"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Πατήστε μια ειδοποίηση"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Σύρετε προς τα επάνω στην οθόνη κλειδώματος"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Επιλέξτε το ρολόι σας"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Διαθέσιμα ρολόγια"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Ακύρωση"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Επιβεβαίωση"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Είστε έτοιμοι!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Μπορείτε πλέον να χρησιμοποιήσετε το ρολόι σας για να ξεκλειδώσετε αυτό το τηλέφωνο όταν σύρετε προς τα πάνω στην οθόνη κλειδώματος ή πατήσετε μια ειδοποίηση"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Τέλος"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Ξεκλείδωμα ρολογιού"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Μπορείτε να χρησιμοποιήσετε το ρολόι σας για να ξεκλειδώσετε αυτό το τηλέφωνο όταν σύρετε προς τα πάνω στην οθόνη κλειδώματος ή πατήσετε μια ειδοποίηση"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Για να χρησιμοποιήσετε το Ξεκλείδωμα ρολογιού, το ρολόι σας πρέπει να είναι ξεκλειδωμένο, να το φοράτε στον καρπό σας, να βρίσκεται κοντά και να είναι συνδεδεμένο σε αυτό το τηλέφωνο. Αν η σύνδεση διακοπεί, θα χρειαστεί να ξεκλειδώσετε το τηλέφωνο για να μπορέσετε να χρησιμοποιήσετε το Ξεκλείδωμα ρολογιού.\n\nΝα θυμάστε ότι:\nΜπορείτε να ρυθμίσετε μόνο ένα ρολόι τη φορά. Διαγράψτε πρώτα το τρέχον ρολόι για να προσθέσετε ένα άλλο."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Μάθετε περισσότερα σχετικά με το Ξεκλείδωμα ρολογιού"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Προσθήκη ρολογιού"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Κατάργηση ρολογιού"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Ξεκλείδωμα με δακτυλικό αποτύπωμα και με το πρόσωπο"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ξεκλείδωμα με πρόσωπο και δακτυλικό αποτύπωμα για την εργασία"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Απαιτείται ρύθμιση"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Επίσης, ενδέχεται να χρειαστεί να πληκτρολογήσετε το κλειδί πρόσβασης στην άλλη συσκευή."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Επιβεβαίωση σύζευξης με συντονισμένο σύνολο συσκευών"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Να επιτρέπεται η πρόσβαση στις επαφές σας και στο ιστορικό κλήσεων"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Επιτρέψτε επίσης την πρόσβαση στις επαφές και το ιστορικό κλήσεων"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Οι πληροφορίες θα χρησιμοποιούνται για ανακοινώσεις κλήσεων κ.ά."</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Δεν ήταν δυνατή η σύνδεση με τη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Διαθέσιμες συσκευές"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Κοινή χρήση Wi‑Fi με αυτήν τη συσκευή…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Σύνδεση…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Κοινή χρήση σημείου πρόσβασης Wi-Fi"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Επαληθεύστε την ταυτότητά σας"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Επαλήθευση ταυτότητας"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Κωδικός πρόσβασης Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Κωδικός πρόσβασης σημείου πρόσβασης Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Αυτόματη σύνδεση"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Το δίκτυο δεν βρίσκεται εντός εμβέλειας"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Διαγραφή"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Τροποποίηση"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Αποτυχία κατάργησης απομνημόνευσης δικτύου"</string>
<string name="wifi_save" msgid="2312643132472226807">"Αποθήκευση"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Αποτυχία αποθήκευσης δικτύου"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Ακύρωση"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Εάν η προτιμώμενη συχνότητά σας δεν είναι διαθέσιμη, το σημείο πρόσβασης Wi-Fi μπορεί να χρησιμοποιήσει μια άλλη. Οι ρυθμίσεις ασφαλείας του σημείου πρόσβασης Wi-Fi μπορεί να αλλάξουν αν αλλάξετε τη συχνότητα."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Δεν είναι διαθέσιμο στα 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Οι ρυθμίσεις ασφαλείας ενδέχεται να αλλάξουν αν αλλάξετε τη συχνότητα του σημείου πρόσβασης Wi-Fi"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Ενεργοποίηση σημείου πρόσβασης…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Απενεργοποίηση σημείου πρόσβασης…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Δεν είναι διαθέσιμη η σύνδεση"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ξεχάσατε τον κωδικό πρόσβασής σας;"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ξεχάσατε το μοτίβο σας;"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Ξεχάσατε το PIN σας;"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Χρησιμοποιήστε το μοτίβο της συσκευής σας για να συνεχίσετε"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Εισαγάγετε το PIN της συσκευής σας για να συνεχίσετε"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Εισαγάγετε τον κωδικό πρόσβασης της συσκευής σας για να συνεχίσετε"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Χρησιμοποιήστε το μοτίβο εργασίας σας για να συνεχίσετε"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Σχεδιάστε το μοτίβο σας για να συνεχίσετε"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Εισαγάγετε το PIN για να συνεχίσετε"</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">"Εισαγάγετε το PIN εργασίας σας για να συνεχίσετε"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Εισαγάγετε τον κωδικό πρόσβασης εργασίας σας για να συνεχίσετε"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Για πρόσθετη ασφάλεια, εισαγάγετε το μοτίβο της συσκευής σας"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Δεν υπάρχει περιγραφή."</string>
<string name="settings_button" msgid="2195468788019730377">"Ρυθμίσεις"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ευαισθησία στο φως, φωτοφοβία, σκούρο θέμα, ημικρανία, πονοκέφαλος, λειτουργία ανάγνωσης, νυχτερινή λειτουργία, μείωση φωτεινότητας, λευκό σημείο"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ευκολία χρήσης, εύκολη πρόσβαση, βοήθεια, υποβοήθηση"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"όραση, ακοή, τυφλός, τυφλή, τυφλοί, κωφός, κωφή, κωφοί, κινητική υποβοήθηση, κινητικότητα, υποβοήθηση, εξυπηρέτηση, ευκολία χρήσης, ευκολία πρόσβασης, χέρι, βοήθεια"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Εργαλείο μεγέθυνσης παραθύρου, Εστίαση, Μεγιστοποίηση, Χαμηλή όραση, Μεγέθυνση, αύξηση μεγέθους"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Υπότιτλοι, υπότιτλοι, Υπότιτλοι, Ζωντανή απομαγνητοφώνηση, βαρήκοοι, απώλεια ακοής, CART, ομιλία σε κείμενο, υπότιτλος"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"χρωματική αντίθεση"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"κινητικά προβλήματα, ποντίκι"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"βοηθήματα ακοής, βαρήκοος, βαρήκοη, βαρήκοοι, απώλεια ακοής, κοχλιακά εμφυτεύματα, συσκευές ενίσχυσης, συσκευές ενίσχυσης ήχου, επεξεργαστές ήχου"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"κινητική υποβοήθηση, ποντίκι, εξωτερικό ποντίκι, ποντίκι κεφαλιού, προσαρμοστικό ποντίκι, αναπηρικό αμαξίδιο, χειριστήριο"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"βοηθήματα ακοής, βαρήκοος, βαρήκοη, βαρήκοοι, απώλεια ακοής, κοχλιακά εμφυτεύματα, συσκευές ενίσχυσης, συσκευές ενίσχυσης ήχου, επεξεργαστές ήχου, προσωπικός ενισχυτής ακοής"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"βαρήκοοι, απώλεια ακοής, υπότιτλοι, Τηλέτυπο, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"τρία κουμπιά"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"κινητικότητα, κινητική υποβοήθηση, ηλικιωμένος, αρθρίτιδα, rsi, εγκεφαλικό, τρέμουλο, σκλήρυνση κατά πλάκας, εγκεφαλική παράλυση, ρίγος, κάκωση λόγω επαναλαμβανόμενης καταπόνησης, χέρι"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"καθυστέρηση, κινητικότητα, ηλικιωμένος"</string>
<string name="print_settings" msgid="8519810615863882491">"Εκτύπωση"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Ανενεργή"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ενεργή υπηρεσία εκτύπωσης}other{# ενεργές υπηρεσίες εκτύπωσης}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Προειδοποίηση <xliff:g id="ID_1">^1</xliff:g> δεδομένων"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Όριο <xliff:g id="ID_1">^1</xliff:g> δεδομένων"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Προειδοποίηση <xliff:g id="ID_1">^1</xliff:g> δεδομένων/Όριο <xliff:g id="ID_2">^2</xliff:g> δεδομένων"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Ο υπολογισμός των δεδομένων από την εταιρεία κινητής τηλεφωνίας μπορεί να διαφέρει από τον υπολογισμό της συσκευής"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Εξαιρούνται δεδομένα που χρησιμοποιούνται από δίκτυα εταιρειών κινητής τηλεφωνίας."</string>
<string name="data_used_template" msgid="8229342096562327646">"Χρησιμοποιήθηκαν <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Ορισμός προειδοπ. δεδομένων"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Υπηρεσία αυτόμ. συμπλήρωσης"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Προεπιλεγμένη υπηρεσία αυτόματης συμπλήρωσης"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Κωδικοί πρόσβασης"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Κωδικοί πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Κωδικοί πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Πρόσθετοι πάροχοι"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# κωδικός πρόσβασης}other{# κωδικοί πρόσβασης}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"αυτόματη, συμπλήρωση, αυτόματη συμπλήρωση, κωδικός πρόσβασης"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"αυτόματη, συμπλήρωση, αυτόματη συμπλήρωση, δεδομένα, κλειδί πρόσβασης, κωδικός πρόσβασης"</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="4951846866327737417">"<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="2642776965060619988">"Κωδικοί πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Κωδικοί πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Απενεργοποίηση του %1$s;"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Απενεργοποίηση αυτής της υπηρεσίας; </b> <br/> <br/> Αποθηκευμένες πληροφορίες, όπως κωδικοί πρόσβασης, κλειδιά πρόσβασης, τρόποι πληρωμής και άλλα, δεν θα συμπληρώνονται όταν είστε συνδεδεμένοι. Για να χρησιμοποιήσετε τις αποθηκευμένες πληροφορίες σας, επιλέξτε έναν κωδικό πρόσβασης, ένα κλειδί πρόσβασης ή μια υπηρεσία δεδομένων."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Χρήση %1$s;"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"Το %1$s χρησιμοποιεί το περιεχόμενο που εμφανίζεται στην οθόνη για να προσδιορίσει τα στοιχεία που μπορούν να συμπληρωθούν αυτόματα."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Όριο για κωδικούς πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Μπορείτε να ενεργοποιήσετε έως και 5 κωδικούς πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων ταυτόχρονα. Για να προσθέσετε μια άλλη υπηρεσία, απενεργοποιήστε μια από τις υπάρχουσες."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Όριο κωδικών πρόσβασης, κλειδιών πρόσβασης και υπηρεσιών δεδομένων"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Μπορείτε να έχετε ταυτόχρονα ενεργοποιημένους έως και 5 κωδικούς πρόσβασης, κλειδιά πρόσβασης και υπηρεσίες δεδομένων. Για να προσθέσετε μια άλλη υπηρεσία, απενεργοποιήστε μια από τις υπάρχουσες."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Απενεργοποίηση"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Αυτόματη συμπλήρωση"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Επίπεδο καταγραφής"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Ο ήχος από συμβατά μέσα γίνεται πιο καθηλωτικός"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Παρακολούθηση κίνησης κεφαλιού"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ο ήχος αλλάζει καθώς κινείτε το κεφάλι σας προκειμένου να ακούγεται πιο φυσικός"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Τύπος συσκευής ήχου"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Άγνωστο"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Ηχείο"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Ακουστικά"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Κιτ αυτοκινήτου"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Άλλο"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Όριο ρυθμού λήψης δικτύου"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Διαμορφώστε το όριο του ρυθμού εισόδου εύρους ζώνης του δικτύου που εφαρμόζεται σε όλα τα δίκτυα που παρέχουν συνδεσιμότητα στο διαδίκτυο."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Διαμόρφωση ορίου ρυθμού λήψης δικτύου"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Απεγκατάσταση εφαρμογής"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Εφαρμογές που εγκαταστάθηκαν τον τελευταίο # μήνα}other{Εφαρμογές που εγκαταστάθηκαν τους τελευταίους # μήνες}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Εφαρμογές που εγκαταστάθηκαν περισσότερο από # μήνα πριν}other{Εφαρμογές που εγκαταστάθηκαν περισσότερο από # μήνες πριν}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Λόγος διαστάσεων"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Επιλέξτε έναν λόγο διαστάσεων για την προβολή αυτής της εφαρμογής, στην περίπτωση που δεν έχει σχεδιαστεί για να προβάλλεται σωστά στη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Προτεινόμενες εφαρμογές"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Εφαρμογές που έχετε παρακάμψει"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Προεπιλογή εφαρμογής"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Πλήρης οθόνη"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Μισή οθόνη"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Λόγος διαστάσεων συσκευής"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Θα γίνει επανεκκίνηση της εφαρμογής μόλις αλλάξετε τον λόγο διαστάσεων. Μπορεί να χάσετε τις μη αποθηκευμένες αλλαγές."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Αισθητήρας δακτυλικών αποτυπωμάτων"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Ειδοποιήσεις με λάμψη"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Σχετικά με τις ειδοποιήσεις με λάμψη"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Μέτρια"</string>
<string name="contrast_high" msgid="3988567609694797696">"Υψηλή"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Αυτή η εφαρμογή μπορεί να ανοίξει μόνο σε ένα παράθυρο"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Η υπηρεσία είναι ενεργή"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Η υπηρεσία είναι ανενεργή"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Η συντόμευση είναι ανενεργή"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Η λειτουργία είναι ενεργή"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Η λειτουργία είναι ανενεργή"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Η συντόμευση είναι ανενεργή"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Ανενεργή"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Ενεργή"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Ανενεργή"</string>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 7f5af74..fd4e4cd 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"After one minute"</item>
<item msgid="1574040255478150028">"After five minutes"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Turn on adaptive brightness to extend battery life"</item>
+ <item msgid="2256666063790193306">"Reduce screen timeout to extend battery life"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index a5cf434..4ffeee1 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Not specified"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminine"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculine"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remove selected language?}other{Remove selected languages?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text will be displayed in another language."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Can’t remove all languages"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn\'t recognised.\n\nYou can use your watch to unlock this phone when you:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Not now"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continue"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"More"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"How it works"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Your watch must be unlocked, on your wrist and within reach of this phone. You won\'t need to unlock your watch again while it\'s on your wrist."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"When this phone is unlocked, you\'ll get notified on your watch. If it was unlocked when you didn\'t intend to, tap the notification to lock the phone again."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"You\'re in control"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"You can remove your watch from Watch Unlock at any time in Settings"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe up on the lock screen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choose your watch"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Available watches"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirm"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"You\'re ready to go!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Done"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"To use Watch Unlock, your watch must be unlocked, on your wrist, within reach and connected to this phone. If the connection is interrupted, you\'ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, remove the current one first."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint and Face Unlock"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"You may also need to type this passkey on the other device."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirm to pair with the coordinated set"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Allow access to your contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Also allow access to contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info will be used for call announcements and more"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Couldn\'t connect to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Available devices"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sharing Wi‑Fi with this device…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connecting…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Share hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verify that it\'s you"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verify that it\'s you"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Forget"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modify"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Failed to forget network"</string>
<string name="wifi_save" msgid="2312643132472226807">"Save"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Failed to save network"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancel"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"If your preferred frequency isn\'t available, your hotspot may use a different one. Hotspot security settings may change if you change the frequency."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Not available with 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Security settings may change if you change the hotspot’s frequency"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Turning hotspot on…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Turning off hotspot…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering unavailable"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Forgot your password?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Forgot your pattern?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Forgotten your PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use your device pattern to continue"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Enter your device PIN to continue"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Enter your device password to continue"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use your work pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Draw your pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Enter your PIN to continue"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Enter your password to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Draw your work pattern to continue"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Enter your work PIN to continue"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Enter your work password to continue"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"For added security, use your device pattern"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
<string name="settings_button" msgid="2195468788019730377">"Settings"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ease of use, ease of access, assistance, assistive"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Window magnifier, zoom, magnification, low vision, enlarge, make bigger"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"colour contrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"hard of hearing, hearing loss, captions, Teletype, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"three buttons"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delay, dexterity, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Printing"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 print service on}other{# print services on}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> data warning"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> data limit"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data warning/<xliff:g id="ID_2">^2</xliff:g> data limit"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operator data accounting may differ from device accounting"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excludes data used by operator networks"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> used"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Set data warning"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Auto-fill service"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Default auto-fill service"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Passwords"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwords, passkeys and data services"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Passwords, passkeys and data services"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Additional providers"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# passwords}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"auto, fill, autofill, password"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Make sure that you trust this app</b> <br/> <br/> <xliff:g id=app_name example=Google Auto-fill>%1$s</xliff:g> uses what\'s on your screen to determine what can be auto-filled."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Passwords, passkeys and data services"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Passwords, passkeys and data services"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Turn off %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Turn off this service?</b> <br/> <br/> Saved info like passwords, passkeys, payment methods and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey or data service."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Use %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s uses what\'s on your screen to determine what can be auto-filled."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Passwords, passkeys and data services limit"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Passwords, passkeys and data services limit"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Turn off"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Auto-fill"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging level"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Headphones"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Car Kit"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Other"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Network download rate limit"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure the network bandwidth ingress rate limit which is applied to all networks that provide Internet connectivity."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configure network download rate limit"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
<string name="contrast_high" msgid="3988567609694797696">"High"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"This app can only be opened in one window"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Service on"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Service off"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Shortcut off"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index 46c29b1..74fd37a 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"After 1 minute"</item>
<item msgid="1574040255478150028">"After 5 minutes"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Turn on adaptive brightness to extend battery life"</item>
+ <item msgid="2256666063790193306">"Reduce screen timeout to extend battery life"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 4f81447d..82464fd 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Not specified"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminine"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculine"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remove selected language?}other{Remove selected languages?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text will be displayed in another language."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Can’t remove all languages"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn’t recognized.\n\nYou can use your watch to unlock this phone when you:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Not now"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continue"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"More"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"How it works"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Your watch must be unlocked, on your wrist, and within reach of this phone. You won’t need to unlock your watch again while it’s on your wrist."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"When this phone is unlocked, you’ll get notified on your watch. If it was unlocked when you didn’t intend to, tap the notification to lock the phone again."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"You’re in control"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"You can remove your watch from Watch Unlock at any time in Settings"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe up on the lock screen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choose your watch"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Available watches"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirm"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"You’re all set!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Done"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"To use Watch Unlock, your watch must be unlocked, on your wrist, within reach, and connected to this phone. If the connection is interrupted, you’ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, first remove the current one."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint & Face Unlock"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"You may also need to type this passkey on the other device."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirm to pair with the coordinated set"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Allow access to your contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Also allow access to contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info will be used for call announcements and more"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Couldn’t connect to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Available devices"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sharing Wi‑Fi with this device…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connecting…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Share hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verify that it\'s you"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verify it\'s you"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Forget"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modify"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Failed to forget network"</string>
<string name="wifi_save" msgid="2312643132472226807">"Save"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Failed to save network"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancel"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"If your preferred frequency isn\'t available, your hotspot may use a different one. Hotspot security settings may change if you change the frequency."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Not available with 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Security settings may change if you change the hotspot’s frequency"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Turning hotspot on…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Turning off hotspot…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering unavailable"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Forgot your password?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Forgot your pattern?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Forgot your PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use your device pattern to continue"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Enter your device PIN to continue"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Enter your device password to continue"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use your work pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Draw your pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Enter your PIN to continue"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Enter your password to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Draw your work pattern to continue"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Enter your work PIN to continue"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Enter your work password to continue"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"For added security, use your device pattern"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
<string name="settings_button" msgid="2195468788019730377">"Settings"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ease of use, ease of access, assistance, assistive"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Window Magnifier, Zoom, Magnification, Low vision, Enlarge, make bigger"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"color contrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"hard of hearing, hearing loss, captions, Teletype, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"three buttons"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delay, dexterity, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Printing"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 print service on}other{# print services on}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> data warning"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> data limit"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data warning / <xliff:g id="ID_2">^2</xliff:g> data limit"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Carrier data accounting may differ from device accounting"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excludes data used by carrier networks"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> used"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Set data warning"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Autofill service"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Default autofill service"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Passwords"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwords, passkeys and data services"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Passwords, passkeys, and data services"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Additional providers"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# passwords}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"auto, fill, autofill, password"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Make sure you trust this app</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> uses what\'s on your screen to determine what can be autofilled."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Passwords, passkeys and data services"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Passwords, passkeys, and data services"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Turn off %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Turn off this service?</b> <br/> <br/> Saved info like passwords, passkeys, payment methods, and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey, or data service."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Use %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s uses what\'s on your screen to determine what can be autofilled."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Passwords, passkeys and data services limit"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"You can have up to 5 passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Passwords, passkeys, and data services limit"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"You can have up to 5 passwords, passkeys, and data services active at the same time. Turn off a service to add more."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Turn off"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autofill"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging level"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Headphones"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Car Kit"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Other"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Network download rate limit"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure the network bandwidth ingress rate limit which is applied to all networks that provide internet connectivity."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configure network download rate limit"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
<string name="contrast_high" msgid="3988567609694797696">"High"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"This app can only be opened in 1 window"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Service on"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Service off"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Shortcut off"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 7f5af74..fd4e4cd 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"After one minute"</item>
<item msgid="1574040255478150028">"After five minutes"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Turn on adaptive brightness to extend battery life"</item>
+ <item msgid="2256666063790193306">"Reduce screen timeout to extend battery life"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 6ec1b0c..0fdca12 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Not specified"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminine"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculine"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remove selected language?}other{Remove selected languages?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text will be displayed in another language."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Can’t remove all languages"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn\'t recognised.\n\nYou can use your watch to unlock this phone when you:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Not now"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continue"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"More"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"How it works"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Your watch must be unlocked, on your wrist and within reach of this phone. You won\'t need to unlock your watch again while it\'s on your wrist."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"When this phone is unlocked, you\'ll get notified on your watch. If it was unlocked when you didn\'t intend to, tap the notification to lock the phone again."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"You\'re in control"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"You can remove your watch from Watch Unlock at any time in Settings"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe up on the lock screen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choose your watch"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Available watches"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirm"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"You\'re ready to go!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Done"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"To use Watch Unlock, your watch must be unlocked, on your wrist, within reach and connected to this phone. If the connection is interrupted, you\'ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, remove the current one first."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint and Face Unlock"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"You may also need to type this passkey on the other device."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirm to pair with the coordinated set"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Allow access to your contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Also allow access to contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info will be used for call announcements and more"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Couldn\'t connect to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Available devices"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sharing Wi‑Fi with this device…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connecting…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Share hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verify that it\'s you"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verify that it\'s you"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Forget"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modify"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Failed to forget network"</string>
<string name="wifi_save" msgid="2312643132472226807">"Save"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Failed to save network"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancel"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"If your preferred frequency isn\'t available, your hotspot may use a different one. Hotspot security settings may change if you change the frequency."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Not available with 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Security settings may change if you change the hotspot’s frequency"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Turning hotspot on…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Turning off hotspot…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering unavailable"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Forgot your password?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Forgot your pattern?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Forgotten your PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use your device pattern to continue"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Enter your device PIN to continue"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Enter your device password to continue"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use your work pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Draw your pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Enter your PIN to continue"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Enter your password to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Draw your work pattern to continue"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Enter your work PIN to continue"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Enter your work password to continue"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"For added security, use your device pattern"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
<string name="settings_button" msgid="2195468788019730377">"Settings"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ease of use, ease of access, assistance, assistive"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Window magnifier, zoom, magnification, low vision, enlarge, make bigger"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"colour contrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"hard of hearing, hearing loss, captions, Teletype, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"three buttons"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delay, dexterity, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Printing"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 print service on}other{# print services on}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> data warning"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> data limit"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data warning/<xliff:g id="ID_2">^2</xliff:g> data limit"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operator data accounting may differ from device accounting"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excludes data used by operator networks"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> used"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Set data warning"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Auto-fill service"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Default auto-fill service"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Passwords"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwords, passkeys and data services"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Passwords, passkeys and data services"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Additional providers"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# passwords}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"auto, fill, autofill, password"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Make sure that you trust this app</b> <br/> <br/> <xliff:g id=app_name example=Google Auto-fill>%1$s</xliff:g> uses what\'s on your screen to determine what can be auto-filled."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Passwords, passkeys and data services"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Passwords, passkeys and data services"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Turn off %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Turn off this service?</b> <br/> <br/> Saved info like passwords, passkeys, payment methods and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey or data service."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Use %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s uses what\'s on your screen to determine what can be auto-filled."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Passwords, passkeys and data services limit"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Passwords, passkeys and data services limit"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Turn off"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Auto-fill"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging level"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Headphones"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Car Kit"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Other"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Network download rate limit"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure the network bandwidth ingress rate limit which is applied to all networks that provide Internet connectivity."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configure network download rate limit"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
<string name="contrast_high" msgid="3988567609694797696">"High"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"This app can only be opened in one window"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Service on"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Service off"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Shortcut off"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 7f5af74..fd4e4cd 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"After one minute"</item>
<item msgid="1574040255478150028">"After five minutes"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Turn on adaptive brightness to extend battery life"</item>
+ <item msgid="2256666063790193306">"Reduce screen timeout to extend battery life"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 3868555..e0e1d6f 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Not specified"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminine"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculine"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remove selected language?}other{Remove selected languages?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text will be displayed in another language."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Can’t remove all languages"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn\'t recognised.\n\nYou can use your watch to unlock this phone when you:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Not now"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continue"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"More"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"How it works"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Your watch must be unlocked, on your wrist and within reach of this phone. You won\'t need to unlock your watch again while it\'s on your wrist."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"When this phone is unlocked, you\'ll get notified on your watch. If it was unlocked when you didn\'t intend to, tap the notification to lock the phone again."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"You\'re in control"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"You can remove your watch from Watch Unlock at any time in Settings"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe up on the lock screen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choose your watch"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Available watches"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirm"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"You\'re ready to go!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Done"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"To use Watch Unlock, your watch must be unlocked, on your wrist, within reach and connected to this phone. If the connection is interrupted, you\'ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, remove the current one first."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint and Face Unlock"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face and Fingerprint Unlock for work"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"You may also need to type this passkey on the other device."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirm to pair with the coordinated set"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Allow access to your contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Also allow access to contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info will be used for call announcements and more"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Couldn\'t connect to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Available devices"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sharing Wi‑Fi with this device…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connecting…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Share hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verify that it\'s you"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verify that it\'s you"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Forget"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modify"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Failed to forget network"</string>
<string name="wifi_save" msgid="2312643132472226807">"Save"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Failed to save network"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancel"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"If your preferred frequency isn\'t available, your hotspot may use a different one. Hotspot security settings may change if you change the frequency."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Not available with 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Security settings may change if you change the hotspot’s frequency"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Turning hotspot on…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Turning off hotspot…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering unavailable"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Forgot your password?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Forgot your pattern?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Forgotten your PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use your device pattern to continue"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Enter your device PIN to continue"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Enter your device password to continue"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use your work pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Draw your pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Enter your PIN to continue"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Enter your password to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Draw your work pattern to continue"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Enter your work PIN to continue"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Enter your work password to continue"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"For added security, use your device pattern"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
<string name="settings_button" msgid="2195468788019730377">"Settings"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ease of use, ease of access, assistance, assistive"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Window magnifier, zoom, magnification, low vision, enlarge, make bigger"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"colour contrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"hard of hearing, hearing loss, captions, Teletype, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"three buttons"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delay, dexterity, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Printing"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 print service on}other{# print services on}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> data warning"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> data limit"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data warning/<xliff:g id="ID_2">^2</xliff:g> data limit"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operator data accounting may differ from device accounting"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excludes data used by operator networks"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> used"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Set data warning"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Auto-fill service"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Default auto-fill service"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Passwords"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwords, passkeys and data services"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Passwords, passkeys and data services"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Additional providers"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# passwords}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"auto, fill, autofill, password"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Make sure that you trust this app</b> <br/> <br/> <xliff:g id=app_name example=Google Auto-fill>%1$s</xliff:g> uses what\'s on your screen to determine what can be auto-filled."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Passwords, passkeys and data services"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Passwords, passkeys and data services"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Turn off %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Turn off this service?</b> <br/> <br/> Saved info like passwords, passkeys, payment methods and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey or data service."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Use %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s uses what\'s on your screen to determine what can be auto-filled."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Passwords, passkeys and data services limit"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Passwords, passkeys and data services limit"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"You can have up to five passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Turn off"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Auto-fill"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging level"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Headphones"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Car Kit"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Other"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Network download rate limit"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure the network bandwidth ingress rate limit which is applied to all networks that provide Internet connectivity."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configure network download rate limit"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
<string name="contrast_high" msgid="3988567609694797696">"High"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"This app can only be opened in one window"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Service on"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Service off"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Shortcut off"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index d7800e6..1447251 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"After 1 minute"</item>
<item msgid="1574040255478150028">"After 5 minutes"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Turn on adaptive brightness to extend battery life"</item>
+ <item msgid="2256666063790193306">"Reduce screen timeout to extend battery life"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 7382e08..eaaf324 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Not specified"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminine"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculine"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remove selected language?}other{Remove selected languages?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text will be displayed in another language."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Can’t remove all languages"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Face and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Face, fingerprint, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Face, fingerprints, and <xliff:g id="WATCH">%s</xliff:g> added"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Set up your watch"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Watch Unlock is another convenient way to unlock this phone, for example, when your fingers are wet or face isn’t recognized.\n\nYou can use your watch to unlock this phone when you:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Not now"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continue"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"More"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"How it works"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Your watch must be unlocked, on your wrist, and within reach of this phone. You won’t need to unlock your watch again while it’s on your wrist."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"When this phone is unlocked, you’ll get notified on your watch. If it was unlocked when you didn’t intend to, tap the notification to lock the phone again."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"You’re in control"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"You can remove your watch from Watch Unlock at any time in Settings"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe up on the lock screen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choose your watch"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Available watches"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancel"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirm"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"You’re all set!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"You can now use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Done"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"You can use your watch to unlock this phone when you swipe up on the lock screen or tap a notification"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"To use Watch Unlock, your watch must be unlocked, on your wrist, within reach, and connected to this phone. If the connection is interrupted, you’ll need to unlock the phone before you can use Watch Unlock.\n\nKeep in mind:\nYou can only have one watch set up at a time. To add another watch, first remove the current one."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Learn more about Watch Unlock"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Add watch"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remove watch"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingerprint & Face Unlock"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Face & Fingerprint Unlock for work"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Setup needed"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"You may also need to type this passkey on the other device."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirm to pair with the coordinated set"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Allow access to your contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Also allow access to contacts and call history"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info will be used for call announcements and more"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Couldn’t connect to <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Available devices"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sharing Wi‑Fi with this device…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connecting…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Share hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verify that it\'s you"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verify it\'s you"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Network not in range"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Forget"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modify"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Failed to forget network"</string>
<string name="wifi_save" msgid="2312643132472226807">"Save"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Failed to save network"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancel"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"If your preferred frequency isn\'t available, your hotspot may use a different one. Hotspot security settings may change if you change the frequency."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Not available with 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Security settings may change if you change the hotspot’s frequency"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Turning hotspot on…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Turning off hotspot…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering unavailable"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Forgot your password?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Forgot your pattern?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Forgot your PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use your device pattern to continue"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Enter your device PIN to continue"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Enter your device password to continue"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use your work pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Draw your pattern to continue"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Enter your PIN to continue"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Enter your password to continue"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Draw your work pattern to continue"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Enter your work PIN to continue"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Enter your work password to continue"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"For added security, use your device pattern"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No description provided."</string>
<string name="settings_button" msgid="2195468788019730377">"Settings"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"light sensitivity, photophobia, dark theme, migraine, headache, reading mode, night mode, reduce brightness, white point"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ease of use, ease of access, assistance, assistive"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Window Magnifier, Zoom, Magnification, Low vision, Enlarge, make bigger"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"color contrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"hard of hearing, hearing loss, captions, Teletype, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"three buttons"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delay, dexterity, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Printing"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 print service on}other{# print services on}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> data warning"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> data limit"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> data warning / <xliff:g id="ID_2">^2</xliff:g> data limit"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Carrier data accounting may differ from device accounting"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excludes data used by carrier networks"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> used"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Set data warning"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Autofill service"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Default autofill service"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Passwords"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passwords, passkeys and data services"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Passwords, passkeys, and data services"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Additional providers"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# passwords}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"auto, fill, autofill, password"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Make sure you trust this app</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> uses what\'s on your screen to determine what can be autofilled."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> uses what\'s on your screen to determine what can be autofilled. New passwords, passkeys and other info will be saved here from now on."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Passwords, passkeys and data services"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Passwords, passkeys, and data services"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Turn off %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Turn off this service?</b> <br/> <br/> Saved info like passwords, passkeys, payment methods, and other info won\'t be filled in when you sign in. To use your saved info, choose a password, passkey, or data service."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Use %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s uses what\'s on your screen to determine what can be autofilled."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Passwords, passkeys and data services limit"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"You can have up to 5 passwords, passkeys and data services active at the same time. Turn off a service to add more."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Passwords, passkeys, and data services limit"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"You can have up to 5 passwords, passkeys, and data services active at the same time. Turn off a service to add more."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Turn off"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autofill"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging level"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Headphones"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Car Kit"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Other"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Network download rate limit"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure the network bandwidth ingress rate limit which is applied to all networks that provide internet connectivity."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configure network download rate limit"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medium"</string>
<string name="contrast_high" msgid="3988567609694797696">"High"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"This app can only be opened in 1 window"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Service on"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Service off"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Shortcut off"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 8032bde..f847be5 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Después de 1 minuto"</item>
<item msgid="1574040255478150028">"Después de 5 minutos"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Activa el brillo automático para extender la duración de batería"</item>
+ <item msgid="2256666063790193306">"Reduce el tiempo de espera de la pantalla para extender la duración de batería"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 64d5f15..1cfa572 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Sin especificar"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Femenino"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{¿Quitar el idioma seleccionado?}other{¿Quitar los idiomas seleccionados?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Se mostrará el texto en otro idioma."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"No se pueden quitar todos los idiomas"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rostro y <xliff:g id="WATCH">%s</xliff:g> agregados"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rostro, huella dactilar y <xliff:g id="WATCH">%s</xliff:g> agregados"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rostro, huellas dactilares y <xliff:g id="WATCH">%s</xliff:g> agregados"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura el reloj"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Desbloqueo con reloj es otra forma conveniente de desbloquear el teléfono cuando, por ejemplo, tienes los dedos mojados o no se reconoce tu rostro.\n\nPuedes usar el reloj para desbloquear este teléfono en estos casos:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ahora no"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Más"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cómo funciona"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"El reloj debe estar desbloqueado, en tu muñeca y cerca del teléfono. No deberás volver a desbloquear el reloj mientras lo tengas en la muñeca."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Cuando se desbloquee el teléfono, recibirás una notificación en el reloj. Si se desbloqueó, pero no era tu intención hacerlo, presiona la notificación para volver a bloquearlo."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Tú tienes el control"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Puedes quitar el reloj de la función Desbloqueo con reloj en cualquier momento desde Configuración"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Presiona una notificación"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Desliza el dedo hacia arriba en la pantalla de bloqueo"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Elige tu reloj"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relojes disponibles"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Todo listo"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Ahora puedes usar tu reloj para desbloquear este teléfono cuando deslizas el dedo hacia arriba en la pantalla de bloqueo o presionas una notificación"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Listo"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueo del reloj"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Puedes usar tu reloj para desbloquear este teléfono cuando deslizas el dedo hacia arriba en la pantalla de bloqueo o presionas una notificación"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar Desbloqueo con reloj, el reloj debe estar desbloqueado, en tu muñeca, cerca y conectado a este teléfono. Si la conexión se interrumpe, deberás desbloquear el teléfono antes de poder usar Desbloqueo con reloj.\n\nImportante:\nSolo puedes tener un reloj configurado a la vez. Si quieres agregar otro, deberás quitar el actual."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Más información sobre Desbloqueo del reloj"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Agregar reloj"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Quitar reloj"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueo facial y con huella dactilar"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueo facial y con huellas dactilares para el trabajo"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Se requiere configuración"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Puede que también tengas que escribir esta clave de acceso en otro dispositivo."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirma para vincular con el conjunto coordinado"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir el acceso a tus contactos y al historial de llamadas"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"También se permite acceso a los contactos y el historial de llamadas"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"La información se usará para anuncios de llamadas y otras funciones"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"No se pudo establecer conexión con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos disponibles"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartiendo Wi-Fi con este dispositivo…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Compartir hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica tu identidad"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifica tu identidad"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Contraseña de Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Contraseña del hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conectar automáticamente"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Red fuera de alcance"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Olvidar"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"No se pudo borrar la red."</string>
<string name="wifi_save" msgid="2312643132472226807">"Guardar"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"No se pudo guardar la red."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Si tu frecuencia preferida no está disponible, es posible que el hotspot utilice una distinta. Es posible que cambie la configuración de seguridad del hotspot si modificas la frecuencia."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"No disponible con 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Es posible que la configuración de seguridad cambie si cambias la frecuencia del hotspot"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Activando hotspot…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Desactivando hotspot…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Conexión mediante dispositivo móvil no disponible"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"¿Olvidaste la contraseña?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"¿Olvidaste el patrón?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"¿Olvidaste el PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Para continuar, usa el patrón del dispositivo"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Para continuar, ingresa el PIN del dispositivo"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Para continuar, ingresa la contraseña del dispositivo"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Usa tu patrón de trabajo para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Para continuar, ingresa tu patrón"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Para continuar, ingresa tu PIN"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Para continuar, ingresa tu contraseña"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Para continuar, ingresa tu patrón de trabajo"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Para continuar, ingresa tu PIN de trabajo"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Para continuar, ingresa la contraseña de tu perfil de trabajo"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para mayor seguridad, usa el patrón de tu dispositivo"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No se proporcionó ninguna descripción."</string>
<string name="settings_button" msgid="2195468788019730377">"Configuración"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidad a la luz, fotofobia, tema oscuro, migraña, dolor de cabeza, modo de lectura, modo nocturno, disminuir el brillo, punto blanco"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidad de uso, facilidad de acceso, asistencia, asistivo"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"visión, audición, persona ciega, persona sorda, motriz, destreza, asistivo, asistencia, facilidad de uso, facilidad de acceso, mano, ayuda"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Ampliación de ventanas, zoom, ampliación, visión reducida, agrandar, hacer más grande"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Subtítulos, subtítulos opcionales, subtítulos para personas sordas, Transcripción instantánea, persona con hipoacusia, pérdida de la audición, transcripción en tiempo real asistida por computadora, voz a texto, subtítulo"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contraste de color"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"audífonos, persona con hipoacusia, pérdida auditiva, implantes cocleares, dispositivos de amplificación, procesadores de sonido"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motriz, mouse, mouse externo, mouse de cabeza, mouse adaptativo, silla de ruedas, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"audífonos, persona con hipoacusia, pérdida auditiva, implantes cocleares, dispositivos de amplificación, procesadores de sonido, amplificador personal de sonido"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"persona con hipoacusia, pérdida de la audición, subtítulos, Teletipo, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tres botones"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motriz, persona mayor, artritis, LER, accidente cerebrovascular, temblor, esclerosis múltiple, parálisis cerebral, temblores, lesiones por esfuerzo repetitivo, mano"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retraso, destreza, persona mayor"</string>
<string name="print_settings" msgid="8519810615863882491">"Impresión"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desactivado"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 servicio de impresión activado}other{# servicios de impresión activados}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Advertencia de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Límite de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Advertencia de datos: <xliff:g id="ID_1">^1</xliff:g>/Límite de datos: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"El cálculo de datos del proveedor puede diferir del que hace el dispositivo."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Excluye los datos que usan las redes de los proveedores"</string>
<string name="data_used_template" msgid="8229342096562327646">"Datos usados: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Configurar advertencia"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Servicio Autocompletar"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Servicio de autocompletado predeterminado"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Contraseñas"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Servicios de contraseñas, llaves de acceso y datos"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Servicios de contraseñas, llaves de acceso y datos"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Proveedores adicionales"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# contraseña}other{# contraseñas}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automático, completar, autocompletar, contraseña"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automático, rellenar, autocompletar, datos, llave de acceso, contraseña"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Asegúrate de que esta app sea confiable</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> usa el contenido de tu pantalla para determinar qué se puede autocompletar."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>¿Quieres usar <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> usa el contenido de tu pantalla para determinar qué se puede autocompletar. A partir de ahora, las nuevas contraseñas, llaves de acceso y otros datos se guardarán aquí."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Servicios de contraseñas, llaves de acceso y datos"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Servicios de contraseñas, llaves de acceso y datos"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"¿Quieres desactivar %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>¿Quieres desactivar este servicio?</b> <br/> <br/> La información guardada, como contraseñas, llaves de acceso, formas de pago y otros datos, no se rellenará cuando accedas. Para usar la información guardada, elige un servicio de contraseña, llave de acceso o datos."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"¿Usar %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa el contenido de tu pantalla para determinar qué se puede autocompletar."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Límite de servicios de contraseñas, llaves de acceso y datos"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Puedes tener hasta 5 servicios de contraseñas, llaves de acceso y datos activos al mismo tiempo. Desactiva un servicio para agregar otros."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Límite de servicios de contraseñas, llaves de acceso y datos"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Puedes tener hasta 5 servicios de contraseñas, llaves de acceso y datos activos al mismo tiempo. Desactiva un servicio para agregar otros."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desactivar"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autocompletar"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivel de registro"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"El audio de contenido multimedia compatible se hace más envolvente"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguimiento de cabeza"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"El audio cambia a medida que mueves la cabeza para sonar más natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconocido"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Bocina"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Auriculares"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit para autos"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Otro"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Límite de tasa de descarga de la red"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura el límite de tasa de entrada de ancho de banda de la red, que se aplica a todas las redes que brindan conexión a Internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura el límite de tasa de descarga de la red"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
<string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esta app solo puede estar abierta en 1 ventana"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Servicio activado"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Servicio desactivado"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Acceso directo desactivado"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Función activada"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Función desactivada"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Acceso directo desactivado"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desactivado"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Activada"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Desactivada"</string>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index caf220d..d2931cf 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Tras 1 minuto"</item>
<item msgid="1574040255478150028">"Tras 5 minutos"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Activar brillo adaptativo para prolongar la duración de la batería"</item>
+ <item msgid="2256666063790193306">"Reducir tiempo de espera de la pantalla para prolongar la duración de la batería"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e0ba1cd..1315579 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Sin especificar"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Femenino"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{¿Eliminar idioma seleccionado?}other{¿Eliminar idiomas seleccionados?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"El texto se mostrará en otro idioma."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"No puedes quitar todos los idiomas"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Cara y <xliff:g id="WATCH">%s</xliff:g> añadidos"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Cara, huella digital y <xliff:g id="WATCH">%s</xliff:g> añadidos"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Cara, huellas digitales y <xliff:g id="WATCH">%s</xliff:g> añadidos"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar un reloj"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Desbloqueo con reloj es otra forma útil de desbloquear el teléfono, por ejemplo, cuando tus dedos están húmedos o no se reconoce tu cara.\n\nPuedes usar tu reloj para desbloquear este teléfono al realizar estas acciones:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ahora no"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Más"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cómo funciona"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Tu reloj debe estar desbloqueado, en tu muñeca y dentro del alcance de este teléfono. No tendrás que volver a desbloquear el reloj mientras esté en tu muñeca."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Cuando el teléfono esté desbloqueado, recibirás una notificación en tu reloj. Si desbloqueas el teléfono sin querer, toca la notificación para volver a bloquearlo."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Tú tienes el control"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Puedes quitar tu smartwatch de Desbloqueo con reloj en cualquier momento desde Ajustes"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toca una notificación"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Desliza hacia arriba en la pantalla de bloqueo"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Elige tu reloj"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relojes disponibles"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"¡Listo!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Ahora puedes usar tu reloj para desbloquear este teléfono cuando deslices hacia arriba en la pantalla de bloqueo o toques una notificación"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Hecho"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueo con Reloj"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Puedes usar tu reloj para desbloquear este teléfono cuando deslices hacia arriba en la pantalla de bloqueo o toques una notificación"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar Desbloqueo con reloj, tu reloj debe estar desbloqueado, en tu muñeca, dentro del alcance y conectado a este teléfono. Si se interrumpe la conexión, tendrás que desbloquear el teléfono para usar Desbloqueo con reloj.\n\nNota:\nNo puedes tener más de un reloj configurado a la vez. Para añadir otro reloj, primero quita el anterior."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Más información sobre Desbloqueo con reloj"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Añadir reloj"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Quitar reloj"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Desbloqueo facial y con huella digital"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueo facial y con huella digital para el trabajo"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Hay que configurarlo"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Es posible que tengas que introducir la llave de acceso en el otro dispositivo."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirma para emparejar con el conjunto coordinado"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir acceso a tus contactos y al historial de llamadas"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"También permite acceder a los contactos y al historial de llamadas"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"La información se utilizará para avisos de llamada y más"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"No se ha podido establecer conexión con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos disponibles"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartiendo Wi‑Fi con este dispositivo…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Comparte el punto de acceso"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica que eres tú"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifica que eres tú"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Contraseña de la red Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Contraseña del punto de acceso: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conexión automática"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"La red está fuera de rango"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Olvidar"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Error al olvidar la red"</string>
<string name="wifi_save" msgid="2312643132472226807">"Guardar"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Error al guardar la red"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Si tu frecuencia preferida no está disponible, tu punto de acceso puede usar una diferente. La configuración de seguridad del punto de acceso puede cambiar si modificas la frecuencia."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"No disponible con 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"La configuración de seguridad puede cambiar si modificas la frecuencia del punto de acceso"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Activando Compartir Internet…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Desactivando Compartir Internet…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Conexión compartida no disponible"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"¿Has olvidado la contraseña?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"¿Has olvidado el patrón?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"¿Has olvidado el PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Utiliza el patrón del dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Introduce el PIN del dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Introduce la contraseña del dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utiliza tu patrón del trabajo para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dibuja tu patrón para continuar"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Introduce tu PIN para continuar"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Introduce tu contraseña para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dibuja tu patrón de trabajo para continuar"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Introduce tu PIN de trabajo para continuar"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Introduce la contraseña de tu perfil de trabajo para continuar"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para mayor seguridad, utiliza el patrón del dispositivo"</string>
@@ -1702,7 +1736,7 @@
<string name="trackpad_bottom_right_tap_summary" msgid="8734094086900680674">"Toca la esquina inferior derecha del panel táctil para ver más"</string>
<string name="trackpad_pointer_speed" msgid="7786579408631352625">"Velocidad del puntero"</string>
<string name="trackpad_touch_gesture" msgid="8641725062131922497">"Consultar gestos del panel táctil"</string>
- <string name="gesture_title_go_home" msgid="3682238648647225933">"Ir a Inicio"</string>
+ <string name="gesture_title_go_home" msgid="3682238648647225933">"Ir a inicio"</string>
<string name="gesture_summary_go_home" msgid="6409031586904205741">"Desliza tres dedos hacia arriba en el panel táctil"</string>
<string name="gesture_title_go_back" msgid="6619462058488419802">"Ir atrás"</string>
<string name="gesture_summary_go_back" msgid="4981604277892236888">"Desliza tres dedos desde la izquierda o la derecha"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"No se ha especificado ninguna descripción."</string>
<string name="settings_button" msgid="2195468788019730377">"Ajustes"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"fotosensibilidad, fotofobia, tema oscuro, migraña, dolor de cabeza, modo lectura, modo noche, reducir brillo, punto blanco"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"facilidad de uso, facilidad de acceso, asistencia, ayuda"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"visión, audición, invidente, sordo, motricidad, destreza, asistencia, facilidad de uso, facilidad de acceso, mano, ayuda"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"lupa, zoom, ampliación, baja visión, ampliar, agrandar, hacer más grande"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"subtítulos, Transcripción instantánea, deficiencia auditiva, pérdida de audición, transcripción en tiempo real, transcripción de voz"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contraste de color"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"habilidades motoras, motricidad, ratón"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"audífonos, deficiencia auditiva, pérdida de audición, implantes cocleares, dispositivos de amplificación de sonido, procesadores de sonido"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motricidad, ratón, ratón externo, ratón de cabeza, ratón adaptable, silla de ruedas, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"audífonos, deficiencia auditiva, pérdida de audición, implantes cocleares, dispositivos de amplificación de sonido"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"deficiencia auditiva, pérdida de audición, subtítulos, teletipo"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tres botones"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motricidad, persona mayor, artritis, rsi, accidente cerebrovascular, temblor, esclerosis múltiple, parálisis cerebral, temblores, lesión por esfuerzo repetitivo, mano"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retraso, destreza, persona mayor"</string>
<string name="print_settings" msgid="8519810615863882491">"Impresión"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desactivado"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 servicio de impresión activo}other{# servicios de impresión activos}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Advertencia de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Límite de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Advertencia de datos: <xliff:g id="ID_1">^1</xliff:g> / Límite de datos: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"El cálculo del uso de datos del operador puede ser diferente al calculado por el dispositivo."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"No se incluyen datos usados por redes de operadores"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> usados"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Establecer advertencia de datos"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Servicio de autocompletado"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Servicio de autocompletado predeterminado"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Contraseñas"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Servicios de contraseñas, llaves de acceso y datos"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Contraseñas, llaves de acceso y servicios de datos"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Proveedores adicionales"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# contraseña}other{# contraseñas}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automático, completar, autocompletar, contraseña"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automático, completar, autocompletar, datos, llave de acceso, contraseña"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Asegúrate de que confías en esta aplicación</b> <br/> <br/> <xliff:g id=app_name example=Autocompletar de Google>%1$s</xliff:g> utiliza el contenido que se muestra en la pantalla para determinar el texto que se puede autocompletar."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>¿Usar <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> usa el contenido que hay en tu pantalla para determinar qué se puede autocompletar. Las nuevas contraseñas, llaves de acceso y otra información se guardarán aquí a partir de ahora."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Servicios de contraseñas, llaves de acceso y datos"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Contraseñas, llaves de acceso y servicios de datos"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"¿Desactivar %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>¿Desactivar este servicio?</b> <br/> <br/> La información guardada, como contraseñas, llaves de acceso, métodos de pago y otros datos no se rellenarán cuando inicies sesión. Para usar tu información guardada, elige un servicio de contraseñas, llaves de acceso o datos."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"¿Usar %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa los elementos en pantalla para determinar lo que se puede autocompletar."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Límite de servicios de contraseñas, llaves de acceso y datos"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Puedes tener hasta 5 servicios de contraseñas, llaves de acceso y datos activos al mismo tiempo. Desactiva un servicio para añadir más."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Límite de contraseñas, llaves de acceso y servicios de datos"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Puedes tener hasta 5 contraseñas, llaves de acceso y servicios de datos activos al mismo tiempo. Desactiva un servicio para añadir más."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desactivar"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autocompletar"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivel de registro"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"El audio del contenido multimedia compatible se hace más inmersivo"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguimiento de cabeza"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"El audio cambia a medida que mueves la cabeza para sonar más natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconocido"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altavoz"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Auriculares"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Sistema de manos libres"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Otros"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Límite de frecuencia de descarga de la red"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura el límite de frecuencia de entrada del ancho de banda de la red, que se aplica a todas las redes que ofrecen conexión a Internet"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura el límite de frecuencia de descarga de la red"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
<string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esta aplicación solo puede abrirse en una ventana"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Servicio activado"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Servicio desactivado"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Acceso directo desactivado"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Activada"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desactivada"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desactivado"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desactivado"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Activado"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Desactivado"</string>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index bdc9736..3ed87b7 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 minuti pärast"</item>
<item msgid="1574040255478150028">"5 minuti pärast"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Lülitage aku tööea pikendamiseks sisse kohanduv eredus"</item>
+ <item msgid="2256666063790193306">"Vähendage aku tööea pikendamiseks ekraani ajalõppu"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index e34ddec..1100b0a 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Pole määratud"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Naissoost"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Meessoost"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Kas eemaldada valitud keel?}other{Kas eemaldada valitud keeled?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst kuvatakse teises keeles."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Kõiki keeli ei saa eemaldada"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Nägu ja kell <xliff:g id="WATCH">%s</xliff:g> on lisatud"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Nägu, sõrmejälg ja kell <xliff:g id="WATCH">%s</xliff:g> on lisatud"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Nägu, sõrmejäljed ja kell <xliff:g id="WATCH">%s</xliff:g> on lisatud"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Kella seadistamine"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Kellaga avamine on veel üks mugav viis selle telefoni avamiseks, näiteks kui teie sõrmed on märjad või nägu ei tuvastata.\n\nSaate kasutada oma kella telefoni avamiseks järgmistel juhtudel."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Mitte praegu"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Jätka"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Rohkem"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Tööpõhimõtted"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Teie kell peab olema lukustamata, randmel ja telefoni lähedal. Seni, kuni kell on teie randmel, ei pea te seda uuesti avama."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kui telefon avatakse, saate märguande oma kellas. Kui see avati kogemata, puudutage telefoni uuesti lukustamiseks märguannet."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kontroll on teie käes"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Võite oma kella funktsioonist Kellaga avamine igal ajal seadete kaudu eemaldada"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Puudutage märguannet"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Pühkige lukustuskuval üles"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Kella valimine"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Saadaolevad kellad"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Tühista"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Kinnita"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Valmis!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Saate nüüd kasutada oma kella selle telefoni avamiseks, kui pühite lukustuskuval üles või puudutate märguannet"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Valmis"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Kellaga avamine"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Saate kasutada oma kella selle telefoni avamiseks, kui pühite lukustuskuval üles või puudutate märguannet"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Kellaga avamise kasutamiseks peab teie kell olema lukustamata, randmel, käeulatuses ja ühendatud selle telefoniga. Kui ühendus katkeb, peate enne kellaga avamise kasutamist telefoni avama.\n\nPidage meeles.\nKorraga saab seadistada ainult ühe kella. Teise kella lisamiseks eemaldage esmalt praegune kell."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Lisateave kellaga avamise kohta"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Lisa kell"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Kella eemaldamine"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Sõrmejälje ja Näoga avamine"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Näo ja sõrmejäljega avamine töö jaoks"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Seadistamine on vajalik"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Võib-olla peate selle parooli sisestama ka teise seadmesse."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Kinnitage koordineeritud komplektiga sidumiseks"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Luba juurdepääs kontaktidele ja kõneajaloole"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Lubage juurdepääs ka kontaktidele ja kõneajaloole"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Teavet kasutatakse kõne teadaannete ja muu jaoks"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ei saanud ühendust."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Saadaval seadmed"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"WiFi-võrgu jagamine selle seadmega …"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Ühendamine …"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Kuumkoha jagamine"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Kinnitage, et see olete teie"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Kinnitage oma isik"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"WiFi-võrgu parool: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Kuumkoha parool: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automaatne ühendamine"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Te ei ole võrgu levialas"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Unusta"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Muuda"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Võrgu unustamine ebaõnnestus"</string>
<string name="wifi_save" msgid="2312643132472226807">"Salvesta"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Võrgu säilitamine ebaõnnestus"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Tühista"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Kui teie eelistatud sagedus pole saadaval, võib kuumkoht kasutada muud sagedust. Sageduse muutmisel võivad muutuda kuumkoha turvaseaded."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Pole saadaval sagedusel 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Kuumkoha sageduse muutmise korral võivad muutuda turvaseaded."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Kuumkoha sisselülitamine ..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Kuumkoha väljalülitamine ..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Jagamine pole saadaval"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Kas unustasite parooli?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Kas unustasite mustri?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Kas unustasite PIN-koodi?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Jätkamiseks kasutage seadme mustrit"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Jätkamiseks sisestage seadme PIN-kood"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Jätkamiseks sisestage seadme parool"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Jätkamiseks kasutage oma tööprofiili mustrit"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Jätkamiseks joonistage oma muster"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Jätkamiseks sisestage oma PIN-kood"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Jätkamiseks sisestage oma parool"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Jätkamiseks joonistage oma tööprofiili muster"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Jätkamiseks sisestage oma tööprofiili PIN-kood"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Jätkamiseks sisestage oma tööprofiili parool"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Lisaturvalisuse jaoks kasutage seadme mustrit"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Kirjeldust ei ole sisestatud."</string>
<string name="settings_button" msgid="2195468788019730377">"Seaded"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"valgustundlikkus, fotofoobia, tume teema, migreen, peavalu, lugemisrežiim, öörežiim, ereduse vähendamine, valge punkt"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Lihtne kasutada, lihtne juurdepääs, abi, abistav"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"nägemine, kuulmine, pime, kurt, kurtus, motoorika, peenmotoorika, abi, abistav, kasutusmugavus, lihtne juurdepääs, käsi"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Akna suurendaja, suum, suurendamine, halb nähtavus, suurendus, suuremaks muutmine"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Subtiitrid, reaalajas transkriptsioon, kuulmislangus, kuulmiskadu, CART, kõnesüntees"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"värvikontrastsus"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motoorika, hiir"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"kuuldeaparaadid, kuulmislangus, kuulmiskadu, kõrvaimplantaadid, võimendusseadmed, heliprotsessorid"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motoorika, hiir, väline hiir, peahiir, adaptiivne hiir, ratastool, juhtkang"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"kuuldeaparaadid, kuulmislangus, kuulmiskadu, kõrvaimplantaadid, võimendusseadmed, heliprotsessorid, isiklik helivõimendi, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"kuulmislangus, kuulmiskadu, subtiitrid, teletaip, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"kolm nuppu"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"peenmotoorika, motoorika, eakas, artriit, liigesepõletik, ülekoormusvigastused, ülekoormushaigus, treemor, insult, rabandus, multiipelskleroos, hulgiskleroos, hulgikoldekõvastumus, ajuhalvatus, tserebraalparalüüs, värisemine, värin, värinad, käsi"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"viide, peenmotoorika, eakas"</string>
<string name="print_settings" msgid="8519810615863882491">"Printimine"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Väljas"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 printimisteenus on sees}other{# printimisteenust on sees}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> – andmemahu hoiatus"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> – andmemahu piirang"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> – andmemahu hoiatus / <xliff:g id="ID_2">^2</xliff:g> – andmemahu piirang"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operaatori andmemahuarvestus võib erineda seadme andmemahuarvestusest"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ei sisalda operaatorite võrkude kasutatavat andmemahtu"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> on kasutatud"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Andmekasutuse hoiatuse määramine"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Automaattäite teenus"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Automaattäite vaiketeenus"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Paroolid"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Paroolid, pääsuvõtmed ja andmesideteenused"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Paroolid, pääsuvõtmed ja andmesideteenused"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Lisapakkujad"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# parool}other{# parooli}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automaatne, täitmine, automaattäide, parool"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automaatne, täitmine, automaattäide, andmed, pääsuvõti, parool"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Veenduge, et rakendus oleks usaldusväärne</b> <br/> <br/> <xliff:g id=app_name example=Google\'i automaatne täitmine>%1$s</xliff:g> kasutab automaatse täitmise sisestuse määramiseks ekraanil kuvatut."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Kas kasutada rakendust <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> kasutab teie ekraanil olevat sisu, et määratleda, mida saab automaatselt täita. Uued paroolid, pääsuvõtmed ja muu teave salvestatakse edaspidi siia."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Paroolid, pääsuvõtmed ja andmesideteenused"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Paroolid, pääsuvõtmed ja andmesideteenused"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Kas lülitada %1$s välja?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Kas lülitada see teenus välja?</b> <br/> <br/> Salvestatud teavet, nagu paroolid, pääsuvõtmed, makseviisid ja muud teavet sisselogimisel ei täideta. Salvestatud teabe kasutamiseks valige parool, pääsuvõti või andmeteenus."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Kas kasutada teenust %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s kasutab ekraanil kuvatut, et otsustada, mida saab automaatselt täita."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Paroolide, pääsuvõtmete ja andmesideteenuste piirang"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Korraga saavad aktiivsed olla kuni 5 parooli, pääsuvõtit ja andmesideteenust. Nende lisamiseks lülitage mõni olemasolev välja."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Paroolide, pääsuvõtmete ja andmesideteenuste piirang"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Korraga saavad aktiivsed olla kuni 5 parooli, pääsuvõtit ja andmesideteenust. Teenuse lisamiseks lülitage mõni olemasolev välja."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Lülita välja"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automaattäide"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Logimistase"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Ühilduva meedia heli muutub ruumilisemaks"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pea jälgimine"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Heli muutub pead liigutades, et kõla oleks loomulikum"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Heliseadme tüüp"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Teadmata"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Kõlar"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Kõrvaklapid"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Autokomplekt"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Muu"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Võrgu allalaadimiskiiruse limiit"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Seadistage võrgu ribalaiuse kasutusmäära limiit, mis rakendatakse kõikidele võrkudele, mis võrguühendust pakuvad."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Seadistage võrgu allalaadimiskiiruse limiit"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Desinstalli rakendus"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Rakendused, mis installiti viimase # kuu jooksul}other{Rakendused, mis installiti viimase # kuu jooksul}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Rakendused, mis installiti rohkem kui # kuu tagasi}other{Rakendused, mis installiti rohkem kui # kuud tagasi}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Kuvasuhe"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Kui rakendus ei ole loodud teie seadme <xliff:g id="DEVICE_NAME">%1$s</xliff:g> jaoks sobima, siis valige rakenduse vaatamiseks kuvasuhe"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Soovitatud rakendused"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Rakendused, mille olete alistanud"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Rakenduse vaikeseade"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Täisekraan"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Pool ekraani"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Seadme kuvasuhe"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"See rakendus lähtestatakse, kui muudate kuvasuhet. Salvestamata muudatused võivad kaduma minna."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sõrmejäljeandur"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Vilkuvad märguanded"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Teave vilkuvate märguannete kohta"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Keskmine"</string>
<string name="contrast_high" msgid="3988567609694797696">"Kõrge"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Selle rakenduse saab avada ainult ühes aknas"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Teenus sees"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Teenus väljas"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Otsetee väljas"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Sees"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Väljas"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Väljas"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Väljas"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Sees"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Väljas"</string>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index ae23035..a6976a8 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Minutu bat igarotakoan"</item>
<item msgid="1574040255478150028">"Bost minutu igarotakoan"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Aktibatu Distira egokitua bateriaren iraupena luzatzeko"</item>
+ <item msgid="2256666063790193306">"Murriztu pantailaren denbora-muga bateriaren iraupena luzatzeko"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 9b41756..6a94c25 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -193,12 +193,14 @@
<string name="title_regional_pref_footer" msgid="7450438024324794380">"Aplikazio batek lurraldeko hobespenak onartzen ez baditu, lurraldeko ezarpen lehenetsiak erabiliko ditu."</string>
<string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Lortu hizkuntza-hobespenei buruzko informazio gehiago."</string>
<string name="category_title_terms_of_address" msgid="4309422700380895278">"Hobespen gehigarriak"</string>
- <string name="terms_of_address_title" msgid="4064593634733842458">"Trataera"</string>
+ <string name="terms_of_address_title" msgid="4064593634733842458">"Zuri zuzentzeko modua"</string>
<string name="terms_of_address_summary" msgid="6136134336560679144">"Ezarri jaso nahi duzun trataera"</string>
- <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Erabiltzen dituzun aplikazioek ezarri duzun trataera erabil dezakete zuregana zuzentzeko modua pertsonalizatzeko."</string>
+ <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Erabiltzen dituzun aplikazioek zuri zuzentzeko ezarri duzun modua erabil dezakete zurekiko komunikazioa pertsonalizatzeko."</string>
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Zehaztugabea"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Emakumezkoa"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Gizonezkoa"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Hautatutako hizkuntza kendu nahi duzu?}other{Hautatutako hizkuntzak kendu nahi dituzu?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Testua beste hizkuntza batean bistaratuko da."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ezin dira kendu hizkuntza guztiak"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gehitu dira aurpegia eta <xliff:g id="WATCH">%s</xliff:g> erlojua"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gehitu dira aurpegia, hatz-marka eta <xliff:g id="WATCH">%s</xliff:g> erlojua"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gehitu dira aurpegia, hatz-markak eta <xliff:g id="WATCH">%s</xliff:g> erlojua"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfiguratu erlojua"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Telefonoa desblokeatzeko beste modu eroso bat da Erloju bidez desblokeatzea; adibidez, hatzak bustita dauzkazunean edo aurpegia ezagutzen ez denean.\n\nEkintza hauek eginda erabil dezakezu erlojua telefonoa desblokeatzeko:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Orain ez"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Egin aurrera"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Gehiago"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Nola funtzionatzen du?"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Desblokeatuta, eskumuturrean eta telefonotik gertu egon behar du erlojuak. Eskumuturrean daramazun bitartean, ez duzu berriro desblokeatu beharko."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Telefonoa desblokeatzen denean, jakinarazpen bat jasoko duzu erlojuan. Telefonoa nahi gabe desblokeatu bada, sakatu jakinarazpena telefonoa berriro blokeatzeko."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Zeuk duzu kontrola"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Erloju bidez desblokeatzeko eginbideak darabiltzan gailuen zerrendatik kentzeko erlojua, joan ezarpenetara"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Sakatu jakinarazpen bat"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Pantaila blokeatuan, pasatu hatza gora"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Aukeratu erlojua"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Erabilgarri dauden erlojuak"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Utzi"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Berretsi"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Prest zaude!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Orain, telefonoa desblokeatzeko erabil dezakezu erlojua, pantaila blokeatuan hatza gora pasatuta edo jakinarazpen bat sakatuta"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Eginda"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Erloju bidez desblokeatzea"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Telefonoa desblokeatzeko erabil dezakezu erlojua, pantaila blokeatuan hatza gora pasatuta edo jakinarazpen bat sakatuta"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Erloju bidez desblokeatzea erabiltzeko, desblokeatuta, eskumuturrean, zugandik gertu eta telefonora konektatuta egon behar du erlojuak. Konexioa eteten bada, telefonoa desblokeatu beharko duzu Erloju bidez desblokeatzea erabili ahal izan aurretik.¡.\n\nGogoan izan:\nErloju bakarra eduki dezakezu konfiguratuta aldiko. Beste bat gehitzeko, kendu une honetan konfiguratuta daukazuna."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Lortu Erloju bidez desblokeatzea eginbideari buruzko informazio gehiago"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Gehitu erloju bat"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Kendu erlojua"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Hatz-markaren eta aurpegiaren bidez desblokeatzea"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Laneko profila aurpegi eta hatz-marka bidez desblokeatzea"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfiguratu gabe"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Baliteke pasahitz hau beste gailuan ere idatzi behar izatea."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Berretsi multzo koordinatuarekin parekatzeko"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Eman kontaktuak eta deien historia erabiltzeko baimena"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Eman kontaktuak eta deien historia erabiltzeko baimena ere"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Deiak iragartzeko eta beste gauza batzuetarako erabiliko da informazioa"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Ezin izan da <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura konektatu."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Gailu erabilgarriak"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Gailu honekin wifi-konexioa partekatzen…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Konektatzen…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Partekatu wifi-gunea"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Egiaztatu zeu zarela"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Egiaztatu zeu zarela"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wifi-sareko pasahitza: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Wifi-guneko pasahitza: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Konexio automatikoa"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Sarea ez dago barrutian"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Ahaztu"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Aldatu"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ezin izan da sarea ahaztu"</string>
<string name="wifi_save" msgid="2312643132472226807">"Gorde"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Ezin izan da sarea gorde"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Utzi"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Maiztasun hobetsia erabilgarri ez dagoenean, baliteke wifi-guneak beste bat erabiltzea. Maiztasuna aldatuz gero, wifi-gunearen segurtasun-ezarpenak ere aldatuko dira agian."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Ezin da erabili 6 GHz-ko frekuentzian"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Wifi-gunearen frekuentzia aldatuz gero, baliteke segurtasun-ezarpenak aldatzea"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Wifi-gunea aktibatzen…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Wifi-gunea desaktibatzen…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Ez dago erabilgarri konexioa partekatzeko aukera"</string>
@@ -1376,7 +1410,7 @@
<string name="location_low_battery_use" msgid="5218950289737996431">"Bateria-erabilera txikia"</string>
<string name="location_scanning_wifi_always_scanning_title" msgid="5004781272733434794">"Wifi-sareen bilaketa"</string>
<string name="location_scanning_wifi_always_scanning_description" msgid="6236055656376931306">"Eman wifi-sareak edozein unetan bilatzeko baimena aplikazioei eta zerbitzuei, baita wifi-konexioa desaktibatuta dagoenean ere. Kokapenean oinarritutako eginbideak eta zerbitzuak hobetzeko erabil daiteke hori, besteak beste."</string>
- <string name="location_scanning_bluetooth_always_scanning_title" msgid="1809309545730215891">"Bluetooth bidezko gailuen bilaketa"</string>
+ <string name="location_scanning_bluetooth_always_scanning_title" msgid="1809309545730215891">"Bluetooth bidezko bilaketa"</string>
<string name="location_scanning_bluetooth_always_scanning_description" msgid="5362988856388462841">"Eman inguruko gailuak edozein unetan bilatzeko baimena aplikazioei eta zerbitzuei, baita Bluetootha desaktibatuta dagoenean ere. Kokapenean oinarritutako eginbideak eta zerbitzuak hobetzeko erabil daiteke hori, besteak beste."</string>
<string name="location_services_preference_title" msgid="604317859531782159">"Kokapen-zerbitzuak"</string>
<string name="location_services_screen_title" msgid="5640002489976602476">"Kokapen-zerbitzuak"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Pasahitza ahaztu zaizu?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Eredua ahaztu zaizu?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PINa ahaztu zaizu?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Aurrera egiteko, marraztu gailuaren eredua"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Aurrera egiteko, idatzi gailuaren PINa"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Aurrera egiteko, idatzi gailuaren pasahitza"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Aurrera egiteko, marraztu laneko eredua"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Aurrera egiteko, marraztu eredua"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Aurrera egiteko, idatzi PINa"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Aurrera egiteko, idatzi pasahitza"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Aurrera egiteko, marraztu laneko profilaren eredua"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Aurrera egiteko, idatzi laneko PINa"</string>
<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>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ez da azalpenik eman."</string>
<string name="settings_button" msgid="2195468788019730377">"Ezarpenak"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"argi-sentikortasuna, fotofobia, gai iluna, migraina, buruko mina, irakurtzeko modua, gau modua, murriztu distira, puntu zuria"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"erabiltzeko erraztasuna, sartzeko erraztasuna, laguntza, erabilerraztasuna"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"ikusmena, entzumena, itsua, gorra, mugimendua, trebetasuna, laguntzailea, laguntza, erabilerraztasuna, irisgarritasuna, eskua, lagundu"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"leihoetarako lupa, zooma, lupa, ikusmen txarra, handitu, handiagotu"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"azpitituluak, istanteko transkripzioa, entzumen txarra, entzumen-galera, CART, ordenagailuz lagundutako transkripzioa denbora errealean, ahotsa testu bihurtzea"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kolore-kontrastea"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorra, sagua"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"audifonoak, entzumen-urritasuna, entzumen-galera, kokleako inplanteak, anplifikazio-gailuak, soinu-prozesadoreak"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"mugimendua, sagua, kanpoko sagua, buruaz gidatutako sagua, sagu moldagarria, gurpil-aulkia, joko-palanka"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"audifonoak, entzumen-urritasuna, entzumen-galera, kokleako inplanteak, anplifikazio-gailuak, soinu-prozesadoreak, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"entzumen txarra, entzumen-galera, azpitituluak, teletipoa, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"hiru botoi"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"trebetasuna, mugimendua, hirugarren adina, artritisa, tendinitisa, buruko isuria, dardara, esklerosi anizkoitza, garun-paralisia, eskua"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atzerapena, trebetasuna, hirugarren adina"</string>
<string name="print_settings" msgid="8519810615863882491">"Inprimatzea"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desaktibatuta"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 inprimatze-zerbitzu aktibatuta dago}other{# inprimatze-zerbitzu aktibatuta daude}}"</string>
@@ -2389,7 +2426,7 @@
<string name="voice_interaction_security_warning" msgid="7962884055885987671">"Aginduak ahoz emateko zerbitzu honek une oro kontrolatuko du ahotsa eta ahozko gaitasuna duten aplikazioak ere kontrolatu ahal izango ditu. <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g> aplikazioarena da. Zerbitzu hau erabiltzeko aukera gaitu nahi duzu?"</string>
<string name="on_device_recognition_settings" msgid="6503160369314598069">"Gailuko hautemate-ezarpenak"</string>
<string name="on_device_recognition_settings_title" msgid="7137599722039096545">"Gailuko hautematea"</string>
- <string name="on_device_recognition_settings_summary" msgid="3292736423223499348">"Gailuko ahots-hautematea"</string>
+ <string name="on_device_recognition_settings_summary" msgid="3292736423223499348">"Gailuko hizketa-hautematea"</string>
<string name="tts_engine_preference_title" msgid="7808775764174571132">"Motor hobetsia"</string>
<string name="tts_engine_settings_title" msgid="1298093555056321577">"Motorraren ezarpenak"</string>
<string name="tts_sliders_title" msgid="6901146958648426181">"Hizketaren abiadura eta tonua"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Datu-erabileraren abisua: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Datuen muga: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Datu-erabileraren abisua: <xliff:g id="ID_1">^1</xliff:g>. Datuen muga: <xliff:g id="ID_2">^2</xliff:g>."</string>
- <string name="operator_warning" msgid="5672761970087591211">"Agian ez dira bat etorriko gailuak eta operadoreak egindako datu-kontsumoen neurketak"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ez dira barne hartzen operadorearen sareek erabilitako datuak"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> erabilita"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Ezarri datu-erabileraren abisua"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Betetze automatikoaren zerbitzua"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Automatikoki betetzeko zerbitzu lehenetsia"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Pasahitzak"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Pasahitzak, sarbide-gakoak eta datu-zerbitzuak"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Pasahitzak, sarbide-gakoak eta datu-zerbitzuak"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Hornitzaile gehigarriak"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# pasahitz}other{# pasahitz}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatikoa, bete, betetze automatikoa, pasahitza"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatikoa, bete, betetze automatikoa, datuak, sarbide-gakoa, pasahitza"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Ziurtatu aplikazioa fidagarria dela</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> aplikazioak pantailan dagoena erabiltzen du automatikoki bete daitekeena zehazteko."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b><xliff:g id=app_name example=Provider>%1$s</xliff:g> erabili nahi duzu?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> pantailako edukian oinarritzen da automatikoki zer bete daitekeen erabakitzeko. Pasahitz, sarbide-gako eta bestelako datu berri guztiak hemen gordeko dira hemendik aurrera."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Pasahitzak, sarbide-gakoak eta datu-zerbitzuak"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Pasahitzak, sarbide-gakoak eta datu-zerbitzuak"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s desaktibatu nahi duzu?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Zerbitzu hau desaktibatu nahi duzu?</b> <br/> <br/> Saioa hasita eduki arren, ez dira automatikoki beteko pasahitzak, sarbide-gakoak, ordainketa-metodoak, etab. Gordeta daukazun informazioa erabili ahal izateko, aukeratu pasahitzen, sarbide-gakoen edo datuen zerbitzu bat."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s erabili nahi duzu?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s zerbitzuak pantailan dagoena erabiltzen du, automatikoki bete daitekeena zehazteko."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Pasahitzen, sarbide-gakoen eta datu-zerbitzuen muga"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Gehienez ere bost pasahitz, sarbide-gako eta datu-zerbitzu aktibo eduki ditzakezu aktibo aldi berean. Desaktibatu zerbitzu bat beste bat gehitzeko."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Pasahitzen, sarbide-gakoen eta datu-zerbitzuen muga"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Gehienez ere 5 pasahitz, sarbide-gako eta datu-zerbitzu eduki ditzakezu aktibo aldi berean. Desaktibatu zerbitzu bat beste bat gehitzeko."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desaktibatu"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Betetze automatikoa"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Erregistratze-maila"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Euskarri bateragarrietako audioa murgiltzaileagoa da"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Buruaren jarraipena"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Burua mugitu ahala audioa aldatu egiten da, soinua naturalagoa izan dadin"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio-gailu mota"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Ezezaguna"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Bozgorailua"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Entzungailuak"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Autorako kita"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Beste bat"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Sarearen deskargatzeko abiaduraren muga"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfiguratu sarearen banda-zabalerari dagokion sarrera-abiaduraren muga, zeina Interneteko konexioa eskaintzen duten sare guztiei aplikatzen baitzaie."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfiguratu sarearen deskargatzeko abiaduraren muga"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Desinstalatu aplikazioa"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Azken # hilabetean instalatutako aplikazioak}other{Azken # hilabeteetan instalatutako aplikazioak}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Duela # hilabete baino gehiago instalatutako aplikazioak}other{Duela # hilabete baino gehiago instalatutako aplikazioak}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Aspektu-erlazioa"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Aplikazioa <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura doitzeko diseinatu ez bada, aukeratu aplikazioa ikusteko aspektu-erlazio bat"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Iradokitako aplikazioak"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aspektu-erlazioa ordeztu zaien aplikazioak"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Aplikazioen balio lehenetsia"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pantaila osoa"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Pantaila erdia"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Gailuaren aspektu-erlazioa"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aspektu-erlazioa aldatzean berrabiaraziko da aplikazioa. Litekeena da gorde gabeko aldaketak galtzea."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Hatz-marken sentsorea"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Argi-jakinarazpenak"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Argi-jakinarazpenei buruz"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Tartekoa"</string>
<string name="contrast_high" msgid="3988567609694797696">"Altua"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Leiho bakar batean ireki daiteke aplikazioa"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Zerbitzua aktibatuta"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Zerbitzua desaktibatuta"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Lasterbidea desaktibatuta"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aktibatuta"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desaktibatuta"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desaktibatuta"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desaktibatuta"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Aktibatuta"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Desaktibatuta"</string>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index c04d2b7..9075481 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"پساز ۱ دقیقه"</item>
<item msgid="1574040255478150028">"پساز ۵ دقیقه"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"برای افزایش عمر باتری، «روشنایی تطبیقی» را روشن کنید"</item>
+ <item msgid="2256666063790193306">"برای افزایش عمر باتری، «وقفه صفحهنمایش» را کاهش دهید"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index a14b3b0..db92a80 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"مشخص نشده"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"مؤنث"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"مذکر"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{زبان انتخابشده حذف شود؟}one{زبان انتخابشده حذف شود؟}other{زبانهای انتخابشده حذف شود؟}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"نوشتار به زبان دیگری نشان داده میشود."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"همه زبانها حذف نمیشوند"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"چهره و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"چهره، اثر انگشت، و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"چهره، اثر انگشت، و <xliff:g id="WATCH">%s</xliff:g> اضافه شد"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"راهاندازی ساعت"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"«قفلگشایی با ساعت» یکی دیگر از روشهای آسان برای باز کردن قفل این تلفن است؛ برای مثال، زمانی که انگشتانتان خیس است یا چهرهتان تشخیص داده نمیشود.\n\nزمانی میتوانید از ساعت خود برای باز کردن قفل این تلفن استفاده کنید که:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"اکنون نه"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"ادامه دادن"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"بیشتر"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"سازوکار عمل"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"قفل ساعتتان باید باز باشد، ساعت روی مچ شما باشد، و به این تلفن نزدیک باشد. وقتی ساعت روی مچ شما است دیگر نیازی نیست قفل آن را باز کنید."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"وقتی قفل این تلفن باز شود، اعلانی در ساعتتان دریافت میکنید. اگر قفل تلفن بدون اینکه شما خواسته باشید باز شد، روی اعلان ضربه بزنید تا تلفن دوباره قفل شود."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"کنترل در دست شما است"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"همواره میتوانید در «تنظیمات» ساعتتان را از «قفلگشایی با ساعت» بردارید"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"روی اعلان ضربه بزنید"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"در صفحه قفل تند بهبالا بکشید"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ساعت را انتخاب کنید"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ساعتهای دردسترس"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"لغو"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"تأیید"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"همه چیز آماده است!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"اکنون وقتی روی صفحه قفل به بالا میکشید یا روی اعلان ضربه میزنید، میتوانید از ساعتتان برای باز کردن قفل این تلفن استفاده کنید."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"تمام"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"قفلگشایی با ساعت"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"وقتی روی صفحه قفل به بالا میکشید یا روی اعلان ضربه میزنید، میتوانید از ساعتتان برای باز کردن قفل این تلفن استفاده کنید."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"برای استفاده از «قفلگشایی با ساعت»، قفل ساعت باید باز باشد، ساعت روی مچ دستتان باشد و به این تلفن متصل باشد. اگر اتصال قطع شد، برای اینکه بتوانید از «قفلگشایی با ساعت» استفاده کنید، باید قفل تلفن را باز کنید.\n\nبهخاطر داشته باشید:\nبهصورت همزمان فقط میتوانید یک ساعت را راهاندازی کنید. برای افزودن ساعتی دیگر، ابتدا ساعت فعلی را حذف کنید."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"درباره «قفلگشایی با ساعت» بیشتر بدانید"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"افزودن ساعت"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"برداشتن ساعت"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"قفلگشایی با اثر انگشت و چهره"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"«قفلگشایی با اثر انگشت و چهره» برای نمایه کاری"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"راهاندازی لازم است"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ممکن است لازم باشد این گذرکلید را در دستگاه دیگر هم وارد کنید."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"تأیید مرتبطسازی با مجموعه هماهنگ"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"اجازه دسترسی به مخاطبین و سابقه تماس"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"دسترسی به مخاطبین و سابقه تماس نیز مجاز شود"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"از اطلاعات برای اعلام تماسها و موارد دیگر استفاده خواهد شد"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"اتصال به <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ممکن نیست."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"دستگاههای در دسترس"</string>
@@ -658,7 +687,7 @@
<string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"قطع اتصال"</string>
<string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"مرتبطسازی و اتصال"</string>
<string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"با بلوتوث روشن، دستگاهتان میتواند با دستگاههای بلوتوث اطراف در ارتباط باشد."</string>
- <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"وقتی بلوتوث روشن است، دستگاهتان میتواند با دیگر دستگاههای بلوتوث اطراف ارتباط برقرار کند.\n\nبرای بهبود تجربه استفاده از دستگاه، برنامهها و سرویسها همچنان میتوانند در هرزمانی دستگاههای اطراف را اسکن کنند، حتی وقتی بلوتوث خاموش باشد. برای مثال، از این ویژگی میتوان برای بهبود ویژگیها و سرویسهای مکانمبنا استفاده کرد. میتوانید این ویژگی را در تنظیمات اسکن بلوتوث تغییر دهید."</string>
+ <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"وقتی بلوتوث روشن است، دستگاهتان میتواند با دیگر دستگاههای بلوتوث اطراف ارتباط برقرار کند.\n\nبرای بهبود تجربه استفاده از دستگاه، برنامهها و سرویسها همچنان میتوانند در هرزمانی دستگاههای اطراف را اسکن کنند، حتی وقتی بلوتوث خاموش باشد. برای مثال، از این ویژگی میتوان برای بهبود ویژگیها و سرویسهای مکانمبنا استفاده کرد. میتوانید این ویژگی را در تنظیمات اسکن دستگاههای بلوتوث تغییر دهید."</string>
<string name="bluetooth_scan_change" msgid="1744636222637390367">"تغییر"</string>
<string name="device_details_title" msgid="1155622417516195481">"جزئیات دستگاه"</string>
<string name="bluetooth_device_keyboard_settings_preference_title" msgid="3411693160917620519">"تنظیمات صفحهکلید"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"درحال همرسانی Wi‑Fi با این دستگاه…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"درحال اتصال…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"همرسانی نقطه اتصال"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"تأیید اینکه این فرد شما هستید"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"تأیید کنید این شمایید"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"گذرواژه Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"گذرواژه نقطه اتصال: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"اتصال خودکار"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"شبکه در محدوده نیست"</string>
<string name="wifi_forget" msgid="3485573280364015620">"فراموش کردن"</string>
<string name="wifi_modify" msgid="5127926476383659412">"اصلاح"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"شبکه فراموش نشد"</string>
<string name="wifi_save" msgid="2312643132472226807">"ذخیره"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"شبکه ذخیره نشد"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"لغو"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"اگر بسامد ترجیحی شما دردسترس نباشد، ممکن است نقطه اتصال از بسامد دیگری استفاده کند. اگر بسامد را تغییر دهید، ممکن است تنظیمات امنیتی نقطه اتصال تغییر کند."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"با ۶ گیگاهرتز دردسترس نیست"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"اگر فرکانس نقطه اتصال را تغییر دهید، ممکن است تنظیمات امنیتی تغییر کند"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"در حال روشن کردن نقطه اتصال…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"در حال خاموش کردن نقطه اتصال…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"اشتراکگذاری اینترنت دردسترس نیست"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"گذرواژه را فراموش کردید؟"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"الگو را فراموش کردید؟"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"پین خود را فراموش کردهاید؟"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"برای ادامه دادن، از الگوی دستگاهتان استفاده کنید"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"برای ادامه، کد پین دستگاهتان را وارد کنید"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"برای ادامه گذرواژه دستگاهتان را وارد کنید"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"برای ادامه، الگوی کاریتان را وارد کنید"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"برای ادامه، الگو را وارد کنید"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"برای امنیت بیشتر، از الگوی دستگاهتان استفاده کنید"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"شرحی ارائه نشده است."</string>
<string name="settings_button" msgid="2195468788019730377">"تنظیمات"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"حساسیت به نور، نورهراسی، زمینه تیره، میگرن، سردرد، حالت خواندن، حالت شب، کاهش روشنایی، درجه سفیدی"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"سهولت استفاده، سهولت دسترسی، دستیار، یاریرسان"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"بینایی، شنوایی، نابینا، ناشنوا، حرکتی، دستورزی، یاریرسان، یاری، کاربری آسان، دسترسی آسان، دست، کمک"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ذرهبین پنجره، زوم، درشتنمایی، کمبینا، بزرگ کردن، بزرگتر کردن"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"زیرنویس، زیرنویس ناشنوایان، CC، ترانویسی همزمان، کمشنوا، ازدست دادن شنوایی، CART، گفتار به نوشتار، زیرنویس"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"تضاد رنگ"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"حرکت، موشواره"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"سمعک، کمشنوا، ازدست دادن شنوایی، کاشت حلزون، دستگاه تقویتی، پردازنده صدا"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"حرکتی، موشواره، موشواره خارجی، موشواره روی سر، موشواره تطبیقی، صندلی چرخدار، دسته کنترل"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"سمعک، کمشنوا، ازدست دادن شنوایی، کاشت حلزون، دستگاه تقویتی، پردازنده صدا، پاسخگوی ایمنی عمومی"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"کمشنوا، ازدست دادن شنوایی، زیرنویس ناشنوایان، تایپ راهدور، tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"سه دکمه"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"دستورزی، حرکتی، سالمند، ورم مفاصل، آسیب فشار تکراری (آراسآی)، سکته، رعشه، اسکلروز چندگانه، فلج مغزی، لرزش، آسیب فشار تکراری، دست"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"تأخیر، دستورزی، سالمند"</string>
<string name="print_settings" msgid="8519810615863882491">"چاپ کردن"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"خاموش"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{یک سرویس چاپ روشن است}one{# سرویس چاپ روشن است}other{# سرویس چاپ روشن است}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> هشدار داده"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> حدمجاز داده"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> هشدار داده / <xliff:g id="ID_2">^2</xliff:g> حدمجاز داده"</string>
- <string name="operator_warning" msgid="5672761970087591211">"روش شرکت مخابراتی برای اندازهگیری مصرف داده ممکن است با روش دستگاهتان متفاوت باشد."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"دادههایی را که شبکههای شرکت مخابراتی استفاده میکنند لحاظ نمیکند"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> مصرف شده"</string>
<string name="set_data_warning" msgid="1685771882794205462">"تنظیم هشدار داده"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"سرویس تکمیل خودکار"</string>
<string name="default_autofill_app" msgid="372234803718251606">"سرویس تکمیل خودکار پیشفرض"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"گذرواژهها"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"گذرواژهها، گذرکلیدها، و سرویسهای داده"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"گذرواژهها، گذرکلیدها، و سرویسهای داده"</string>
<string name="credman_credentials" msgid="4931371941253324143">"ارائهدهندگان دیگر"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# گذرواژه}one{# گذرواژه}other{# گذرواژه}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"خودکار، تکمیل، تکمیل خودکار، گذرواژه"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"خودکار، تکمیل، تکمیل خودکار، داده، گذرکلید، گذرواژه"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>مطمئن شوید به این برنامه اطمینان دارید</b> <br/> <br/> <xliff:g id=app_name example=تکمیل خودکار Google>%1$s</xliff:g> برای تعیین آنچه که میتواند بهطور خودکار تکمیل شود، از آنچه روی صفحهنمایش شما است استفاده میکند."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"گذرواژهها، گذرکلیدها، و سرویسهای داده"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"گذرواژهها، گذرکلیدها، و سرویسهای داده"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s خاموش شود؟"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>این سرویس خاموش شود؟</b> <br/> <br/> با ورود به سیستم، اطلاعات ذخیرهشده مثل گذرواژهها، گذرکلیدها، روشهای پرداخت، و دیگر اطلاعات تکمیل نخواهند شد. برای استفاده از اطلاعات ذخیرهشده، گذرواژه، گذرکلید، یا سرویس دادهای را انتخاب کنید."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"از %1$s استفاده شود؟"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s از محتوای روی صفحه شما استفاده میکند تا تشخیص دهد چه چیزهایی را میتوان بهطور خودکار تکمیل کرد."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"محدودیت گذرواژهها، گذرکلیدها، و سرویسهای داده"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"میتوانید حداکثر تا ۵ گذرواژه، گذرکلید، و سرویس داده را بهصورت همزمان فعال داشته باشید. برای افزودن مورد جدید، یکی از سرویسها را خاموش کنید."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"محدودیت گذرواژهها، گذرکلیدها، و سرویسهای داده"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"میتوانید حداکثر تا ۵ گذرواژه، گذرکلید، و سرویس داده را بهصورت همزمان فعال داشته باشید. برای افزودن مورد جدید، یکی از سرویسها را خاموش کنید."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"خاموش کردن"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"تکمیل خودکار"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"سطح گزارشدهی"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"صدای رسانههای سازگار فراگیرتر میشود"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ردیابی سر"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"با حرکت سرتان، صدا تغییر میکند تا طبیعیتر شنیده شود"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"نوع دستگاه صوتی"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"نامشخص"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"بلندگو"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"هدفون"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"کیت خودرو"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"سایر موارد"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"محدودیت نرخ بارگیری شبکه"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"برای نرخ ورودی پهنای باند شبکه، محدودیت پیکربندی کنید. این محدودیت بر همه شبکههایی که اتصال اینترنت ارائه میدهند اعمال میشود."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"پیکربندی محدودیت نرخ بارگیری شبکه"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"متوسط"</string>
<string name="contrast_high" msgid="3988567609694797696">"بالا"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"این برنامه فقط در ۱ پنجره میتواند باز شود"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"سرویس روشن است"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"سرویس خاموش است"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"میانبر خاموش است"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"روشن"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"خاموش"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"خاموش"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"خاموش"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"روشن"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"خاموش"</string>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index a1707fe..d218358 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 minuutin kuluttua"</item>
<item msgid="1574040255478150028">"5 minuutin kuluttua"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Laita kirkkauden säätö päälle akunkeston pidentämiseksi"</item>
+ <item msgid="2256666063790193306">"Lyhennä näytön aikakatkaisua akunkeston pidentämiseksi"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index a13bbb5..04572c4 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -193,12 +193,14 @@
<string name="title_regional_pref_footer" msgid="7450438024324794380">"Jos sovellus ei tue alueellisia valintoja, se käyttää oletusarvoista kieli- ja maa-asetusta."</string>
<string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Lue lisää kieliasetuksista."</string>
<string name="category_title_terms_of_address" msgid="4309422700380895278">"Lisäasetukset"</string>
- <string name="terms_of_address_title" msgid="4064593634733842458">"Puhuttelutavat"</string>
+ <string name="terms_of_address_title" msgid="4064593634733842458">"Kieliopillisen suvun valitsin"</string>
<string name="terms_of_address_summary" msgid="6136134336560679144">"Valitse, miten haluat itseäsi puhuteltavan"</string>
- <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Sovellukset voivat personoida sitä, miten ne puhuttelevat sinua, valitsemiesi puhuttelutapojen perusteella"</string>
+ <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Sovellukset voivat personoida sitä, miten ne puhuttelevat sinua, valitsemasi kieliopillisen suvun perusteella"</string>
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ei määritetty"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminiini"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Maskuliini"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Poistetaanko valittu kieli?}other{Poistetaanko valitut kielet?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teksti näytetään toisella kielellä."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Kaikkia kieliä ei voi poistaa"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Kasvot ja <xliff:g id="WATCH">%s</xliff:g> lisätty"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Kasvot, sormenjälki ja <xliff:g id="WATCH">%s</xliff:g> lisätty"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Kasvot, sormenjäljet ja <xliff:g id="WATCH">%s</xliff:g> lisätty"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Kellon käyttöönotto"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Kellon avaus on kätevä tapa avata puhelin, esimerkiksi jos sormesi ovat kastuneet tai kasvojen tunnistus ei onnistu.\n\nVoit käyttää kelloa puhelimen avaamiseen näin:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ei nyt"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Jatka"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Lisää"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Näin se toimii"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Kellon on oltava avattuna, ranteessa ja lähellä tätä puhelinta. Sinun ei tarvitse avata kellon lukitusta uudelleen, kun se on ranteessasi."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kun puhelimen lukitus avataan, saat siitä ilmoituksen kelloon. Jos puhelin avattiin vahingossa, voit lukita puhelimen uudelleen napauttamalla ilmoitusta."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Hallitset tiliäsi itse"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Voit poistaa kellon avauksen milloin tahansa asetuksista"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Napauta ilmoitusta"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Pyyhkäise ylös lukitusnäytöllä"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Valitse kellosi"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Käytettävissä olevat kellot"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Peruuta"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Vahvista"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Valmista!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Voit nyt avata puhelimen lukituksen kellolla pyyhkäisemällä ylös lukitusnäytöltä tai napauttamalla ilmoitusta"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Valmis"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Kellon avaus"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Voit avata puhelimen lukituksen kellolla pyyhkäisemällä ylös lukitusnäytöltä tai napauttamalla ilmoitusta"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Voit käyttää kellon avausta, kun kello on avattuna, ranteessasi, lähellä sinua ja yhdistettynä puhelimeen. Jos yhteys keskeytyy, sinun pitää avata puhelimen lukitus ennen kuin voit käyttää kellon avausta.\n\nHyvä muistaa:\nVain yksi kello voi olla käytössä kerrallaan. Jos haluat lisätä uuden kellon, poista ensin nykyinen."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Lue lisää kellon avauksesta"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Lisää kello"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Poista kello"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Sormenjälki ja kasvojentunnistusavaus"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Kasvojentunnistus- ja sormenjälkiavaus työkäyttöön"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Edellyttää käyttöönottoa"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Saatat joutua syöttämään tämän koodin myös toiseen laitteeseen."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Vahvista laiteparin muodostus koordinoidun joukon kanssa"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Anna pääsyoikeus yhteystietoihisi ja puheluhistoriaasi"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Salli myös pääsy yhteystietoihin ja soittohistoriaan"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Tietoja käytetään esimerkiksi puheluilmoituksiin"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Yhteyden muodostaminen laitteeseen <xliff:g id="DEVICE_NAME">%1$s</xliff:g> epäonnistui."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Saatavilla olevat laitteet"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Jaetaan Wi-Fi-yhteys tämän laitteen kanssa…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Yhdistetään…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Jaa hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Henkilöllisyyden vahvistaminen"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Vahvista henkilöllisyys"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi-verkon salasana: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspotin salasana: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automaattinen yhdistäminen"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Verkko ei ole kantoalueella"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Unohda"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Muokkaa"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Verkon unohtaminen epäonnistui."</string>
<string name="wifi_save" msgid="2312643132472226807">"Tallenna"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Verkon tallentaminen epäonnistui."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Peru"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Jos haluamasi taajuus ei ole saatavilla, hotspot saattaa käyttää eri taajuutta. Hotspotin suojausasetukset saattavat muuttua, jos muutat taajuutta."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Ei ole saatavilla 6 GHz:lle"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Suojausasetukset saattavat muuttua, jos muutat hotspotin taajuutta."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Otetaan yhteyspiste käyttöön..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Poistetaan yhteyspiste käytöstä..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Puhelimen käyttäminen modeemina ei saatavilla"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Unohditko salasanasi?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Unohditko kuviosi?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Unohditko PIN-koodisi?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Jatka piirtämällä kuvio"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Jatka lisäämällä laitteesi PIN-koodi"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Jatka antamalla laitteesi salasana"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Jatka piirtämällä työprofiilisi kuvio."</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Jatka piirtämällä kuvio"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Jatka lisäämällä PIN-koodi"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Jatka lisäämällä salasana"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Jatka piirtämällä työprofiilisi kuvio"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Jatka lisäämällä työprofiilisi PIN-koodi"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Jatka antamalla työprofiilisi salasana."</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Turvallisuussyistä pyydämme antamaan laitteen kuvion."</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ei kuvausta."</string>
<string name="settings_button" msgid="2195468788019730377">"Asetukset"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"valonarkuus, fotofobia, tumma teema, migreeni, päänsärky, lukutila, yötila, vähennä kirkkautta, valkoinen piste"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Helppokäyttöisyys, helppo käyttää, apu, avustava"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"näkö, kuulo, sokea, kuuro, motoriikka, liikkuvuus, avustava, avustus, helppokäyttöisyys, helppo pääsy, käsi, ohje"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Ikkunan suurennus, heikko näkö, suurenna, muuta suuremmaksi"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Tekstitykset, videotekstitykset, Live Transcribe, huonokuuloinen, kuulon heikkeneminen, CART, puheesta tekstiksi, tekstitys"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"värikontrasti"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motoriikka, hiiri"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"kuulolaitteet, huonokuuloinen, kuulonmenetys, sisäkorvaimplantit, äänenvahvistuslaitteet, puheprosessori"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motoriikka, hiiri, ulkoinen hiiri, päähiiri, mukautuva hiiri, pyörätuoli, ohjainsauva"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"kuulolaitteet, huonokuuloinen, kuulon heikkeneminen, sisäkorvaimplantit, äänenvahvistuslaitteet, puheprosessorit, henkilökohtaiseen äänenvahvistukseen tarkoitetut tuotteet (PSAP)"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"huonokuuloinen, kuulon heikkeneminen, tekstitykset, kaukokirjoitin, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"kolme painiketta"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"liikkuvuus, motoriikka, iäkäs, niveltulehdus, aivoinfarkti, vapina, MS-tauti, CP-vamma, tärinä, rasitusvamma, käsi"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"viive, liikkuvuus, iäkäs"</string>
<string name="print_settings" msgid="8519810615863882491">"Tulostus"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Pois päältä"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 tulostuspalvelu päällä}other{# tulostuspalvelua päällä}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Datavaroitus <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Dataraja <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Datavaroitus <xliff:g id="ID_1">^1</xliff:g> / Dataraja <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operaattorin mittaama datan määrä voi erota laitteen mittaustuloksesta."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ei sisällä operaattoriverkkojen käyttämää dataa"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> käytetty"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Aseta datankäyttövaroitus"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Automaattinen täyttö ‑palvelu"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Automaattisen täytön oletuspalvelu"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Salasanat"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Salasanat, avainkoodit ja datapalvelut"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Salasanat, avainkoodit ja datapalvelut"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Muut tarjoajat"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# salasana}other{# salasanaa}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automaattinen, täyttö, automaattinen täyttö, salasana"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automaattinen, täyttö, automaattinen täyttö, data, avainkoodi, salasana"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Varmista, että luotat tähän sovellukseen</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> päättelee näytöllä olevien kohteiden perusteella, mitä voidaan täyttää automaattisesti."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Käytetäänkö <xliff:g id=app_name example=Provider>%1$s</xliff:g>a?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> päättelee näytön näkymän perusteella, mitä voidaan täyttää automaattisesti. Uudet salasanat, avainkoodit ja muita tietoja tallennetaan tästä lähtien tänne."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Salasanat, avainkoodit ja datapalvelut"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Salasanat, avainkoodit ja datapalvelut"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Laitetaanko %1$s pois päältä?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Laitetaanko tämä palvelu pois päältä?</b> <br/> <br/> Tallennettuja tietoja (esimerkiksi salasanoja, avainkoodeja ja maksutapoja) ei täytetä, kun kirjaudut sisään. Jos haluat käyttää tallennettuja tietoja, valitse salasana, avainkoodi tai datapalvelu."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Käytetäänkö: %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s päättelee näytön kohteiden perusteella, mitä voidaan täyttää automaattisesti."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Salasanojen, avainkoodien ja datapalveluiden rajoitus"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Sinulla voi olla yhtä aikaa aktiivisena enintään viisi salasanaa, avainkoodia ja datapalvelua. Laita palvelu pois päältä, jos haluat lisätä uusia sellaisia."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Salasanojen, avainkoodien ja datapalveluiden rajoitus"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Sinulla voi olla yhtä aikaa aktiivisena enintään viisi salasanaa, avainkoodia ja datapalvelua. Laita palvelu pois päältä, jos haluat lisätä uusia sellaisia."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Laita pois päältä"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automaattinen täyttö"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Lokikirjaustaso"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Median audiosta tulee yhteensopivilla laitteilla immersiivisempää"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pään liikkeiden seuranta"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio muuttuu pääsi liikkeen mukana kuulostaakseen luonnollisemmalta"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Äänilaitetyyppi"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Tuntematon"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Kaiutin"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Kuulokkeet"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Autosarja"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Muu"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Verkon latausnopeuden rajoitus"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Määritä verkon kaistanleveyden sisääntulonopeus, jota sovelletaan kaikkiin verkkoihin, jotka tarjoavat internetyhteyden"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Määritä verkon latausnopeuden rajoitus"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Poista sovellus"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Viimeisen # kuukauden aikana asennetut sovellukset}other{Viimeisten # kuukauden aikana asennetut sovellukset}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Yli # kuukausi sitten asennetut sovellukset}other{Yli # kuukautta sitten asennetut sovellukset}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Kuvasuhde"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Valitse kuvasuhde sovellukselle, jos sitä ei ole suunniteltu sopimaan laitteellesi (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ehdotetut sovellukset"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Ohitetut sovellukset"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Sovelluksen oletus"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Koko näyttö"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Puolikas näyttö"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Laitteen kuvasuhde"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Sovellus käynnistyy uudelleen, kun muutat kuvasuhdetta. Voit menettää tallentamattomat muutokset."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sormenjälkitunnistin"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Valoilmoitukset"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Tietoa valoilmoituksista"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Keskitaso"</string>
<string name="contrast_high" msgid="3988567609694797696">"Suuri"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Tämän sovelluksen voi avata vain yhdessä ikkunassa"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Palvelu päällä"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Palvelu pois päältä"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Pikanäppäin pois päältä"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Päällä"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Pois päältä"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Pois päältä"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Pois päältä"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Päällä"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Pois päältä"</string>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 185a9a6..001f080 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Après 1 minute"</item>
<item msgid="1574040255478150028">"Après 5 minutes"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Activer Luminosité adaptative pour prolonger l\'autonomie de la pile"</item>
+ <item msgid="2256666063790193306">"Réduire la mise en veille de l\'écran pour prolonger l\'autonomie de la pile"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index f03ded7..7ea75be 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -122,7 +122,7 @@
<string name="stylus_default_notes_app" msgid="4165657465911764628">"Appui du bouton supérieur"</string>
<string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (profil professionnel)"</string>
<string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Écrire dans les champs de texte"</string>
- <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer tous les appuis d\'un stylet sur les boutons"</string>
+ <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer toutes les pressions sur les boutons du stylet"</string>
<string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylet"</string>
<string name="date_and_time" msgid="1788358029823431692">"Date et heure"</string>
<string name="proxy_settings_title" msgid="4201866858226087066">"Serveur mandataire"</string>
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Non précisé"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Féminin"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculin"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Retirer la langue sélectionnée?}one{Retirer la langue sélectionnée?}other{Retirer les langues sélectionnées?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Le texte s\'affichera dans une autre langue."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Impossible de supprimer toutes les langues"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"<xliff:g id="WATCH">%s</xliff:g> et visage ajoutés"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Empreinte digitale, <xliff:g id="WATCH">%s</xliff:g> et visage ajoutés"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Empreintes digitales, <xliff:g id="WATCH">%s</xliff:g> et visage ajoutés"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurer votre montre"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Le Déverrouillage à l\'aide d\'une montre est un autre moyen pratique de déverrouiller votre téléphone, par exemple, lorsque vos doigts sont mouillés ou que votre visage n\'est pas reconnu.\n\nVous pouvez utiliser votre montre pour déverrouiller ce téléphone lorsque vous :"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Plus tard"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuer"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Plus"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Fonctionnement"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Votre montre doit être déverrouillée, se trouver sur votre poignet et être à proximité de ce téléphone. Vous n\'avez toutefois pas à la déverrouiller de nouveau lorsqu\'elle se trouve sur votre poignet."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Lorsque ce téléphone est déverrouillé, vous recevrez une notification sur votre montre. Si le téléphone a été déverrouillé involontairement, appuyez sur la notification pour le verrouiller à nouveau."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vous êtes aux commandes"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Vous pouvez retirer votre montre du déverrouillage à l\'aide d\'une montre à tout moment dans les paramètres"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Touchez une notification"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Balayez l\'écran de verrouillage vers le haut"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Choisir votre montre"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Montres proposées"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annuler"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmer"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Vous êtes prêt!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Vous pouvez désormais utiliser votre montre pour déverrouiller votre téléphone lorsque vous balayez l\'écran de verrouillage vers le haut ou touchez une notification"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Terminé"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Déverrouillage à l\'aide d\'une montre"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Vous pouvez utiliser votre montre pour déverrouiller votre téléphone lorsque vous balayez l\'écran de verrouillage vers le haut ou touchez une notification"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Pour utiliser le Déverrouillage à l\'aide d\'une montre, celle-ci doit être déverrouillée, se trouver sur votre poignet, être à proximité et être connectée à ce téléphone. Si la connexion est interrompue, vous devrez déverrouiller le téléphone avant de pouvoir utiliser le Déverrouillage à l\'aide d\'une montre.\n\nGardez à l\'esprit :\nVous ne pouvez configurer qu\'une seule montre à la fois. Pour ajouter une autre montre, vous devez d\'abord retirer la montre actuelle."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"En savoir plus sur le Déverrouillage à l\'aide d\'une montre"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ajouter une montre"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Retirer une montre"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Déverrouillage empreinte digitale & et reconnaissance faciale"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Déverr. par reconn. faciale et empreinte digitale pour le travail"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuration requise"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Vous devrez peut-être également saisir cette clé d\'accès sur l\'autre appareil."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirmez pour effectuer l\'association avec l\'ensemble coordonné"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Autoriser l\'accès à vos contacts et à l\'historique des appels"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Autoriser également l\'accès aux contacts et à l\'historique des appels"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Ces informations seront utilisées pour les annonces d\'appels et plus"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Impossible de se connecter à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Appareils détectés"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Partage du Wi‑Fi avec cet appareil en cours…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connexion en cours…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Partager le point d\'accès"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Vérifier qu\'il s\'agit bien de vous"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirmer que c\'est bien vous"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Mot de passe Wi-Fi : <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Mot de passe du point d\'accès : <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Connexion automatique"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Réseau hors de portée"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Supprimer"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modifier"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Échec de la suppression du réseau."</string>
<string name="wifi_save" msgid="2312643132472226807">"Enregistrer"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Échec de l\'enregistrement du réseau."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Annuler"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Si votre fréquence préférée n\'est pas offerte, votre point d\'accès sans fil peut en utiliser une autre. Les paramètres de sécurité du point d\'accès sans fil peuvent changer si vous modifiez la fréquence."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Non offert pour la fréquence de 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Les paramètres de sécurité peuvent changer si vous modifiez la fréquence du point d\'accès sans fil"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Activation du point d\'accès Wi-Fi en cours…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Désactivation du point d\'accès Wi-Fi en cours…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Le partage de connexion n\'est pas pris en charge"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Mot de passe oublié?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Schéma oublié?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"NIP oublié?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Entrez le schéma de l\'appareil pour continuer"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Entrez le NIP de l\'appareil pour continuer"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Entrez le mot de passe de l\'appareil pour continuer"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Entrez le schéma de votre profil professionnel pour continuer"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dessinez votre schéma pour continuer"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Entrez votre NIP pour continuer"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Entrez votre mot de passe pour continuer"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dessinez le schéma de votre profil professionnel pour continuer"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Entrez le NIP de votre profil professionnel pour continuer"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Entrez le mot de passe de votre profil professionnel pour continuer"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Pour plus de sécurité, tracez le schéma de votre appareil"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Aucune description fournie"</string>
<string name="settings_button" msgid="2195468788019730377">"Paramètres"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilité à la lumière, photophobie, thème sombre, migraine, mal de tête, mode lecture, mode nuit, réduire la luminosité, point blanc"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Convivialité, facilité d\'accès, assistance, accessibilité"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vision, audition, aveugle, sourd, motricité, dextérité, fonctionnel, assistance, facilité d\'utilisation, facilité d\'accès, main, aide"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Agrandisseur d\'écran, zoom, agrandissement, vision faible, agrandir, rendre plus gros"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Sous-titres, sous-titrage, CC, sous-titres instantanés, malentendant, perte auditive, transcription en temps réel assistée par ordinateur, synthèse textuelle, sous-titrer"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contraste des couleurs"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motricité, souris"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"prothèses auditives, malentendants, perte auditive, implants cochléaires, appareils d\'amplification, processeurs de son"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motricité, souris, souris externe, souris contrôlée par la tête, souris adaptée, fauteuil roulant, manche"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"prothèses auditives, malentendant, perte auditive, implants cochléaires, appareils d\'amplification, processeurs de son, produit d\'amplificateur de son personnel"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"malentendant, perte auditive, sous-titres, téléimprimeur, ATS"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"trois boutons"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dextérité, motricité, personne âgée, arthrite, LMR, accident vasculaire cérébral, tremblements, sclérose en plaques, infirmité motrice cérébrale, trémulation, lésion due aux mouvements répétitifs, main"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retard, dextérité, personne âgée"</string>
<string name="print_settings" msgid="8519810615863882491">"Impression"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Désactivé"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 service d\'impression activé}one{# service d\'impression activé}other{# services d\'impression activés}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Seuil à partir duquel un avertissement relatif à la consommation des données est envoyé : <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Limite d\'utilisation de données : <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Seuil à partir duquel un avertissement relatif à la consommation des données est envoyé : <xliff:g id="ID_1">^1</xliff:g>. Limite d\'utilisation de données : <xliff:g id="ID_2">^2</xliff:g>."</string>
- <string name="operator_warning" msgid="5672761970087591211">"Le suivi de consommation de données du fournisseur de services peut différer de celui de l\'appareil"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclut les données utilisées sur les réseaux cellulaires"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> utilisés"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Activer une alerte"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Service de remplissage auto"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Service de remplissage automatique par défaut"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Mots de passe"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Services de mots de passe, de clés d\'accès et de données"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Services de mots de passe, de clés d\'accès et de données"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Fournisseurs supplémentaires"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# mot de passe}one{# mot de passe}other{# mots de passe}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatique, remplir, remplissage automatique, mot de passe"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatique, remplissage, remplissage automatique, données, clé d\'accès, mot de passe"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Assurez-vous de faire confiance à cette application</b> <br/> <br/> <xliff:g id=app_name example=Google Remplissage automatique>%1$s</xliff:g> utilise les éléments affichés à l\'écran pour déterminer les champs qui peuvent bénéficier de l\'entrée automatique."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Utiliser <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> utilise ce qui se trouve à l\'écran pour déterminer les données qui peuvent être remplies automatiquement. Les nouveaux renseignements, notamment les clés d\'accès et les mots de passe, seront dorénavant enregistrés ici."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Services de mots de passe, de clés d\'accès et de données"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Services de mots de passe, de clés d\'accès et de données"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Désactiver %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Désactiver ce service?</b> <br/> <br/> Lorsque vous vous connectez, les renseignements enregistrés, comme les mots de passe, les clés d\'accès, les modes de paiement, ou tout autre renseignement, ne seront pas remplis. Pour utiliser vos renseignements enregistrés, choisissez un mot de passe, une clé d\'accès ou un service de données."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Utiliser %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s se sert des données affichées à l\'écran pour déterminer ce qui peut être rempli automatiquement."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limite atteinte pour les services de mots de passe, de clés d\'accès et de données"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Vous pouvez disposer d\'un maximum de cinq services de mots de passe, de clés d\'accès et de données actifs en même temps. Désactivez un service pour en ajouter d\'autres."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limite atteinte pour les services de mots de passe, de clés d\'accès et de données"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Vous pouvez disposer d\'un maximum de cinq services de mots de passe, de clés d\'accès et de données actifs en même temps. Désactivez un service pour en ajouter d\'autres."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Désactiver"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Remplissage automatique"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Niveau de journalisation"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Le son des supports compatibles devient plus immersif"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Suivi de la tête"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Le son est modifié en fonction des mouvements de votre tête pour produire un son plus naturel"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type d\'appareil audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Inconnu"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Haut-parleur"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Écouteurs"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Trousse mains libres"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Autre"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitation du taux de téléchargement sur le réseau"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurez la limitation du taux d\'entrée sur la bande passante qui est appliquée à tous les réseaux qui fournissent une connectivité Internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurer la limitation du taux de téléchargement sur le réseau"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Désinstaller l\'application"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Applications installées au cours du dernier mois}one{Applications installées au cours du dernier (#) mois}other{Applications installées au cours des # derniers mois}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Applications installées il y a plus de # mois}one{Applications installées il y a plus de # mois}other{Applications installées il y a plus de # mois}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Proportions"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Choisissez les proportions pour visualiser cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Applications suggérées"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Applications que vous avez remplacées"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Application par défaut"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Plein écran"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Moitié de l\'écran"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Proportions de l\'appareil"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"L\'application redémarrera lorsque vous aurez modifié les proportions. Vous pourriez perdre des modifications non enregistrées."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Capteur d\'empreintes digitales"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Notifications lumineuses"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"À propos des notifications lumineuses"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Moyen"</string>
<string name="contrast_high" msgid="3988567609694797696">"Élevé"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Cette application ne peut être ouverte que dans une seule fenêtre."</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Service activé"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Service désactivé"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Raccourci désactivé"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Activé"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Fonctionnalité désactivée"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Désactivé"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Désactivé"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Activée"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Désactivée"</string>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 561dfed..87c7699 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Après 1 minute"</item>
<item msgid="1574040255478150028">"Après 5 minutes"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Activer la luminosité adaptative pour prolonger l\'autonomie de la batterie"</item>
+ <item msgid="2256666063790193306">"Réduire le délai de mise en veille de l\'écran pour prolonger l\'autonomie de la batterie"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 5bc9c51..2736233 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Non défini"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Féminin"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculin"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Retirer la langue sélectionnée ?}one{Retirer la langue sélectionnée ?}other{Retirer les langues sélectionnées ?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Le texte s\'affichera dans une autre langue."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Impossible de supprimer toutes les langues"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Déverrouillage par reconnaissance faciale et la <xliff:g id="WATCH">%s</xliff:g> ajouté"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Visage, empreinte digitale et <xliff:g id="WATCH">%s</xliff:g> ajoutés"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Visage, empreintes digitales et <xliff:g id="WATCH">%s</xliff:g> ajoutés"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurer votre montre"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Le Déverrouillage par une montre est un autre moyen pratique de déverrouiller ce téléphone, par exemple, lorsque vos doigts sont mouillés ou que votre visage n\'est pas reconnu.\n\nVous pouvez utiliser votre montre pour déverrouiller ce téléphone lorsque vous :"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Pas maintenant"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuer"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Plus"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Fonctionnement"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Votre montre doit être déverrouillée, sur votre poignet et à proximité de ce téléphone. Tant que vous porterez votre montre au poignet, vous n\'aurez pas besoin de la déverrouiller de nouveau."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Lorsque ce téléphone est déverrouillé, vous recevez une notification sur votre montre. S\'il a été déverrouillé alors que vous n\'en aviez pas l\'intention, appuyez sur la notification pour verrouiller à nouveau le téléphone."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vous avez le contrôle"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Vous pouvez retirer à tout moment votre montre de Déverrouillage par une montre dans les paramètres"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Appuyer sur une notification"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Balayer vers le haut sur l\'écran de verrouillage"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Sélectionner votre montre"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Montres disponibles"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annuler"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmer"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Vous avez terminé !"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Vous pouvez désormais utiliser votre montre pour déverrouiller ce téléphone lorsque vous balayez l\'écran de verrouillage vers le haut ou appuyez sur une notification."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"OK"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Déverrouillage par une montre"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Vous pouvez utiliser votre montre pour déverrouiller ce téléphone lorsque vous balayez l\'écran de verrouillage vers le haut ou appuyez sur une notification."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Pour utiliser le Déverrouillage par une montre, votre montre doit être déverrouillée, à votre poignet, à proximité et connectée à ce téléphone. Si la connexion est interrompue, vous devrez déverrouiller le téléphone avant de pouvoir utiliser le Déverrouillage par une montre.\n\nÀ noter :\nVous ne pouvez avoir qu\'une seule montre configurée à la fois. Retirez la montre actuelle pour pouvoir en ajouter une autre."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"En savoir plus sur le Déverrouillage par une montre"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ajouter une montre"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Retirer la montre"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Déverrouillage par empreinte digitale et reconnaissance faciale"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Déverrouillage par reco. faciale et empreinte pour le travail"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuration requise"</string>
@@ -515,7 +542,7 @@
<string name="lock_settings_picker_update_lock_title" msgid="536853138943415927">"Choisir un nouveau verrouillage de l\'écran"</string>
<string name="lock_settings_picker_new_profile_lock_title" msgid="2270462215256413800">"Choisir le verrouillage des applis pro"</string>
<string name="lock_settings_picker_update_profile_lock_title" msgid="5929068163516308927">"Choisir un nouveau verrouillage de profil pro"</string>
- <string name="lock_settings_picker_biometrics_added_security_message" msgid="1105247657304421299">"Pour plus de sécurité, définissez une méthode secondaire pour déverrouiller l\'écran"</string>
+ <string name="lock_settings_picker_biometrics_added_security_message" msgid="1105247657304421299">"Pour plus de sécurité, définissez une méthode secondaire pour verrouiller l\'écran"</string>
<string name="lock_settings_picker_biometric_message" msgid="2609666443527262781">"Choisissez une méthode secondaire pour le verrouillage de l\'écran"</string>
<string name="lock_settings_picker_admin_restricted_personal_message" msgid="3532653662159888328">"Si vous oubliez le verrouillage de l\'écran, votre administrateur ne peut pas le réinitialiser."</string>
<string name="lock_settings_picker_admin_restricted_personal_message_action" msgid="5956615234246626264">"Définir un autre verrouillage pour le profil pro"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Vous devrez peut-être également saisir ce mot de passe sur l\'autre appareil."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirmez pour associer à l\'ensemble coordonné"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Autoriser l\'accès à vos contacts et à l\'historique des appels"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Autoriser l\'accès aux contacts et à l\'historique des appels"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Les infos seront utilisées pour les notifications d\'appels, entre autres"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Impossible de se connecter à <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Appareils disponibles"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Partage du Wi‑Fi avec cet appareil…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connexion…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Partager le point d\'accès"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Confirmer votre identité"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirmer que c\'est bien vous"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Mot de passe Wi-Fi : <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Mot de passe du point d\'accès : <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Connexion automatique"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Réseau hors de portée"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Supprimer"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modifier"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Échec de la suppression du réseau."</string>
<string name="wifi_save" msgid="2312643132472226807">"Enregistrer"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Échec de l\'enregistrement du réseau."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Annuler"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Si la fréquence préférée n\'est pas disponible, votre point d\'accès peut en utiliser une autre. Les paramètres de sécurité du point d\'accès peuvent changer si vous modifiez la fréquence."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Non disponible avec 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Les paramètres de sécurité peuvent changer si vous modifiez la fréquence du point d\'accès"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Activation du point d\'accès Wi-Fi en cours…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Désactivation du point d\'accès Wi-Fi en cours…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Partage de connexion non disponible"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Mot de passe oublié ?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Schéma oublié ?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Code oublié ?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Utilisez le schéma de votre appareil pour continuer"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Saisissez le code de votre appareil pour continuer"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Saisissez le mot de passe de votre appareil pour continuer"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utilisez le schéma de votre profil professionnel pour continuer."</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dessinez votre schéma pour continuer."</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Saisissez votre code PIN pour continuer."</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Saisissez votre mot de passe pour continuer."</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dessinez votre schéma professionnel pour continuer."</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Saisissez le code PIN de votre profil professionnel pour continuer."</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Saisissez le mot de passe du profil professionnel pour continuer."</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Pour plus de sécurité, utilisez le schéma de l\'appareil"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Aucune description fournie"</string>
<string name="settings_button" msgid="2195468788019730377">"Paramètres"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilité à la lumière, photophobie, thème sombre, migraine, mal de tête, mode lecture, mode nuit, réduire la luminosité, point blanc"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Simplicité d\'utilisation, facilité d\'accès, assistance, aide"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vision, audition, non-voyant, sourd, motricité, dextérité, assistance, facilité d\'utilisation, facilité d\'accès, main, aide"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Agrandisseur de fenêtre, Zoom, Agrandissement, Déficience visuelle, Agrandir, zoomer"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Sous-titres, sous-titrage, ST, Transcription instantanée, malentendant, perte d\'audition, sous-titrage en temps réel, reconnaissance vocale, sous-titre"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contraste des couleurs"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"moteur, souris"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"appareils auditifs, malentendant, perte d\'audition, implants cochléaires, appareils amplificateurs, processeurs audio"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motricité, souris, souris externe, head mouse, souris adaptative, fauteuil roulant, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"appareils auditifs, malentendant, perte d\'audition, implants cochléaires, appareils amplificateurs, processeurs audio, CRAU"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"malentendant, perte d\'audition, sous-titres, téléscripteur, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"trois boutons"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dextérité, motricité, senior, arthrite, TMS, accident vasculaire cérébral, tremblements, sclérose en plaques, paralysie cérébrale, troubles musculosquelettiques, main"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"retard, dextérité, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Impression"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Désactivé"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 service d\'impression activé}one{# service d\'impression activé}other{# services d\'impression activés}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Avertissement sur les données : <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Limite de données : <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Avertissement sur les données : <xliff:g id="ID_1">^1</xliff:g> – Limite de données : <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Le suivi de consommation de votre opérateur peut différer de celui qui est effectué sur votre appareil."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Les données consommées via les réseaux d\'opérateurs sont exclues"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> utilisé(s)"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Activer l\'avertissement"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Service de saisie automatique"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Service de saisie automatique par défaut"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Mots de passe"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Mots de passe, clés d\'accès et services de données"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Mots de passe, clés d\'accès et services de données"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Autres fournisseurs"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# mot de passe}one{# mot de passe}other{# mots de passe}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatique, saisie, saisie automatique, mot de passe"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, remplir, remplir automatiquement, données, clé d\'accès, mot de passe"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Assurez-vous que cette appli est fiable</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> se sert de ce qui figure à l\'écran pour déterminer ce qui peut être saisi automatiquement."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Utiliser <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> utilise ce qui est affiché à l\'écran pour déterminer ce qui peut être saisi automatiquement. Les nouveaux mots de passe, clés d\'accès et autres infos seront désormais enregistrés ici."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Mots de passe, clés d\'accès et services de données"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Mots de passe, clés d\'accès et services de données"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Désactiver %1$s ?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Désactiver ce service ?</b> <br/> <br/> Les infos enregistrées telles que les mots de passe, clés d\'accès, modes de paiement et autres ne seront pas renseignées quand vous vous connecterez. Pour utiliser vos infos enregistrées, choisissez un mot de passe, une clé d\'accès ou un service de données."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Utiliser %1$s ?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s utilise ce qui est affiché à l\'écran pour déterminer ce qui peut être saisi automatiquement."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limite de mots de passe, clés d\'accès et services de données"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Vous pouvez avoir jusqu\'à cinq mots de passe, clés d\'accès et services de données actifs à la fois. Pour en ajouter un, désactivez-en un."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limite de mots de passe, clés d\'accès et services de données"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Vous pouvez avoir jusqu\'à cinq mots de passe, clés d\'accès et services de données actifs à la fois. Pour en ajouter un, désactivez-en un autre."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Désactiver"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Saisie automatique"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Niveau de journalisation"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Le son des appareils multimédias compatibles devient plus immersif"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Suivi des mouvements de la tête"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Le son change quand vous bougez la tête pour un son plus naturel"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type d\'appareil audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Inconnu"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Haut-parleur"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Casque"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit mains libres"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Autre"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitation du débit de téléchargement du réseau"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurer la limite du débit en entrée de la bande passante réseau, qui est appliquée à tous les réseaux offrant une connectivité Internet"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurer la limitation du débit de téléchargement du réseau"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Désinstaller l\'appli"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Applis installées depuis # mois}one{Applis installées depuis # mois}other{Applis installées depuis # mois}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Applis installées il y a plus de # mois}one{Applis installées il y a plus de # mois}other{Applis installées il y a plus de # mois}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Format"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Sélectionnez un format dans lequel afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Applis suggérées"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Applis que vous avez ignorées"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Paramètre par défaut de l\'appli"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Plein écran"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Moitié de l\'écran"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Format de l\'appareil"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Si vous modifiez le format, l\'application redémarrera. Vous risquez de perdre les modifications non enregistrées."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Lecteur d\'empreinte digitale"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Notifications avec flash"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"À propos des notifications avec flash"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Moyen"</string>
<string name="contrast_high" msgid="3988567609694797696">"Élevé"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Cette appli ne peut être ouverte que dans 1 fenêtre"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Service activé"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Service désactivé"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Raccourci désactivé"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Activé"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Désactivé"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Désactivé"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Désactivé"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Activé"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Désactivé"</string>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index 0a49979..5cd3f52 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Tras 1 minuto"</item>
<item msgid="1574040255478150028">"Tras 5 minutos"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Activar o brillo intelixente para prolongar a duración da batería"</item>
+ <item msgid="2256666063790193306">"Reducir o tempo de espera da pantalla para prolongar a duración da batería"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 2921fe3..0cc82df 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Sen especificar"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"En feminino"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"En masculino"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Queres quitar o idioma seleccionado?}other{Queres quitar os idiomas seleccionados?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"O texto mostrarase noutro idioma."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Non se poden quitar todos os idiomas"</string>
@@ -388,6 +390,41 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Engadíronse o recoñecemento facial e o dispositivo (<xliff:g id="WATCH">%s</xliff:g>)"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Engadíronse o recoñecemento facial, a impresión dixital e o dispositivo (<xliff:g id="WATCH">%s</xliff:g>)"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Engadíronse o recoñecemento facial, as impresións dixitais e o dispositivo (<xliff:g id="WATCH">%s</xliff:g>)"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar o teu reloxo"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"A función Desbloqueo mediante reloxo ofréceche outra forma de desbloquear o teléfono facilmente en determinadas situacións (por exemplo, cando teñas os dedos mollados ou non se recoñeza a túa cara).\n\nPodes usar o reloxo para desbloquear o teléfono ao realizar estas accións:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Agora non"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Máis"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Como funciona?"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"O reloxo debe estar desbloqueado, no pulso e dentro do alcance do teléfono. Non precisas volver desbloquear o reloxo mentres o teñas posto."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Cando o teléfono estea desbloqueado, enviaráseche unha notificación ao reloxo. No caso de que desbloquees o teléfono sen querer, toca a notificación para bloquealo de novo."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ti tes o control"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Cando queiras, podes acceder a Configuración e desactivar a función Desbloqueo mediante reloxo"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toca unha notificación"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Pasa o dedo cara arriba na pantalla de bloqueo"</string>
+ <!-- no translation found for security_settings_remoteauth_enroll_enrolling_title (313016997943607675) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_enroll_enrolling_list_heading (8227585438932911013) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_enroll_enrolling_disagree (1670201454188049863) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_enroll_enrolling_agree (7048336252635730908) -->
+ <skip />
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Está todo listo"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Xa podes usar o reloxo para desbloquear este teléfono cando pases o dedo cara arriba na pantalla de bloqueo ou toques unha notificación"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Feito"</string>
+ <!-- no translation found for security_settings_remoteauth_settings_title (1564912618737165129) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_description (2758239650119457964) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_info_footer (795894033901478120) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_learn_more (5653556124819260050) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_register_new_authenticator (9191331738306527887) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_remove_device (2436226120578851282) -->
+ <skip />
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impresión dixital e desbloqueo facial"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueo dactilar e facial para o traballo"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Cómpre realizar o proceso de configuración"</string>
@@ -651,6 +688,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"É posible que tamén teñas que escribir esta clave de acceso no outro dispositivo."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirma que queres vincular o conxunto coordinado"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir o acceso aos teus contactos e ao historial de chamadas"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Permitir tamén o acceso aos contactos e ao historial de chamadas"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"A información empregarase para avisos de chamadas e moito máis"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Non se puido conectar a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos dispoñibles"</string>
@@ -812,7 +851,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartindo a wifi con este dispositivo…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Compartir zona wifi"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica a túa identidade"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verificar que es ti"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Contrasinal da rede wifi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Contrasinal da zona wifi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conectar automaticamente"</string>
@@ -852,7 +891,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Estás fóra da zona de cobertura da rede"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Esquecer"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Erro ao esquecer a rede"</string>
<string name="wifi_save" msgid="2312643132472226807">"Gardar"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Erro ao gardar a rede"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -924,6 +962,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Se a túa frecuencia preferida non está dispoñible, é posible que a zona wifi use unha distinta. Pode que a configuración de seguranza da zona wifi cambie se modificas a frecuencia."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Non dispoñible con 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"A configuración de seguranza pode cambiar se modificas a frecuencia da zona wifi"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Activando zona wifi..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Desactivando zona wifi..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Non está dispoñible a conexión compartida"</string>
@@ -1449,10 +1493,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Esqueciches o contrasinal?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Esqueciches o padrón?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Esqueciches o PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Utiliza o padrón do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Escribe o PIN do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Introduce o contrasinal do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utiliza o padrón do traballo para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Debuxa o padrón para continuar"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Mete o PIN para continuar"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Mete o contrasinal para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Debuxa o padrón do perfil de traballo para continuar"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Escribe o PIN do traballo para continuar"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Introduce o contrasinal do traballo para continuar"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Utiliza o padrón do dispositivo para conseguir unha maior seguranza"</string>
@@ -2128,7 +2172,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ningunha descrición fornecida."</string>
<string name="settings_button" msgid="2195468788019730377">"Configuración"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidade á luz, fotofobia, tema escuro, xaqueca, dor de cabeza, modo de lectura, modo nocturno, baixar o brillo, punto branco"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidade de uso, fácil acceso, asistencia, asistencial"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"visión, audición, cegueira, xordeira, motricidade, destreza, asistencial, asistencia, facilidade de uso, facilidade de acceso, man, axuda"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Lupa de ventá, zoom, ampliación, visión reducida, aumentar tamaño, agrandar"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Subtítulos, subtitulado, Transcrición instantánea, problemas auditivos, perda de audición, subtitulado en tempo real, CART, conversión de voz a texto, subtítulo"</string>
@@ -2143,10 +2187,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contraste de cor"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, rato"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"audiófono, problemas auditivos, perda de audición, implantes cocleares, dispositivos de amplificación, procesadores de sons"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motricidade, rato, rato externo, rato de cabeza, rato adaptativo, cadeira de rodas, panca de control"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"audiófono, problemas auditivos, perda de audición, implantes cocleares, dispositivos de amplificación, procesadores de sons, amplificador de sons"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"problemas auditivos, perda de audición, subtítulos, teletipo, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tres botóns"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motricidade, persoa maior, artrite, LER, derramo, tremor, esclerose múltiple, parálise cerebral, lesión por esforzo repetitivo, man"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atraso, destreza, persoa maior"</string>
<string name="print_settings" msgid="8519810615863882491">"Impresión"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desactivado"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Hai 1 servizo de impresión activado}other{Hai # servizos de impresión activados}}"</string>
@@ -3795,7 +3842,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Aviso de consumo de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Límite de datos: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Aviso de consumo de datos: <xliff:g id="ID_1">^1</xliff:g>/Límite de datos: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"A maneira na que o operador contabiliza os datos usados pode ser diferente á do dispositivo"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclúe os datos usados nas redes dos operadores"</string>
<string name="data_used_template" msgid="8229342096562327646">"Datos usados: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Definir aviso de consumo de datos"</string>
@@ -4094,7 +4140,8 @@
<string name="autofill_app" msgid="7595308061826307921">"Servizo de autocompletar"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Servizo de autocompletar predeterminado"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Contrasinais"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Contrasinais, claves de acceso e servizos de datos"</string>
+ <!-- no translation found for credman_chosen_app_title (872524130208251505) -->
+ <skip />
<string name="credman_credentials" msgid="4931371941253324143">"Provedores adicionais"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# contrasinal}other{# contrasinais}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automaticamente, completar, autocompletar, contrasinal"</string>
@@ -4102,13 +4149,16 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automático, completar, autocompletar, datos, clave de acceso, contrasinal"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Asegúrate de que confías nesta aplicación</b> <br/> <br/> <xliff:g id=app_name example=Autocompletar de Google>%1$s</xliff:g> utiliza o contido da pantalla para determinar o que se pode completar."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Utilizas <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> usa o que aparece na pantalla para determinar o que se pode autocompletar. A partir de agora, determinada información nova (contrasinais, claves de acceso e outros datos) gardarase aquí."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Contrasinais, claves de acceso e servizos de datos"</string>
+ <!-- no translation found for credman_picker_title (8191267620665129205) -->
+ <skip />
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Queres desactivar %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Queres desactivar este servizo?</b> <br/> <br/> A información gardada (por exemplo, contrasinais, claves de acceso, métodos de pago…) non se completará cando inicies sesión. Para usar a información gardada, escolle un servizo de contrasinais, claves de acceso ou datos."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Queres usar %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa o que aparece na pantalla para determinar o que se pode completar."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Límite de contrasinais, claves de acceso e servizos de datos"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Podes ter activos ao mesmo tempo un máximo de 5 contrasinais, claves de acceso e servizos de datos. Desactiva un servizo para engadir máis."</string>
+ <!-- no translation found for credman_error_message_title (4099557206946333568) -->
+ <skip />
+ <!-- no translation found for credman_error_message (8334797097200415449) -->
+ <skip />
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desactivar"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autocompletar"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivel de rexistro"</string>
@@ -4672,6 +4722,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O audio dos contidos multimedia compatibles ofréceche unha experiencia máis envolvente"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguimento da cabeza"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Para ofrecerche unha experiencia máis natural, o audio cambia a medida que moves a cabeza"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Descoñecido"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altofalante"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Auriculares"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit para vehículos"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Outro"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Límite de velocidade de descarga da rede"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura o límite de velocidade de entrada da largura de banda da rede, que se aplica a todas as redes que fornecen conectividade a Internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurar o límite de velocidade de descarga da rede"</string>
@@ -4704,24 +4762,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Desinstalar aplicación"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplicacións instaladas no último mes}other{Aplicacións instaladas nos últimos # meses}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplicacións instaladas hai máis de # mes}other{Aplicacións instaladas hai máis de # meses}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Proporción"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Selecciona unha proporción para ver esta aplicación no caso de que non se deseñase para adaptarse ao teu dispositivo (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplicacións recomendadas"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplicacións que ignoraches"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Opción predeterminada da aplicación"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pantalla completa"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Media pantalla"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Proporción do dispositivo"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"A aplicación reiniciarase cando cambies a proporción. Podes perder os cambios que non estean gardados."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensor de impresión dixital"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Notificacións con luz"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Acerca das notificacións con luz"</string>
@@ -4756,10 +4808,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Nivel medio"</string>
<string name="contrast_high" msgid="3988567609694797696">"Nivel alto"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esta aplicación só se pode abrir en 1 ventá"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Servizo activado"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Servizo desactivado"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Atallo desactivado"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Opción activada"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Opción desactivada"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Opción desactivada"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Opción desactivada"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Opción activada"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Opción desactivada"</string>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index e1457d7..2fe3d3a 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 મિનિટ પછી"</item>
<item msgid="1574040255478150028">"5 મિનિટ પછી"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"બૅટરીની આવરદા વધારવા માટે અડૅપ્ટિવ બ્રાઇટનેસ ચાલુ કરો"</item>
+ <item msgid="2256666063790193306">"બૅટરીની આવરદા વધારવા માટે સ્ક્રીનનો સમાપ્તિ સમય ઘટાડો"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index e481bc7..b3ff5a7 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"ઉલ્લેખિત નથી"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"સ્ત્રીલિંગી"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"પુલ્લિંગી"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{પસંદ કરેલી ભાષા કાઢી નાખીએ?}one{પસંદ કરેલી ભાષા કાઢી નાખીએ?}other{પસંદ કરેલી ભાષાઓ કાઢી નાખીએ?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"ટેક્સ્ટ બીજી ભાષામાં પ્રદર્શિત કરવામાં આવશે."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"બધી ભાષાઓ દૂર કરી શકતાં નથી"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ફેસ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ફેસ, ફિંગરપ્રિન્ટ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ફેસ, ફિંગરપ્રિન્ટ અને <xliff:g id="WATCH">%s</xliff:g> ઉમેર્યા"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"તમારી વૉચનું સેટઅપ કરો"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"વૉચ અનલૉકની સુવિધા એ આ ફોનને અનલૉક કરવાની એક અન્ય સુગમ રીત છે, ઉદાહરણ તરીકે જ્યારે તમારી આંગળીઓ ભીની હોય અથવા ચહેરો ઓળખાતો ન હોય ત્યારે.\n\nઆ ફોનને અનલૉક કરવા માટે, તમે તમારી વૉચનો ઉપયોગ તમે આમ કરતા હો ત્યારે કરી શકો છો:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"હમણાં નહીં"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"આગળ વધો"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"વધુ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"તેની કાર્ય કરવાની રીત"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"એ જરૂરી છે કે તમારી વૉચ અનલૉક કરેલી અને તમારા કાંડા પર હોય તથા તમે આ ફોનની પહોંચની અંદર હોવ. તમારી વૉચ તમારા કાંડા પર હોય, ત્યારે તમને તેને ફરી અનલૉક કરવાની જરૂર પડશે નહીં."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"જ્યારે આ ફોન અનલૉક કરવામાં આવે, ત્યારે તમને તમારી વૉચ પર સૂચિત કરવામાં આવશે. જ્યારે તમારો ઇરાદો ન હોય ત્યારે પણ ફોન અનલૉક થયો હોય, તો ફોનને ફરીથી લૉક કરવા માટે નોટિફિકેશન પર ટૅપ કરો."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"તમારા નિયંત્રણમાં છે"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"તમે સેટિંગમાં જઈને કોઈપણ સમયે વૉચ અનલૉકમાંથી તમારી વૉચને કાઢી નાખી શકો છો"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"નોટિફિકેશન પર ટૅપ કરો"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"લૉક સ્ક્રીન પર ઉપરની તરફ સ્વાઇપ કરો"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"તમારી વૉચ પસંદ કરો"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ઉપલબ્ધ વૉચ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"રદ કરો"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"કન્ફર્મ કરો"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"તમે બધી રીતે તૈયાર છો!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"લૉક સ્ક્રીન પર ઉપરની તરફ સ્વાઇપ કરો અથવા કોઈ નોટિફિકેશનને ટૅપ કરો ત્યારે આ ફોનને અનલૉક કરવા માટે તમે હવે તમારી વૉચનો ઉપયોગ કરી શકો છો"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"થઈ ગયું"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"વૉચ અનલૉક"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"લૉક સ્ક્રીન પર ઉપરની તરફ સ્વાઇપ કરો અથવા કોઈ નોટિફિકેશનને ટૅપ કરો ત્યારે આ ફોનને અનલૉક કરવા માટે તમે તમારી વૉચનો ઉપયોગ કરી શકો છો"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"વૉચ અનલૉકનો ઉપયોગ કરવા માટે, તમારી વૉચ અનલૉક કરેલી, તમારા કાંડા પર, પહોંચમાં અને આ ફોન સાથે કનેક્ટેડ હોવી આવશ્યક છે. જો કનેક્શનમાં વિક્ષેપ આવે, તો તમે વૉચ અનલૉકનો ઉપયોગ કરી શકો તે પહેલાં તમારે ફોનને અનલૉક કરવાની જરૂર પડશે.\n\nધ્યાનમાં રાખો:\nતમે એક સમયે ફક્ત એક વૉચ સેટ કરી શકો છો. કોઈ અન્ય વૉચ ઉમેરવા માટે, પહેલાં હમણાંની વૉચ કાઢી નાખો."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"વૉચ અનલૉક સુવિધા વિશે વધુ જાણો"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"વૉચ ઉમેરો"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"વૉચ કાઢી નાખો"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ફિંગરપ્રિન્ટ અને ફેસ અનલૉક"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ઑફિસની પ્રોફાઇલ માટે ફેસ અને ફિંગરપ્રિન્ટ અનલૉકની સુવિધા"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"સેટઅપ જરૂરી છે"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"તમારે આ પાસકીને અન્ય ઉપકરણ પર પણ લખવાની જરૂર પડી શકે છે."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"સુસંગત સેટ સાથે જોડાણ બનાવવાનું કન્ફર્મ કરો"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"તમારા સંપર્કો અને કૉલ ઇતિહાસના ઍક્સેસની મંજૂરી આપો"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"સંપર્કો અને કૉલ ઇતિહાસના ઍક્સેસની પણ મંજૂરી આપો"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"માહિતીનો ઉપયોગ કૉલની ઘોષણાઓ અને વધુ બાબતો માટે કરવામાં આવશે"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> સાથે કનેક્ટ કરી શકાયું નથી."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ઉપલબ્ધ ડિવાઇસ"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"આ ડિવાઇસ સાથે વાઇ-ફાઇ શેર કરી રહ્યાં છીએ…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"કનેક્ટ થઈ રહ્યું છે…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"હૉટસ્પૉટ શેર કરો"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"એ તમે જ છો તે ચકાસો"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"પોતાની ખાતરી કરો"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"વાઇ-ફાઇનો પાસવર્ડ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"હૉટસ્પૉટનો પાસવર્ડ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"ઑટોમૅટિક રીતે કનેક્ટ કરો"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"નેટવર્ક રેન્જમાં નથી"</string>
<string name="wifi_forget" msgid="3485573280364015620">"ભૂલી જાઓ"</string>
<string name="wifi_modify" msgid="5127926476383659412">"ફેરફાર કરો"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"નેટવર્ક ભૂલવામાં નિષ્ફળ થયાં"</string>
<string name="wifi_save" msgid="2312643132472226807">"સાચવો"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"નેટવર્ક સાચવવામાં નિષ્ફળ થયાં."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"રદ કરો"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"જો તમે પસંદ કરેલી ફ્રિકવન્સી ઉપલબ્ધ ન હોય, તો તમારું હૉટસ્પૉટ કોઈ અલગ ફ્રિકવન્સીનો ઉપયોગ કરી શકે છે. જો તમે ફ્રિકવન્સી બદલો, તો હૉટસ્પૉટના સુરક્ષા સેટિંગ બદલાઈ શકે છે."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz સાથે ઉપલબ્ધ નથી"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"જો તમે હૉટસ્પૉટની ફ્રિકવન્સીને બદલો છો તો સુરક્ષા સેટિંગ બદલાઈ શકે છે"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"હૉટસ્પૉટ ચાલુ કરી રહ્યું છે…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"હૉટસ્પૉટ બંધ કરી રહ્યું છે…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ઇન્ટરનેટ શેર કરવાની સુવિધા ઉપલબ્ધ નથી"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"તમારો પાસવર્ડ ભૂલી ગયાં?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"તમારા પૅટર્નને ભૂલી ગયાં?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"તમારો પિન ભૂલી ગયાં?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"આગળ વધવા માટે તમારી ડિવાઇસ પૅટર્નનો ઉપયોગ કરો"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"આગળ વધવા માટે તમારો ડિવાઇસ પિન દાખલ કરો"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ચાલુ રાખવા માટે તમારા ડિવાઇસનો પાસવર્ડ દાખલ કરો"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ચાલુ રાખવા માટે તમારી કાર્ય પેટર્નનો ઉપયોગ કરો"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ચાલુ રાખવા માટે તમારી પૅટર્ન દોરો"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"વધારાની સુરક્ષા માટે, તમારા ઉપકરણની પેટર્નનો ઉપયોગ કરો"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"કોઈ વર્ણન પ્રદાન કરવામાં આવેલ નથી."</string>
<string name="settings_button" msgid="2195468788019730377">"સેટિંગ"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"લાઇટની સંવેદિતા, ફોટોફોબિયા, ઘેરી થીમ, આધાશીશી, માથાનો દુખાવો, વાંચવાનો મોડ, રાત્રિ મોડ, બ્રાઇટનેસ ઓછી કરો, વ્હાઇટ પૉઇન્ટ"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ઉપયોગની સરળતા, ઍક્સેસની સરળતા, સહાયક, સહાયકારી"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"દ્રષ્ટિ, શ્રવણશક્તિ, અંધ, બધિર, મોટર, કાયાકૌશલ્ય, સહાયક, સહાયતા, ઉપયોગમાં સરળતા, ઍક્સેસની સરળતા, હાથ, સહાય"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"વિંડો મોટી કરવાની સુવિધા, નાનું-મોટું કરો, મોટું કરવું, ઓછું વિઝન, વધારો, વધુ મોટું કરો"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"કૅપ્શન, ઉપશીર્ષકો, CC, Live Transcribe, સાંભળવાની સમસ્યા, CART, સ્પીચ ટૂ ટેક્સ્ટ, સબટાઇટલ"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"કલર કોન્ટ્રાસ્ટ"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"મોટર, માઉસ"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"સાંભળવામાં મદદ આપતા યંત્રો, ઓછું સાંભળવાની સમસ્યા, સાંભળવાની સમસ્યા, કૉક્લિઅર ઇમ્પ્લાન્ટ, ઍમ્પ્લિફિકેશન ડિવાઇસ, સાઉન્ડ પ્રોસેસર"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"મોટર, માઉસ, બાહ્ય માઉસ, હેડ માઉસ, અડૅપ્ટિવ માઉસ, વ્હીલચેર, જૉયસ્ટિક"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"સાંભળવામાં મદદ આપતા યંત્રો, ઓછું સાંભળવાની સમસ્યા, બહેરાશ, કૉક્લિઅર ઇમ્પ્લાન્ટ, ઍમ્પ્લિફિકેશન ડિવાઇસ, સાઉન્ડ પ્રોસેસર, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"સાંભળવાની સમસ્યા, બહેરાશ, કૅપ્શન, ટેલિટાઇપ, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ત્રણ બટન"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"કાયાકૌશલ્ય, મોટર, વરિષ્ઠ, સંધિવા, rsi, સ્ટ્રોક, ધ્રુજારી, મલ્ટીપલ સ્ક્લેરોસિસ, મગજનો લકવો, કંપન, પુનરાવર્તિત તાણની ઇજા, હાથ"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"વિલંબ, કાયાકૌશલ્ય, વરિષ્ઠ"</string>
<string name="print_settings" msgid="8519810615863882491">"પ્રિન્ટિંગ"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"બંધ"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 પ્રિન્ટ સેવા ચાલુ છે}one{# પ્રિન્ટ સેવા ચાલુ છે}other{# પ્રિન્ટ સેવા ચાલુ છે}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"ડેટા ચેતવણી <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"ડેટા મર્યાદા <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ડેટા ચેતવણી <xliff:g id="ID_1">^1</xliff:g> / ડેટા મર્યાદા <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"કૅરિઅર ડેટા ગણતરી, ડિવાઇસ ગણતરીથી અલગ હોઈ શકે છે"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"મોબાઇલ ઑપરેટરના નેટવર્ક દ્વારા વપરાયેલો ડેટા શામેલ નથી"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ઉપયોગ થયો"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ડેટા ચેતવણી સેટ કરો"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"ઑટોમૅટિક રીતે ભરવાની સુવિધા"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ડિફૉલ્ટ \'ઑટોમૅટિક રીતે ભરવાની સુવિધા\'"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"પાસવર્ડ"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"પાસવર્ડ, પાસકી અને ડેટા સંબંધિત સેવાઓ"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"પાસવર્ડ, પાસકી, અને ડેટા સંબંધિત સેવાઓ"</string>
<string name="credman_credentials" msgid="4931371941253324143">"વધારાના પ્રદાતાઓ"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# પાસવર્ડ}one{# પાસવર્ડ}other{# પાસવર્ડ}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ઑટો, ભરો, આપમેળે ભરવાની સુવિધા, પાસવર્ડ"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ઑટો, ભરો, ઑટોમૅટિક રીતે ભરવાની સુવિધા, ડેટા, પાસકી, પાસવર્ડ"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>ખાતરી કરો કે તમે આ ઍપનો વિશ્વાસ કરો છો</b> <br/> <br/> <xliff:g id=app_name example=Google ઑટોમૅટિક રીતે ભરવાની સુવિધા>%1$s</xliff:g> તમારી સ્ક્રીન પર શું છે તેનો ઉપયોગ એ નક્કી કરવા કરે છે કે ઑટોમૅટિક રીતે શું દાખલ થશે."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"પાસવર્ડ, પાસકી અને ડેટા સંબંધિત સેવાઓ"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"પાસવર્ડ, પાસકી, અને ડેટા સંબંધિત સેવાઓ"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$sને બંધ કરીએ?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>શું આ સેવા બંધ કરીએ?</b> <br/> <br/> જ્યારે તમે સાઇન ઇન કરશો ત્યારે પાસવર્ડ, પાસકી, ચુકવણી પદ્ધતિઓ અને અન્ય માહિતી જેવી સાચવેલી માહિતી ભરવામાં આવશે નહીં. તમારી સાચવેલી માહિતીનો ઉપયોગ કરવા માટે, કોઈ પાસવર્ડ, પાસકી કે ડેટા સેવા પસંદ કરો."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$sનો ઉપયોગ કરીએ?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"ઑટોમૅટિક રીતે શું ભરી શકાય તે નક્કી કરવા માટે %1$s તમારી સ્ક્રીન પર જે છે તેનો ઉપયોગ કરે છે."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"પાસવર્ડ, પાસકી અને ડેટા સંબંધિત સેવાઓની મર્યાદા"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"તમે એક જ સમયે 5 પાસવર્ડ, પાસકી અને ડેટા સંબંધિત સેવાઓ સક્રિય રાખી શકો છો. વધુ સેવા ઉમેરવા માટે, કોઈ સેવાને બંધ કરો."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"પાસવર્ડ, પાસકી, અને ડેટા સંબંધિત સેવાઓની મર્યાદા"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"તમે એક જ સમયે 5 પાસવર્ડ, પાસકી, અને ડેટા સંબંધિત સેવાઓ સક્રિય રાખી શકો છો. વધુ સેવા ઉમેરવા માટે, કોઈ સેવાને બંધ કરો."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"બંધ કરો"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ઑટોમૅટિક રીતે ભરવાના સેટિંગ"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"લૉગિંગનું સ્તર"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"સુસંગત મીડિયાનો ઑડિયો વધુ ઇમર્સિવ બને છે"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"હેડ ટ્રૅકિંગ"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"વધુ નૈસર્ગિક અવાજ માટે, જેમ તમે તમારું માથું હલાવશો તેમ અવાજમાં ફેરફાર થતો જશે"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ઑડિયો ડિવાઇસનો પ્રકાર"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"અજાણ"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"સ્પીકર"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"હૅડફોન"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"કાર કિટ"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"અન્ય"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"નેટવર્કની ડાઉનલોડ કરવાના દરની મર્યાદા"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ઇન્ટરનેટ કનેક્ટિવિટી પ્રદાન કરતા બધા નેટવર્ક પર લાગુ થતી નેટવર્ક બૅન્ડવિડ્થના પ્રવેશવાના દરની મર્યાદા ગોઠવો."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"નેટવર્કના ડાઉનલોડ કરવાના દરની મર્યાદા ગોઠવો"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"મધ્યમ"</string>
<string name="contrast_high" msgid="3988567609694797696">"વધુ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"આ ઍપ માત્ર 1 વિન્ડોમાં ખોલી શકાય છે"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"સેવા ચાલુ છે"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"સેવા બંધ છે"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"શૉર્ટકટ બંધ છે"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ચાલુ છે"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"બંધ છે"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"બંધ છે"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"બંધ"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ચાલુ"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"બંધ"</string>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 3453830..9141057 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"एक मिनट बाद"</item>
<item msgid="1574040255478150028">"पांच मिनट बाद"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"बैटरी लाइफ़ बढ़ाने के लिए, आस-पास की लाइट के हिसाब से स्क्रीन की रोशनी वाली सुविधा चालू करें"</item>
+ <item msgid="2256666063790193306">"बैटरी लाइफ़ बढ़ाने के लिए, स्क्रीन बंद होने में लगने वाला समय कम करें"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 6d7c93c..bd10072 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"जानकारी नहीं दी गई"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"महिला"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"पुरुष"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{क्या आपको चुनी गई भाषा हटानी है?}one{क्या आपको चुनी गई भाषा हटानी है?}other{क्या आपको चुनी गई भाषाएं हटानी हैं?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"लेख किसी अन्य भाषा में प्रदर्शित किया जाएगा."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"सभी भाषाएं नहीं निकाली जा सकती हैं"</string>
@@ -388,6 +390,41 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"चेहरा और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"चेहरा, फ़िंगरप्रिंट, और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"चेहरा, फ़िंगरप्रिंट, और <xliff:g id="WATCH">%s</xliff:g> सेट अप की गई"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"अपनी स्मार्ट वॉच सेट अप करें"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा, इस फ़ोन को अनलॉक करने का दूसरा आसान तरीका है. जैसे, जब आपकी उंगलियां गीली हों या चेहरे की पहचान न हो.\n\nस्मार्टवॉच का इस्तेमाल करके इस फ़ोन को तब अनलॉक किया जा सकता है, जब:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"अभी नहीं"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"आगे बढ़ें"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"ज़्यादा देखें"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"यह सुविधा कैसे काम करती है"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"आपकी स्मार्टवॉच अनलॉक होनी चाहिए, आपकी कलाई पर बंधी होनी चाहिए, और इस फ़ोन के आस-पास होनी चाहिए. स्मार्टवॉच कलाई पर बंधे होने पर, आपको इसे दोबारा अनलॉक करने की ज़रूरत नहीं होगी."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"इस फ़ोन के अनलॉक होने पर, स्मार्टवॉच पर आपको इसकी सूचना मिलेगी. अगर आपके न चाहने पर भी यह अनलॉक हो जाता है, तो सूचना पर टैप करके फ़ोन को दोबारा लॉक करें."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"आपकी स्मार्ट वॉच का कंट्रोल आपके पास है"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"\'सेटिंग\' में जाकर, स्मार्टवॉच से फ़ोन अनलॉक करने की सुविधा से अपनी स्मार्टवॉच को किसी भी समय हटाया जा सकता है"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"सूचना पर टैप करें"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"लॉक स्क्रीन पर ऊपर की ओर स्वाइप करें"</string>
+ <!-- no translation found for security_settings_remoteauth_enroll_enrolling_title (313016997943607675) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_enroll_enrolling_list_heading (8227585438932911013) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_enroll_enrolling_disagree (1670201454188049863) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_enroll_enrolling_agree (7048336252635730908) -->
+ <skip />
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"आप बिलकुल तैयार हैं!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"अब स्मार्टवॉच का इस्तेमाल करके, इस फ़ोन को अनलॉक किया जा सकता है. इसके लिए, लॉक स्क्रीन पर ऊपर की ओर स्वाइप करें या किसी सूचना पर टैप करें"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"हो गया"</string>
+ <!-- no translation found for security_settings_remoteauth_settings_title (1564912618737165129) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_description (2758239650119457964) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_info_footer (795894033901478120) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_learn_more (5653556124819260050) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_register_new_authenticator (9191331738306527887) -->
+ <skip />
+ <!-- no translation found for security_settings_remoteauth_settings_remove_device (2436226120578851282) -->
+ <skip />
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"फ़िंगरप्रिंट और फ़ेस अनलॉक"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"वर्क प्रोफ़ाइल के लिए, फ़ेस और फ़िंगरप्रिंट अनलॉक की सुविधा"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"सेटअप करना होगा"</string>
@@ -651,6 +688,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"आपको अन्य डिवाइस पर भी यह पासकी लिखनी होगी."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"कोऑर्डिनेटेड सेट से जोड़ने के लिए पुष्टि करें"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"अपने संपर्क और कॉल इतिहास देखने की मंज़ूरी दें"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"संपर्क और कॉल इतिहास को ऐक्सेस करने की भी अनुमति दें"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"इस जानकारी का इस्तेमाल कॉल की सूचना देने और दूसरी चीज़ों के लिए किया जाएगा"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> से कनेक्ट नहीं किया जा सका."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"उपलब्ध ब्लूटूथ डिवाइस"</string>
@@ -812,7 +851,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"इस डिवाइस के साथ वाई-फ़ाई शेयर किया जा रहा है…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"कनेक्ट हो रहा है…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"हॉटस्पॉट शेयर करें"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"पुष्टि करें कि यह आप ही हैं"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"अपनी पहचान की पुष्टि करें"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"वाई-फ़ाई पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"हॉटस्पॉट का पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"अपने-आप कनेक्ट हो जाए"</string>
@@ -852,7 +891,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"नेटवर्क पहुंच से बाहर है"</string>
<string name="wifi_forget" msgid="3485573280364015620">"हटाएं"</string>
<string name="wifi_modify" msgid="5127926476383659412">"बदलें"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"नेटवर्क भूलने में विफल रहा"</string>
<string name="wifi_save" msgid="2312643132472226807">"सेव करें"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"नेटवर्क सहेजने में विफल रहा"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"रद्द करें"</string>
@@ -924,6 +962,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"अगर आपकी पसंद की फ़्रीक्वेंसी उपलब्ध नहीं है, तो आपका हॉटस्पॉट किसी अन्य फ़्रीक्वेंसी का इस्तेमाल कर सकता है. फ़्रीक्वेंसी बदलने पर, हॉटस्पॉट की सुरक्षा की सेटिंग बदल सकती है."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 गीगाहर्ट्ज़ में उपलब्ध नहीं है"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"हॉटस्पॉट की फ़्रीक्वेंसी बदलने पर, सुरक्षा की सेटिंग बदल सकती हैं"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"हॉटस्पॉट को चालू किया जा रहा है…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"हॉटस्पॉट को बंद किया जा रहा है…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"टेदरिंग की सुविधा उपलब्ध नहीं है"</string>
@@ -1449,10 +1493,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"अपना पासवर्ड भूल गए हैं?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"अपना पैटर्न भूल गए हैं?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"अपना पिन भूल गए हैं?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"जारी रखने के लिए अपने डिवाइस के पैटर्न का इस्तेमाल करें"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"जारी रखने के लिए अपने डिवाइस का पिन डालें"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"जारी रखने के लिए अपने डिवाइस का पासवर्ड डालें"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"जारी रखने के लिए अपने काम पैटर्न का उपयोग करें"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"जारी रखने के लिए अपना पैटर्न ड्रॉ करें"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"अतिरिक्त सुरक्षा के लिए, अपने पैटर्न का इस्तेमाल करें"</string>
@@ -2128,7 +2172,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"कोई विवरण नहीं दिया गया."</string>
<string name="settings_button" msgid="2195468788019730377">"सेटिंग"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"लाइट सेंसिटिविटी, फ़ोटोफ़ोबिया, गहरे रंग वाली थीम, माइग्रेन, सिरदर्द, रीडिंग मोड, नाइट मोड, स्क्रीन की चमक कम करें, व्हाइट पॉइंट"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"इस्तेमाल में आसानी, ऐक्सेस करने में आसानी, असिस्टेंस, असिस्टिव"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"देखना, सुनना, अंधा, बहरा, मोटर, डेक्स्टेरिटी, सहायक, असिस्टेंस, इस्तेमाल में आसानी, ऐक्सेस करने में आसानी, हैंड, सहायता"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"विंडो को ज़ूम करके देखने की सुविधा, ज़ूम करना, ज़ूम करने की सुविधा, कम दृष्टि, बड़ा करना, साइज़ बढ़ाना"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"कैप्शन, सबटाइटल, सीसी, Live Transcribe, कम सुनने वाला, सुनने में समस्या, रीयल-टाइम कैप्शनिंग (CART), बोली को लिखाई में बदलना, सबटाइटल"</string>
@@ -2143,10 +2187,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"कलर कंट्रास्ट"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"मोटर, माउस"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"कान की मशीन, कम सुनने की समस्या, सुनने में समस्या, कॉकलीयर इंप्लांट, अन्य एंप्लिफ़िकेशन डिवाइस, साउंड प्रोसेसर"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"मोटर, माउस, एक्सटर्नल माउस, हेड माउस, अडैप्टिव माउस, व्हीलचेयर, जॉयस्टिक"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"कान की मशीन, कम सुनने वाला, सुनने में समस्या, कॉकलीयर इंप्लांट, एंप्लिफ़िकेशन डिवाइस, साउंड प्रोसेसर, पीएसएपी"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"कम सुनने वाला, सुनने में समस्या, कैप्शन, टेलीटाइप, टीटीवाई"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"तीन बटन वाला नेविगेशन"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"डेक्स्टेरिटी, मोटर, सीनियर, अर्थराइटिस, आरएसआई, स्ट्रोक, ट्रेमोर, मल्टिपल स्क्लिरोसिस, सेरब्रल पॉल्ज़ी, शेकिंग, रेपेटिटिव स्ट्रेन इंजरी, हैंड"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"डीले, डेक्स्टेरिटी, सीनियर"</string>
<string name="print_settings" msgid="8519810615863882491">"प्रिंटिंग"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"बंद"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{प्रिंट करने की 1 सेवा चालू है}one{प्रिंट करने की # सेवा चालू है}other{प्रिंट करने की # सेवाएं चालू हैं}}"</string>
@@ -3795,7 +3842,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> डेटा खर्च की चेतावनी"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> डेटा सीमा"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> डेटा खर्च की चेतावनी / <xliff:g id="ID_2">^2</xliff:g> डेटा सीमा"</string>
- <string name="operator_warning" msgid="5672761970087591211">"डेटा खर्च को लेकर मोबाइल और इंटरनेट सेवा देने वाली कंपनी का हिसाब आपके डिवाइस के हिसाब से अलग हो सकता है."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी का इस्तेमाल किया गया डेटा हटा देता है"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> का इस्तेमाल किया गया"</string>
<string name="set_data_warning" msgid="1685771882794205462">"डेटा खर्च की चेतावनी सेट करें"</string>
@@ -4094,7 +4140,8 @@
<string name="autofill_app" msgid="7595308061826307921">"ऑटोमैटिक भरने की सेवा"</string>
<string name="default_autofill_app" msgid="372234803718251606">"पासवर्ड अपने-आप भरने, मैनेज करने, और सेव करने की डिफ़ॉल्ट सेवा"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"पासवर्ड"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"पासवर्ड, पासकी, और डेटा सर्विस"</string>
+ <!-- no translation found for credman_chosen_app_title (872524130208251505) -->
+ <skip />
<string name="credman_credentials" msgid="4931371941253324143">"क्रेडेंशियल देने वाली अन्य सेवाएं"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# पासवर्ड}one{# पासवर्ड}other{# पासवर्ड}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"अपने-आप, भरना, अपने-आप भरने वाला, पासवर्ड"</string>
@@ -4102,13 +4149,16 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"अपने-आप, भरना, अपने-आप भरना, डेटा, पासकी, और पासवर्ड"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>पक्का करें कि आपको इस ऐप्लिकेशन पर भरोसा है</b> <br/> <br/> <xliff:g id=app_name example=Google की मदद से, जानकारी अपने-आप भरने की सुविधा,>%1$s</xliff:g> ऑटोमैटिक भरी जा सकने वाली चीज़ें तय करने के लिए आपकी स्क्रीन पर मौजूद चीज़ों का इस्तेमाल करती है."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"पासवर्ड, पासकी, और डेटा सर्विस"</string>
+ <!-- no translation found for credman_picker_title (8191267620665129205) -->
+ <skip />
<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="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s का इस्तेमाल करना है?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s आपकी स्क्रीन पर मौजूद जानकारी का इस्तेमाल करता है, ताकि अपने-आप भरने वाली जानकारी तय की जा सके."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"पासवर्ड, पासकी, और डेटा सर्विस चुनने की सीमा"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"जानकारी को ऑटोमैटिक तरीके से भरने के लिए, एक समय पर पांच पासवर्ड, पासकी, और डेटा सर्विस चालू रखी जा सकती हैं. कोई और सेवा जोड़ने के लिए, किसी मौजूदा सेवा को बंद करें."</string>
+ <!-- no translation found for credman_error_message_title (4099557206946333568) -->
+ <skip />
+ <!-- no translation found for credman_error_message (8334797097200415449) -->
+ <skip />
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"बंद करें"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ऑटोमैटिक भरने की सुविधा"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"लॉग की गई जानकारी का लेवल"</string>
@@ -4672,6 +4722,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"डिवाइस के साथ काम करने वाले मीडिया पर, ऑडियो का आनंद बेहतर तरीके से लिया जा सकता है"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"सिर के हिलने को ट्रैक करें"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"जब आपका सिर उस तरफ़ घूमता है जहां से आवाज़ आ रही है, तब ऑडियो की आवाज़ ज़्यादा बेहतर सुनाई देती है"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ऑडियो डिवाइस का टाइप"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"कोई जानकारी नहीं है"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"स्पीकर"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"हेडफ़ोन"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"कार किट"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"अन्य"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"नेटवर्क के लिए तय की गई डाउनलोड करने की दर की सीमा"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"नेटवर्क बैंडविड्थ के इन्ग्रेस डेटा ट्रैफ़िक की दर की सीमा को कॉन्फ़िगर करें. यह उन सभी नेटवर्क पर लागू होती है जो इंटरनेट कनेक्टिविटी देते हैं."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"नेटवर्क के लिए तय की गई डाउनलोड करने की दर की सीमा को कॉन्फ़िगर करें"</string>
@@ -4704,24 +4762,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ऐप्लिकेशन अनइंस्टॉल करें"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{पिछले # महीने में इंस्टॉल किए गए ऐप्लिकेशन}one{पिछले # महीने में इंस्टॉल किए गए ऐप्लिकेशन}other{पिछले # महीनों में इंस्टॉल किए गए ऐप्लिकेशन}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ऐप्लिकेशन, # महीने से भी पहले इंस्टॉल किए गए}one{ऐप्लिकेशन, # महीने से भी पहले इंस्टॉल किए गए}other{ऐप्लिकेशन, # महीने से भी पहले इंस्टॉल किए गए}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"आसपेक्ट रेशियो"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"अगर आपके <xliff:g id="DEVICE_NAME">%1$s</xliff:g> की स्क्रीन में ऐप्लिकेशन का आसपेक्ट रेशियो फ़िट नहीं हो रहा है, तो ऐप्लिकेशन के हिसाब से इसे बदलें"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"सुझाए गए ऐप्लिकेशन"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"वे ऐप्लिकेशन जिन्हें आपने ओवरराइड किया है"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ऐप्लिकेशन का डिफ़ॉल्ट आसपेक्ट रेशियो"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"फ़ुल स्क्रीन"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"आधी स्क्रीन"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"डिवाइस का आसपेक्ट रेशियो"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बदलने पर ऐप्लिकेशन रीस्टार्ट हो जाएगा. इससे वे बदलाव मिट सकते हैं जिन्हें सेव नहीं किया गया है."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"फ़िंगरप्रिंट सेंसर"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"फ़्लैश के साथ मिलने वाली सूचनाएं"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"फ़्लैश के साथ मिलने वाली सूचनाओं की जानकारी"</string>
@@ -4756,10 +4808,9 @@
<string name="contrast_medium" msgid="384414510709285811">"सामान्य"</string>
<string name="contrast_high" msgid="3988567609694797696">"ज़्यादा"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"इस ऐप्लिकेशन को सिर्फ़ एक विंडो में खोला जा सकता है"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"सुविधा चालू है"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"सुविधा बंद है"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"शॉर्टकट बंद है"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"चालू है"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"बंद है"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"बंद है"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"बंद है"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"चालू है"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"बंद है"</string>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index b3545d5..884df88 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Nakon 1 minute"</item>
<item msgid="1574040255478150028">"Nakon 5 minuta"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Uključite prilagodljivu svjetlinu radi produljenja trajanja baterije"</item>
+ <item msgid="2256666063790193306">"Smanjite automatsko isključivanje zaslona radi produljenja trajanja baterije"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index d6a99f9..74e344a 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nije specificirano"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženski rod"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Muški rod"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Želite li ukloniti odabran jezik?}one{Želite li ukloniti odabran jezik?}few{Želite li ukloniti odabrana jezika?}other{Želite li ukloniti odabranih jezika?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst će se prikazivati na nekom drugom jeziku."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ne možete ukloniti sve jezike"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodano je lice i sat <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodani su lice, otisak prsta i sat <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodani su lice, otisci prstiju i sat <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Postavite telefon"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Otključavanje satom još je jedan praktičan način otključavanja ovog telefona, primjerice kad su vam prsti mokri ili kad uređaj ne prepoznaje vaše lice.\n\nSat možete upotrijebiti za otključavanje telefona u sljedećim situacijama:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne sad"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Nastavi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Više"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Način rada"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Sat mora biti otključan, na vašoj ruci i unutar dometa ovog telefona. Nećete trebati ponovo otključavati sat dok vam je na ruci."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kad se ovaj telefon otključa, dobit ćete obavijest na satu. Ako se otključa kad to ne želite, dodirnite obavijest da biste ponovno zaključali telefon."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kontrola je u vašim rukama"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Sat možete ukloniti iz značajke otključavanja satom kad god želite u postavkama"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Dodirnite obavijest"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Prijeđite prstom prema gore na zaključanom zaslonu"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Odaberite svoj sat"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupni satovi"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Odustani"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdi"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Spremni ste!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Pomoću sata sada možete otključati ovaj telefon kad prijeđete prstom prema gore po zaključanom zaslonu ili kad dodirnete obavijest"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gotovo"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Otključavanje satom"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Pomoću sata možete otključati ovaj telefon kad prijeđete prstom prema gore po zaključanom zaslonu ili kad dodirnete obavijest"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Da biste upotrebljavali otključavanje satom, vaš sat mora biti otključan, na vašoj ruci, unutar dometa i povezan s ovim telefonom. Ako je veza prekinuta, morat ćete otključati telefon da biste mogli upotrebljavati otključavanje satom.\n\nImajte na umu:\nne možete imati nekoliko povezanih satova istovremeno. Da biste dodali neki drugi sat, najprije uklonite trenutačni."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saznajte više o otključavanju satom"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj sat"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Uklonite sat"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Otisak prsta i otključavanje licem"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Otključavanje licem i otiskom prsta za posao"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Potrebno je postavljanje"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Možda ćete ovaj pristupni kôd trebati unijeti i na drugi uređaj."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrdite za uparivanje s koordiniranim skupom"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Dopuštam pristup kontaktima i povijesti poziva"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Dopusti i pristup kontaktima i povijesti poziva"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Podaci će se koristiti za najave poziva i drugo"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nije moguće povezati se na <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupni uređaji"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Dijeljenje Wi-Fija s ovim uređajem…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Povezivanje…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Dijelite žarišnu točku"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potvrdite da ste to vi"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potvrdite da ste to vi"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Zaporka Wi-Fi mreže: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Zaporka žarišne točke: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatsko povezivanje"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mreža nije u dometu"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Zaboravi"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Izmijeni"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Zaboravljanje mreže nije uspjelo"</string>
<string name="wifi_save" msgid="2312643132472226807">"Spremi"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Spremanje mreže nije uspjelo"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Odustani"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ako vaša preferirana frekvencija nije dostupna, vaša žarišna točka može upotrebljavati neku drugu. Postavke sigurnosti žarišne točke mogu se promijeniti ako promijenite frekvenciju."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nije dostupno uz 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Postavke sigurnosti mogu se promijeniti ako promijenite frekvenciju žarišne točke"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Uključivanje žarišne točke…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Isključivanje žarišne točke…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Modemsko povezivanje nije dostupno"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zaboravili ste zaporku?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zaboravili ste uzorak?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zaboravili ste PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Unesite uzorak uređaja da biste nastavili"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Unesite PIN uređaja da biste nastavili"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Unesite zaporku uređaja da biste nastavili"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Unesite uzorak radnog profila da biste nastavili"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Nacrtajte uzorak da biste nastavili"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Unesite PIN da biste nastavili"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Unesite zaporku da biste nastavili"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Nacrtajte radni uzorak da biste nastavili"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Unesite poslovni PIN da biste nastavili"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Unesite zaporku radnog profila da biste nastavili"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Za dodatnu sigurnost upotrijebite uzorak uređaja"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nije dan opis."</string>
<string name="settings_button" msgid="2195468788019730377">"Postavke"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"osjetljivost na svjetlo, fotofobija, tamna tema, migrena, glavobolja, način za čitanje, noćni način rada, smanjenje svjetline, bijela točka"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Lakoća upotrebe, lakoća pristupa, pomoć, asistivno"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vid, sluh, slijepi, gluhi, motorički, spretnost, pomoćno, pomoć, jednostavna upotreba, jednostavan pristup, ruka, pomoć"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Alat za povećanje prozora, zumiranje, povećavanje, slabovidnost, povećati, uvećati"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Titlovi, Automatska transkripcija, nagluhost, gubitak sluha, računalni prijepis u stvarnom vremenu, pretvaranje govora u tekst"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kontrast boja"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, miš"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"slušni aparati, nagluha osoba, gubitak sluha, umjetne pužnice, uređaji za pojačanje zvuka, uređaji za obradu zvuka"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorički, miš, vanjski miš, naglavni miš, adaptivni miš, invalidska kolica, igraća palica"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"slušna pomagala, nagluhost, gubitak sluha, umjetne pužnice, uređaji za pojačanje zvuka, uređaji za obradu zvuka, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"nagluhost, gubitak sluha, titlovi, teleprinter, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri gumba"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"spretnost, motorički, starija osoba, artritis, učestala traumatska istegnuća zgloba, moždani udar, tremor, multipla skleroza, cerebralna paraliza, drhtavica, ruka"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"odgoda, spretnost, starija osoba"</string>
<string name="print_settings" msgid="8519810615863882491">"Ispis"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Isključeno"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Uključena je 1 usluga ispisa}one{Uključena je # usluga ispisa}few{Uključene su # usluge ispisa}other{Uključeno je # usluga ispisa}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Upozori na <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Ograničenje podatkovnog prometa od <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Upozori na <xliff:g id="ID_1">^1</xliff:g>/Ograniči na <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Mobilni operater može obračunavati podatke na drugačiji način od uređaja"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ne uključuje podatke koje koriste mreže mobilnog operatera"</string>
<string name="data_used_template" msgid="8229342096562327646">"Iskoristili ste <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Postavi upozorenje o potrošnji"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Automatsko popunjavanje"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Zadana usluga automatskog popunjavanja"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Zaporke"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Usluge za zaporke, pristupne ključeve i podatke"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Usluge za zaporke, pristupne ključeve i podatke"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Dodatni davatelji usluga"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# zaporka}one{# zaporka}few{# zaporke}other{# zaporki}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatsko, popunjavanje, automatsko popunjavanje, zaporka"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatsko, popunjavanje, automatsko popunjavanje, podaci, pristupni ključ, zaporka"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Provjerite je li ova aplikacija pouzdana</b> <br/> <br/> <xliff:g id=app_name example=Google automatsko popunjavanje>%1$s</xliff:g> upotrebljava sadržaj na zaslonu za procjenu onoga što se može automatski popuniti."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Želite li koristiti aplikaciju <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> na temelju sadržaja vašeg zaslona utvrđuje što se može automatski popuniti. Nove zaporke, pristupni ključevi i drugi podaci odsad će se spremati ovdje."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Usluge za zaporke, pristupne ključeve i podatke"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Usluge za zaporke, pristupne ključeve i podatke"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Isključiti %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Želite li isključiti uslugu?</b> <br/> <br/> Spremljeni podaci, kao što su zaporke, pristupni ključevi, načini plaćanja i drugi podaci možda se neće unijeti kad se prijavite. Da biste upotrebljavali spremljene podatke, odaberite zaporku, pristupni ključ ili podatkovnu uslugu."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Upotrijebiti davatelja vjerodajnica %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s utvrđuje što se može automatski popuniti na temelju sadržaja zaslona."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Ograničenje broja usluga za zaporke, pristupne ključeve i podatke"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Istovremeno možete imati pet aktivnih usluga za zaporke, pristupne ključeve i podatke. Isključite jednu uslugu da biste ih dodali još."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Ograničenje broja usluga za zaporke, pristupne ključeve i podatke"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Istovremeno možete imati pet aktivnih usluga za zaporke, pristupne ključeve i podatke. Isključite jednu uslugu da biste ih dodali još."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Isključi"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automatsko popunjavanje"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Razina zapisivanja"</string>
@@ -4673,6 +4709,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk s kompatibilnih medija postaje realističniji"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Praćenje glave"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvuk se mijenja kako pomičete glavu kako bi prirodnije zvučao"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Vrsta audiouređaja"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nepoznato"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvučnik"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Slušalice"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Komplet za auto"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Drugo"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ograničenje brzine preuzimanja s mreže"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurirajte ograničenje ulazne brzine propusnosti mreže koje se primjenjuje na sve mreže koje pružaju internetsku vezu."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfiguracija ograničenja brzine preuzimanja s mreže"</string>
@@ -4705,24 +4749,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Deinstaliraj aplikaciju"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacije instalirane u posljednji # mjesec}one{Aplikacije instalirane u posljednji # mjesec}few{Aplikacije instalirane u posljednja # mjeseca}other{Aplikacije instalirane u posljednjih # mjeseci}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacije instalirane prije više od # mjeseca}one{Aplikacije instalirane prije više od # mjeseca}few{Aplikacije instalirane prije više od # mjeseca}other{Aplikacije instalirane prije više od # mjeseci}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Omjer slike"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Odaberite omjer slike za pregled ove aplikacije ako nije osmišljena da odgovara uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Predložene aplikacije"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacije koje ste nadjačali"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Zadano za aplikaciju"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Cijeli zaslon"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Pola zaslona"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Omjer slike uređaja"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacija će se ponovno pokrenuti kad promijenite omjer slike. Možda ćete izgubiti nespremljene promjene."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Senzor otiska prsta"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Bljeskajuće obavijesti"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"O bljeskajućim obavijestima"</string>
@@ -4757,10 +4795,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Srednji"</string>
<string name="contrast_high" msgid="3988567609694797696">"Visoki"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ova se aplikacija može otvoriti samo u jednom prozoru"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Usluga uključena"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Usluga isključena"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Prečac isključen"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Uključeno"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Isključeno"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Isključeno"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Isključeno"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Uključeno"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Isključeno"</string>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 5651324..9ae7f4c 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 perc után"</item>
<item msgid="1574040255478150028">"5 perc után"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Az alkalmazkodó fényerő bekapcsolása az akkumulátor élettartamának növelése érdekében"</item>
+ <item msgid="2256666063790193306">"A képernyő időkorlátjának csökkentése az akkumulátor élettartamának növelése érdekében"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 2767163..c6fcf98 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nincs megadva"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Női"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Férfi"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Eltávolítja a kiválasztott nyelvet?}other{Eltávolítja a kiválasztott nyelveket?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"A szöveg más nyelven fog megjelenni."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nem lehet eltávolítani az összes nyelvet"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Arc és <xliff:g id="WATCH">%s</xliff:g> hozzáadva"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Arc, ujjlenyomat és <xliff:g id="WATCH">%s</xliff:g> hozzáadva"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Arc, ujjlenyomatok és <xliff:g id="WATCH">%s</xliff:g> hozzáadva"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Az óra beállítása"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"A Feloldás órával funkció a telefon zárolásának másik kényelmes módja, például amikor nedvesek az ujjai, vagy az eszköz nem ismeri fel az arcát.\n\nAz órával akkor oldhatja fel a telefon zárolását, ha:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Most nem"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Tovább"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Több"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Hogyan működik?"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Az órájának feloldott állapotban, a csuklóján és a telefon közelében kell lennie. Amíg a csuklóján van, többször már nem kell feloldania órája zárolását."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Értesítést kap az óráján, amikor a telefon zárolása feloldásra került. Ha a telefon zárolásának feloldása akaratlanul történt, akkor az értesítésre koppintva zárolhatja újból."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Az irányítás az Ön kezében van"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"A Beállításokban bármikor eltávolíthatja óráját a Feloldás órával funkcióból"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Koppintson valamelyik értesítésre"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Csúsztasson gyorsan felfelé a lezárási képernyőn"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Óra kiválasztása"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Rendelkezésre álló órák"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Mégse"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Megerősítés"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Készen is van!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Mostantól feloldhatja az órával a telefon zárolását, ha gyorsan felfelé csúsztat a lezárási képernyőn, vagy az egyik értesítésre koppint."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Kész"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Feloldás órával"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Feloldhatja az órával a telefon zárolását, ha gyorsan felfelé csúsztat a lezárási képernyőn, vagy az egyik értesítésre koppint."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"A Feloldás órával funkció használatához az órájának feloldott állapotban, a csuklóján, elérhető közelségben és a telefonhoz csatlakoztatva kell lennie. Ha megszakad a kapcsolat, fel kell oldania a telefon zárolását ahhoz, hogy használni tudja a Feloldás órával funkciót.\n\nNe feledje:\nEgyszerre csak egy óra lehet beállítva. Ha másik órát szeretne hozzáadni, először távolítsa el a meglévőt."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"További információ a Feloldás órával funkcióról"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Óra hozzáadása"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Óra eltávolítása"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Feloldás ujjlenyomattal és Arcalapú feloldás"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Arc- és ujjlenyomat-alapú feloldás a munkaprofilban"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Beállítás szükséges"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Előfordulhat, hogy az azonosító kulcsot a másik eszközön is be kell írnia."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Erősítse meg a koordinált készlettel való párosításhoz"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Hozzáférést biztosít névjegyeihez és híváslistájához"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Hozzáférés engedélyezése a névjegyekhez és a híváslistához is"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Az információkat a hívások bejelentéséhez és egyebekhez használjuk majd fel"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nem sikerült csatlakozni a következőhöz: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Rendelkezésre álló eszközök"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi megosztása ezzel az eszközzel…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Csatlakozás…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot megosztása"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Igazolja, hogy Ön az"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Igazolja, hogy Ön az"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi-jelszó: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot jelszava: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatikus csatlakozás"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"A hálózat nincs hatókörön belül"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Elfelejt"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Módosítás"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Nem sikerült elfelejteni a hálózatot."</string>
<string name="wifi_save" msgid="2312643132472226807">"Mentés"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Nem sikerült menteni a hálózatot."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Mégse"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ha a preferált frekvencia nem áll rendelkezésre, a hotspot másikat használhat. A hotspot biztonsági beállításai változhatnak a frekvencia módosítása esetén."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nem áll rendelkezésre 6 GHz-en"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"A biztonsági beállítások változhatnak, ha módosítja a hotspot frekvenciáját"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Hotspot bekapcsolása..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Hotspot kikapcsolása..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Az internetmegosztás nem vehető igénybe"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Elfelejtette jelszavát?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Elfelejtette mintáját?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Elfelejtette PIN-kódját?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"A folytatáshoz használja eszköze feloldó mintáját"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"A folytatáshoz írja be eszköze PIN-kódját"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"A folytatáshoz írja be eszköze jelszavát"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"A folytatáshoz használja munkaprofil-feloldási mintáját"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"A folytatáshoz rajzolja le a mintáját"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"A folytatáshoz adja meg PIN-kódját"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"A folytatáshoz adja meg a jelszavát"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"A folytatáshoz rajzolja le munkaprofilja mintáját"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"A folytatáshoz írja be munkaprofilja PIN-kódját"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"A folytatáshoz írja be munkaprofilja jelszavát"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"A nagyobb biztonság érdekében használja az eszköz feloldó mintáját"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nincs leírás."</string>
<string name="settings_button" msgid="2195468788019730377">"Beállítások"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"fényérzékenység, fotofóbia, sötét téma, migrén, fejfájás, olvasó mód, éjszakai mód, fényerő csökkentése, fehér pont"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Egyszerű használat, egyszerű hozzáférés, segítség, kisegítő"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"látás, hallás, vak, siket, mozgás, kézügyesség, kisegítő, segítség, egyszerű használat, egyszerű hozzáférés, kéz, súgó"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Ablaknagyító, nagyítás, gyengénlátó, nagyít, felnagyít"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Feliratok, feliratozás, azonnali átírás, nagyothalló, halláskárosodás, CART, beszéd szöveggé alakítása, felirat"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"színkontraszt"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorikus, egér"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"hallókészülékek, nagyothalló, hallásvesztés, cochleáris implantátumok, erősítő eszközök, hangfeldolgozók"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"mozgás, egér, külső egér, fejegér, adaptív egér, kerekesszék, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"hallókészülékek, nagyothalló, hallásvesztés, cochleáris implantátumok, erősítő eszközök, hangfeldolgozók, segélyhívásokat fogadó központ"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"nagyothalló, halláskárosodás, feliratok, Teletype, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"három gomb"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"kézügyesség, mozgás, idős, ízületi gyulladás, rsi, stroke, remegés, szklerózis multiplex, agyi paralízis, reszketés, ismétlődő terhelések okozta sérülés, kéz"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"késés, kézügyesség, idős"</string>
<string name="print_settings" msgid="8519810615863882491">"Nyomtatás"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Kikapcsolva"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 bekapcsolt nyomtatási szolgáltatás}other{# bekapcsolt nyomtatási szolgáltatás}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g>-os adatforgalmi figyelmeztetés"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g>-os adatforgalmi korlátozás"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g>-os adatforgalmi figyelmeztetés / <xliff:g id="ID_2">^2</xliff:g>-os adatforgalmi korlátozás"</string>
- <string name="operator_warning" msgid="5672761970087591211">"A szolgáltató adatszámlálási módja eltérhet az eszközétől"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Nem tartalmazza a szolgáltatói hálózatokon használt adatforgalmat"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> felhasználva"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Forgalmi figyelmeztetés beáll."</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Automatikus kitöltés"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Alapértelmezett automatikus kitöltés"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Jelszavak"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Jelszavak, azonosítókulcsok és adatszolgáltatások"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Jelszavak, azonosítókulcsok és adatszolgáltatások"</string>
<string name="credman_credentials" msgid="4931371941253324143">"További szolgáltatók"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# jelszó}other{# jelszó}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatikus, kitöltés, automatikus kitöltés, jelszó"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatikus, kitöltés, automatikus kitöltés, adatok, azonosítókulcs, jelszó"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Győződjön meg arról, hogy az alkalmazás megbízható.</b> <br/> <br/> A(z) <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> az Ön képernyőjén szereplő információk alapján határozza meg, hogy mit lehet automatikusan kitölteni."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Használja a(z) <xliff:g id=app_name example=Provider>%1$s</xliff:g> alkalmazást?</b> <br/> <br/> A(z) <xliff:g id=app_name example=Provider>%1$s</xliff:g> felhasználja az Ön képernyőjén megjelenő információkat az automatikusan kitölthető elemek meghatározásához. Az új jelszavak, azonosítókulcsok és egyéb adatok mostantól ide lesznek mentve."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Jelszavak, azonosítókulcsok és adatszolgáltatások"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Jelszavak, azonosítókulcsok és adatszolgáltatások"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Kikapcsolja a következőt: %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Kikapcsolja a szolgáltatást?</b> <br/> <br/> A mentett adatokat, például jelszavakat, azonosítókulcsokat, fizetési módokat és egyéb információkat a rendszer nem fogja kitölteni, amikor be van jelentkezve. A mentett adatok használatához válasszon egy jelszót, azonosítókulcsot vagy adatszolgáltatást."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Használni szeretné a következőt: %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"A(z) %1$s felhasználja az Ön képernyőjén megjelenő információkat az automatikusan kitölthető elemek meghatározásához."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Jelszavak, azonosítókulcsok és adatszolgáltatások korlátja"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Egyszerre legfeljebb öt aktív jelszava, azonosítókulcsa és adatszolgáltatása lehet. Továbbiak hozzáadásához kapcsolja ki valamelyik szolgáltatást."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Jelszavak, azonosítókulcsok és adatszolgáltatások korlátja"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Egyszerre legfeljebb öt aktív jelszava, azonosítókulcsa és adatszolgáltatása lehet. Továbbiak hozzáadásához kapcsolja ki valamelyik szolgáltatást."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Kikapcsolás"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automatikus kitöltés"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Naplózási szint"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"A kompatibilis médiatartalmak hangja térhatású"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Fejkövetés"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Feje mozgatásával változik a hang, hogy természetesebbnek tűnjön"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audioeszköz típusa"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Ismeretlen"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Hangszóró"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Fejhallgató"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Autós készlet"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Egyéb"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Hálózat letöltési sebességére vonatkozó korlátozás"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurálhatja a hálózati sávszélesség beáramlási értékének korlátozását, amely az internetkapcsolatot biztosító minden hálózatra vonatkozik."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Hálózat letöltési sebességére vonatkozó korlátozás konfigurálása"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Alkalmazás eltávolítása"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Az elmúlt # hónapban telepített alkalmazások}other{Az elmúlt # hónapban telepített alkalmazások}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Az alkalmazások # hónapnál régebben lettek telepítve}other{Az alkalmazások # hónapnál régebben lettek telepítve}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Méretarány"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Válasszon méretarányt az alkalmazás megtekintéséhez, amennyiben nem megfelelő a méretaránya az Ön <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eszközén."</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Javasolt alkalmazások"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Ön által felülírt alkalmazások"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Alkalmazás alapértelmezett értéke"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Teljes képernyő"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Fél képernyő"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Eszköz méretaránya"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Az alkalmazás újraindul a méretarány módosításakor. A nem mentett módosításai elveszhetnek."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Ujjlenyomat-érzékelő"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Villogó értesítések"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"A villogó értesítésekről"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Közepes"</string>
<string name="contrast_high" msgid="3988567609694797696">"Nagy"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ez az alkalmazás csak egy ablakban nyitható meg"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Szolgáltatás bekapcsolva"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Szolgáltatás kikapcsolva"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Gyorsparancs kikapcsolva"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Be"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Ki"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Ki"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Ki"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Be"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Ki"</string>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index fb38c9b..b1add1d 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 րոպեից"</item>
<item msgid="1574040255478150028">"5 րոպեից"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Միացրեք հարմարվող պայծառությունը՝ մարտկոցի աշխատաժամանակը երկարացնելու համար"</item>
+ <item msgid="2256666063790193306">"Կրճատեք էկրանի անջատման ժամանակը՝ մարտկոցի աշխատաժամանակը երկարացնելու համար"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index fd7d343..3c2dde7 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Նշված չէ"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Իգական"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Արական"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Հեռացնե՞լ ընտրված լեզուն}one{Հեռացնե՞լ ընտրված լեզուն}other{Հեռացնե՞լ ընտրված լեզուները}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Տեքստը կցուցադրվի մեկ այլ լեզվով:"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Հնարավոր չէ հեռացնել բոլոր լեզուները"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Դեմքով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Դեմքով, մատնահետքով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Դեմքով, մատնահետքերով և ժամացույցով (<xliff:g id="WATCH">%s</xliff:g>) ապակողպումը կարգավորված է"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Կարգավորեք ձեր ժամացույցը"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Ժամացույցով ապակողպումը հարմարավետ եղանակ է հեռախոսն ապակողպելու համար, օրինակ, երբ ձեր ձեռքերը թաց են կամ դեմքը հնարավոր չի լինում ճանաչել։\n\nԴուք կարող եք ձեր ժամացույցով ապակողպել այս հեռախոսը, երբ՝"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ոչ հիմա"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Շարունակել"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Ավելին"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Ինչպես է դա աշխատում"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ձեր ժամացույցը պետք է լինի ապակողպված, ձեր դաստակի վրա և այս հեռախոսին մոտ։ Քանի դեռ ժամացույցը ձեր դաստակին է, այն նորից ապակողպելու կարիք չի լինի։"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Երբ այս հեռախոսն ապակողպվի, դուք ծանուցում կստանաք ձեր ժամացույցում։ Եթե այն պատահաբար է ապակողպվել, հպեք ծանուցմանը՝ հեռախոսը նորից կողպելու համար։"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ամեն ինչ դուք եք վերահսկում"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Դուք ցանկացած ժամանակ կարող եք «ժամացույցով ապակողպում» գործառույթի կարգավորումներում հեռացնել ձեր ժամացույցը"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Հպեք ծանուցմանը"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Կողպէկրանին սահեցրեք վերև"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Ընտրեք ձեր ժամացույցը"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Հասանելի ժամացույցներ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Չեղարկել"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Հաստատել"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Պատրա՛ստ է։"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Այժմ կարող եք ձեր ժամացույցով ապակողպել այս հեռախոսը՝ մատը կողպէկրանին սահեցնելով կամ հպելով ծանուցմանը"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Պատրաստ է"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ժամացույցով ապակողպում"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Դուք կարող եք ձեր ժամացույցով ապակողպել այս հեռախոսը՝ մատը կողպէկրանին սահեցնելով կամ հպելով ծանուցմանը"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Ժամացույցով ապակողպումն օգտագործելու համար ձեր ժամացույցը պետք է լինի ապակողպված, ձեր դաստակի վրա, հասանելիության սահմաններում և միացված այս հեռախոսին։ Եթե կապը խափանվի, դուք պետք է ապակողպեք հեռախոսը, որպեսզի կարողանաք օգտագործել ժամացույցով ապակողպումը։\n\nՆկատի ունեցեք, որ\nմիաժամանակ կարող եք կարգավորել միայն մեկ ժամացույց։ Այլ ժամացույց ավելացնելու համար նախ հեռացրեք ընթացիկը։"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Իմանալ ավելին ժամացույցով ապակողպման մասին"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Ավելացնել ժամացույց"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Հեռացնել ժամացույցը"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Մատնահետքով և դեմքով ապակողպում"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Դեմքով և մատնահետքով ապակողպում աշխատանքի համար"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Պահանջվում է կարգավորում"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Հնարավոր է պետք լինի մուտքագրել այս անցաբառը այլ սարքերում:"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Հաստատեք՝ համակարգված հավաքածուի հետ զուգակցվելու համար"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Թույլատրել կոնտակտների ու զանգերի պատմության հասանելիությունը"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Նաև հասանելի դարձնել կոնտակտները և զանգերի պատմությունը"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Տեղեկությունները կօգտագործվեն զանգերի մասին ծանուցումների համար և այլ նպատակներով"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Հնարավոր չեղավ միանալ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ին:"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Հասանելի սարքեր"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Սարքը միանում է Wi‑Fi-ին…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Միացում…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Ընդհանուր թեժ կետ"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Հաստատեք, որ դա դուք եք"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Հաստատեք ձեր ինքնությունը"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi-ի գաղտնաբառ՝ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Թեժ կետի գաղտնաբառը՝ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Ավտոմատ միացում"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ցանցն անհասանելի է"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Մոռանալ"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Փոփոխել"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ցանցը մոռանալ չհաջողվեց"</string>
<string name="wifi_save" msgid="2312643132472226807">"Պահել"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Չհաջողվեց պահել ցանցը"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Չեղարկել"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Երբ նախընտրելի հաճախականությունը հասանելի չէ, ձեր թեժ կետը կարող է օգտագործել այլ հաճախականություն։ Եթե փոխեք հաճախականությունը, թեժ կետի անվտանգության կարգավորումները կարող են փոխվել։"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Հասանելի չէ 6 ԳՀց հաճախականությամբ"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Եթե փոխեք թեժ կետի հաճախականությունը, անվտանգության կարգավորումները կարող են փոխվել"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Թեժ կետի միացում…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Թեժ կետերը անջատվում են..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Մոդեմի ռեժիմը հասանելի չէ"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Մոռացել եմ գաղտնաբառը"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Մոռացել եմ նախշը"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Մոռացել եմ PIN-ը"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Շարունակելու համար օգտագործեք սարքի նախշը"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Շարունակելու համար մուտքագրեք սարքի PIN կոդը"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Շարունակելու համար մուտքագրեք սարքի գաղտնաբառը"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Շարունակելու համար օգտագործեք աշխատանքային պրոֆիլի նախշը"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Շարունակելու համար գծեք ձեր նախշը"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Շարունակելու համար մուտքագրեք ձեր PIN կոդը"</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">"Շարունակելու համար մուտքագրեք աշխատանքային պրոֆիլի PIN կոդը"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Շարունակելու համար մուտքագրեք աշխատանքային պրոֆիլի գաղտնաբառը"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Լրացուցիչ ապահովության համար օգտագործեք ձեր սարքի նախշը"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Որևէ նկարագրություն չկա:"</string>
<string name="settings_button" msgid="2195468788019730377">"Կարգավորումներ"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"լույսի հանդեպ զգայունություն, լուսաֆոբիա, մուգ թեմա, միգրեն, գլխացավ, ընթերցման ռեժիմ, գիշերային ռեժիմ, պայծառության նվազեցում, սպիտակ կետ"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Օգտագործման հարմարություն, հեշտ օգտագործում, օգնություն, օգնող"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"տեսողություն, լսողություն, կույր, խուլ, մոտորիկա, շարժողական ընդունակություններ, օժանդակ, աջակցում, օգտագործման պարզություն, հեշտ հասանելիություն, ձեռք, օգնություն"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Խոշորացում, խոշորացույց, մասշտաբ, թույլ տեսողություն, մեծացում, մեծացնել, խոշորացնել"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Ենթագրեր, տառադարձում, կենդանի տառադարձում, լսողության խանգարում, խլություն, ուղիղ տառադարձություն, խոսքի տառադարձում, ձայնային ներածում, խոսքի ճանաչում"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"գույների կոնտրաստ"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"շարժման խանգարումներ, մկնիկ"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"լսողական սարքեր, լսողության խանգարում, լսողության կորուստ, կոխլեար իմպլանտներ, ձայնն ուժեղացնող սարքեր, ձայնային պրոցեսորներ"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"մոտորիկա, մկնիկ, արտաքին մկնիկ, գլխի մկնիկ, հարմարվող մկնիկ, անվասայլակ, ջոյսթիք"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"լսողական սարքեր, լսողության խանգարում, լսողության կորուստ, կոխլեար իմպլանտներ, ձայնն ուժեղացնող սարքեր, ձայնային պրոցեսորներ, հերթապահության միասնական դիսպետչերական ծառայություն"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"լսողության խանգարում, խլություն, ենթագրեր, տելեթայփ, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"երեք կոճակ"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"շարժողական ընդունակություններ, մոտորիկա, տարեց, արթրիտ, կրկնվող լարվածության հետևանքով վնասվածք, կաթված, տրեմոր, ցրված սկլերոզ, մանկական ուղեղային կաթված, դող, ձեռք"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"հետաձգում, շարժողական ընդունակություններ, տարեց"</string>
<string name="print_settings" msgid="8519810615863882491">"Տպում"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Անջատված է"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Տպելու 1 ծառայություն միացված է}one{Տպելու # ծառայություն միացված է}other{Տպելու # ծառայություն միացված է}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Թրաֆիկի օգտագործման զգուշացում` <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Թրաֆիկի օգտագործման սահմանաչափ՝ <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Թրաֆիկի օգտագործման զգուշացում` <xliff:g id="ID_1">^1</xliff:g> / Թրաֆիկի օգտագործման սահմանաչափ` <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Օպերատորի վիճակագրությունը կարող է տարբերվել սարքի տվյալներից։"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Օպերատորների կողմից սպասարկվող ցանցերի տվյալները չեն հետագծվում"</string>
<string name="data_used_template" msgid="8229342096562327646">"Օգտագործվել է <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Նախազգուշացում դնել"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Ինքնալրացման ծառայություն"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Ինքնալրացման կանխադրված ծառայություն"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Գաղտնաբառեր"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայություններ"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայություններ"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Լրացուցիչ մատակարարներ"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# գաղտնաբառ}one{# գաղտնաբառ}other{# գաղտնաբառ}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ավտոմատ, լրացում, ինքնալրացում, գաղտնաբառ"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ավտոմատ, լրացնել, ինքնալրացում, տվյալներ, անցաբառ, գաղտնաբառ"</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="4951846866327737417">"<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="2642776965060619988">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայություններ"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայություններ"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Անջատե՞լ %1$s ծառայությունը"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Անջատե՞լ այս ծառայությունը</b> <br/> <br/> Պահված տեղեկությունները, ինչպիսիք են գաղտնաբառերը, անցաբառերը, վճարման եղանակները և այլ տվյալներ, չեն լրացվի, երբ մուտք գործեք։ Ձեր պահված տեղեկությունները օգտագործելու համար ընտրեք գաղտնաբառ, անցաբառ կամ ծառայություն։"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Օգտագործե՞լ %1$s"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s-ն օգտագործում է ձեր էկրանի բովանդակությունը՝ որոշելու, թե ինչ կարելի է ինքնալրացնել։"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայությունների քանակը սահմանափակ է"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Միաժամանակ դուք կարող եք ունենալ գաղտնաբառերի, անցաբառերի և տվյալների պահման մինչև 5 ակտիվ ծառայություն։ Նոր ծառայություն ավելացնելու համար անջատեք եղածներից որևէ մեկը։"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Գաղտնաբառերի, անցաբառերի և տվյալների պահման ծառայությունների քանակը սահմանափակ է"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Միաժամանակ դուք կարող եք ունենալ գաղտնաբառերի, անցաբառերի և տվյալների պահման մինչև 5 ակտիվ ծառայություն։ Նոր ծառայություն ավելացնելու համար անջատեք եղածներից որևէ մեկը։"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Անջատել"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Ինքնալրացում"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Գրանցման մակարդակ"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Համատեղելի մեդիա սարքերի ձայնը դառնում է ավելի արտահայտիչ"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Գլխի շարժումների հետագծում"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Երբ դուք շարժում եք ձեր գլուխը, ձայնը դառնում է ավելի բնական"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Աուդիո սարքի տեսակը"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Անհայտ"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Բարձրախոս"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Ականջակալներ"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Մեքենայի լրասարքեր"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Այլ"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Մուտքային թրաֆիկի սահմանաչափ"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Կարգավորեք մուտքային թրաֆիկի թողունակության սահմանաչափ։ Այս կարգավորումը կիրառվում է բոլոր ցանցերի նկատմամբ, որոնք տրամադրում են ինտերնետ կապ։"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Կարգավորեք մուտքային թրաֆիկի սահմանաչափ"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Ապատեղադրել հավելվածը"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Հավելվածներ, որոնք տեղադրվել են վերջին # ամսվա ընթացքում}one{Հավելվածներ, որոնք տեղադրվել են վերջին # ամսվա ընթացքում}other{Հավելվածներ, որոնք տեղադրվել են վերջին # ամսվա ընթացքում}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Հավելվածներ, որոնք տեղադրվել են ավելի քան # ամիս առաջ}one{Հավելվածներ, որոնք տեղադրվել են ավելի քան # ամիս առաջ}other{Հավելվածներ, որոնք տեղադրվել են ավելի քան # ամիս առաջ}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Կողմերի հարաբերակցություն"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Եթե հավելվածը օպտիմալացված չէ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքի համար, ապա ընտրեք կողմերի համապատասխան հարաբերակցությունը։"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Առաջարկվող հավելվածներ"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Հավելվածներ, որոնց կողմերի հարաբերակցությունը փոխարինել եք"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Հավելվածի կանխադրված տարբերակ"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Լիաէկրան"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Կիսաէկրան"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Սարքի կողմերի հարաբերակցությունը"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Երբ թարմացնեք կողմերի հարաբերակցությունը, հավելվածը կվերագործարկվի։ Որոշ փոփոխություններ կարող են չպահպանվել։"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Մատնահետքերի սկաներ"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Թարթող ծանուցումներ"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Թարթող ծանուցումների մասին"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Միջին"</string>
<string name="contrast_high" msgid="3988567609694797696">"Բարձր"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Այս հավելվածը հնարավոր է բացել միայն մեկ պատուհանում"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Ծառայությունը միացված է"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Ծառայությունն անջատված է"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Դյուրանցումն անջատված է"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Միացված է"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Անջատված է"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Անջատված է"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Անջատված է"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Միացված է"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Անջատված է"</string>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index 15ed51f..3417ace 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Setelah 1 menit"</item>
<item msgid="1574040255478150028">"Setelah 5 menit"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Aktifkan kecerahan adaptif untuk memperpanjang masa pakai baterai"</item>
+ <item msgid="2256666063790193306">"Kurangi waktu tunggu layar untuk memperpanjang masa pakai baterai"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index aeb2be9..10c2e66 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Tidak ditentukan"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminin"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulin"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Hapus bahasa yang dipilih?}other{Hapus bahasa yang dipilih?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teks akan ditampilkan dalam bahasa lain."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Tidak dapat menghapus semua bahasa"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Wajah dan <xliff:g id="WATCH">%s</xliff:g> ditambahkan"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Wajah, sidik jari, dan <xliff:g id="WATCH">%s</xliff:g> ditambahkan"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Wajah, sidik jari, dan <xliff:g id="WATCH">%s</xliff:g> ditambahkan"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Menyiapkan smartwatch"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Buka dengan Smartwatch adalah cara praktis lain untuk membuka kunci ponsel ini, misalnya, saat jari Anda basah atau wajah Anda tidak dikenali.\n\nAnda dapat menggunakan smartwatch untuk membuka kunci ponsel ini saat Anda:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Lain kali"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Lanjutkan"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Lainnya"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cara kerjanya"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Smartwatch harus tidak terkunci, dikenakan di pergelangan tangan, dan berada dalam jangkauan ponsel ini. Anda tidak perlu membuka kunci smartwatch lagi saat smartwatch sedang dikenakan di pergelangan tangan."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Saat ponsel ini dibuka kuncinya, Anda akan menerima notifikasi di smartwatch. Jika ponsel dibuka kuncinya saat Anda tidak memintanya, ketuk notifikasi untuk mengunci ponsel kembali."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kendali di tangan Anda"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Anda dapat menghapus smartwatch dari Buka dengan Smartwatch kapan saja di Setelan"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Ketuk notifikasi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Geser ke atas di layar kunci"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Pilih smartwatch Anda"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Smartwatch yang tersedia"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Batal"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Konfirmasi"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Anda sudah siap."</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Anda kini dapat menggunakan smartwatch untuk membuka kunci ponsel ini saat menggeser ke atas di layar kunci atau mengetuk notifikasi"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Selesai"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Buka dengan Smartwatch"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Anda dapat menggunakan smartwatch untuk membuka kunci ponsel ini saat menggeser ke atas di layar kunci atau mengetuk notifikasi"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Untuk menggunakan Buka dengan Smartwatch, smartwatch harus tidak terkunci, dikenakan di pergelangan tangan, berada dalam jangkauan, dan terhubung ke ponsel ini. Jika koneksi terganggu, Anda harus membuka kunci ponsel sebelum dapat menggunakan Buka dengan Smartwatch.\n\nPerlu diingat:\nAnda hanya dapat menyiapkan satu smartwatch pada satu waktu. Untuk menambahkan smartwatch lain, hapus smartwatch saat ini terlebih dahulu."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Pelajari lebih lanjut Buka dengan Smartwatch"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Tambahkan smartwatch"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Hapus smartwatch"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Buka dengan Sidik Jari & Wajah"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Buka dengan Wajah & Sidik Jari untuk profil kerja"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Penyiapan diperlukan"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Anda mungkin juga perlu mengetikkan sandi ini ke perangkat lain."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Konfirmasikan agar dapat tersambung dengan kumpulan perangkat terkoordinasi"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Izinkan akses ke kontak dan histori panggilan Anda"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Juga izinkan akses ke kontak dan histori panggilan"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Info akan digunakan untuk pengumuman panggilan dan lainnya"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Tidak dapat terhubung ke <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Perangkat yang tersedia"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Membagikan Wi‑Fi kepada perangkat ini…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Menyambungkan…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Bagikan hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifikasi bahwa ini adalah Anda"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifikasi bahwa ini memang Anda"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Sandi Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Sandi hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Hubungkan otomatis"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Jaringan di luar jangkauan"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Lupakan"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Ubah"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Gagal melupakan jaringan"</string>
<string name="wifi_save" msgid="2312643132472226807">"Simpan"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Gagal menyimpan jaringan"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Batal"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Jika frekuensi pilihan tidak tersedia, hotspot Anda dapat menggunakan frekuensi yang berbeda. Setelan keamanan hotspot dapat berubah jika Anda mengubah frekuensi."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Tidak tersedia dengan 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Setelan keamanan dapat berubah jika Anda mengubah frekuensi hotspot"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Menyalakan hotspot..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Mematikan hotspot..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering tidak tersedia"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Lupa sandi?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Lupa pola?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Lupa PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gunakan pola perangkat untuk melanjutkan"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Masukkan PIN perangkat untuk melanjutkan"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Masukkan sandi perangkat untuk melanjutkan"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gunakan pola profil kerja untuk melanjutkan"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Gambar pola untuk melanjutkan"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Masukkan PIN untuk melanjutkan"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Masukkan sandi untuk melanjutkan"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Gambar pola profil kerja untuk melanjutkan"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Masukkan PIN profil kerja untuk melanjutkan"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Masukkan sandi profil kerja untuk melanjutkan"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Untuk keamanan tambahan, gunakan pola perangkat"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Tidak tersedia deskripsi."</string>
<string name="settings_button" msgid="2195468788019730377">"Setelan"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensitivitas cahaya, fotofobia, tema gelap, migrain, sakit kepala, mode baca, mode malam, kurangi kecerahan, titik putih"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Kemudahan penggunaan, kemudahan akses, bantuan, asistif"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"penglihatan, pendengaran, tunanetra, tunarungu, motorik, ketangkasan, asistif, bantuan, kemudahan penggunaan, kemudahan akses, tangan, bantuan"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Pembesar Jendela, Zoom, Pembesaran, Gangguan penglihatan, Perbesar, buat lebih besar"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Teks, teks tertutup, CC, Transkripsi Instan, gangguan pendengaran, kerusakan pendengaran, CART, speech to text, subtitel"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kontras warna"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorik, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"alat bantu dengar, gangguan pendengaran, kehilangan pendengaran, implan koklea, perangkat amplifikasi, prosesor suara"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorik, mouse, mouse eksternal, mouse kepala, mouse adaptif, kursi roda, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"alat bantu dengar, gangguan pendengaran, kehilangan pendengaran, implan koklea, perangkat amplifikasi, prosesor suara, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"gangguan pendengaran, kerusakan pendengaran, teks, Teletip, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tiga tombol"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ketangkasan, motorik, lansia, artritis, rsi, stroke, tremor, sklerosis ganda, lumpuh otak, gemetar, cedera regangan berulang, tangan"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"penundaan, ketangkasan, lansia"</string>
<string name="print_settings" msgid="8519810615863882491">"Pencetakan"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Nonaktif"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 layanan cetak aktif}other{# layanan cetak aktif}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Peringatan penggunaan data <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Batas kuota <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Peringatan penggunaan data <xliff:g id="ID_1">^1</xliff:g> / Batas penggunaan data <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Perhitungan data oleh operator dapat berbeda dengan perhitungan perangkat"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Mengecualikan data yang digunakan oleh jaringan operator"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> digunakan"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Setel peringatan penggunaan data"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Layanan isi otomatis"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Layanan isi otomatis default"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Sandi"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Sandi, kunci sandi, dan layanan data"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Sandi, kunci sandi, dan layanan data"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Penyedia tambahan"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# sandi}other{# sandi}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"otomatis, isi, isi otomatis, sandi"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"otomatis, isi, isi otomatis, data, kunci sandi, sandi"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Pastikan Anda memercayai aplikasi ini</b> <br/> <br/> <xliff:g id=app_name example=Isi Otomatis Google>%1$s</xliff:g> menggunakan item yang ada di layar untuk menentukan item apa saja yang dapat diisi otomatis."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Gunakan <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> menggunakan konten di layar untuk menentukan item yang dapat diisi otomatis. Sandi, kunci sandi, dan info baru lainnya akan disimpan di sini mulai sekarang."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Sandi, kunci sandi, dan layanan data"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Sandi, kunci sandi, dan layanan data"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Nonaktifkan %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Nonaktifkan layanan ini?</b> <br/> <br/> Info tersimpan seperti sandi, kunci sandi, metode pembayaran, dan info lainnya tidak akan diisi saat Anda login. Untuk menggunakan info tersimpan, pilih sandi, kunci sandi, atau layanan data."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Gunakan %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s menggunakan item yang ada di layar untuk menentukan item apa yang dapat diisi otomatis."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Batas sandi, kunci sandi, dan layanan data"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Anda dapat memiliki hingga 5 sandi, kunci sandi, dan layanan data yang aktif secara bersamaan. Nonaktifkan satu layanan untuk menambahkan layanan lain."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Batas sandi, kunci sandi, dan layanan data"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Anda dapat memiliki hingga 5 sandi, kunci sandi, dan layanan data yang aktif secara bersamaan. Nonaktifkan satu layanan untuk menambahkan layanan lain."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Nonaktifkan"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Isi Otomatis"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Level logging"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio dari perangkat media yang kompatibel menjadi lebih imersif"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pelacakan gerak kepala"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio akan berubah saat Anda menggerakkan kepala agar terdengar lebih alami"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Jenis Perangkat Audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Tidak diketahui"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Headphone"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit Mobil"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Lainnya"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Batas kecepatan download jaringan"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurasi batas kecepatan masuk bandwidth jaringan yang diterapkan ke semua jaringan yang menyediakan koneksi internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurasi batas kecepatan download jaringan"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Uninstal aplikasi"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikasi yang diinstal dalam # bulan terakhir}other{Aplikasi yang diinstal dalam # bulan terakhir}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikasi diinstal lebih dari # bulan lalu}other{Aplikasi diinstal lebih dari # bulan lalu}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Rasio aspek"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Pilih rasio aspek untuk melihat aplikasi ini jika aplikasi belum didesain agar sesuai dengan <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplikasi yang disarankan"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikasi yang rasio aspeknya diganti"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Default aplikasi"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Layar penuh"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Setengah layar"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Rasio aspek perangkat"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikasi akan dimulai ulang saat Anda mengubah rasio aspek. Anda mungkin akan kehilangan perubahan yang belum disimpan."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensor sidik jari"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Notifikasi flash"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Tentang notifikasi flash"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Sedang"</string>
<string name="contrast_high" msgid="3988567609694797696">"Tinggi"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Aplikasi ini hanya dapat dibuka di 1 jendela"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Layanan aktif"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Layanan nonaktif"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Pintasan nonaktif"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aktif"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Nonaktif"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Nonaktif"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Nonaktif"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Aktif"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Nonaktif"</string>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index d6ece01..3ebbdde 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Eftir 1 mínútu"</item>
<item msgid="1574040255478150028">"Eftir 5 mínútur"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Kveiktu á aðlögun birtustigs til að bæta rafhlöðuendingu"</item>
+ <item msgid="2256666063790193306">"Styttu tímamörk skjás til að bæta rafhlöðuendingu"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index d82b076..975ab53 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ekki gefið upp"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Kvenkyn"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Karlkyn"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Viltu fjarlægja valið tungumál?}one{Viltu fjarlægja valin tungumál?}other{Viltu fjarlægja valin tungumál?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Texti mun birtast á öðru tungumáli."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ekki er hægt að fjarlægja öll tungumál"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Andliti og <xliff:g id="WATCH">%s</xliff:g> bætt við"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Andliti, fingrafari og <xliff:g id="WATCH">%s</xliff:g> bætt við"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Andliti, fingraförum og <xliff:g id="WATCH">%s</xliff:g> bætt við"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Setja upp úr"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"„Opnun með úri“ er önnur þægileg leið til að opna þennan síma, t.d. þegar þú ert með blauta fingur eða andlitið á þér þekkist ekki.\n\nÞú getur notað úrið þitt til að opna þennan síma þegar þú:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ekki núna"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Halda áfram"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Meira"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Svona virkar þetta"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Úrið þitt verður að vera ólæst, á úlnliðnum og nálægt þessum síma. Þú munt ekki þurfa að taka úrið aftur úr lás á meðan það er á úlnliðnum."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Þegar þessi sími er tekinn úr lás færðu tilkynningu í úrið. Ef hann opnaðist þegar það var ekki ætlunin skaltu ýta aftur á tilkynninguna til að læsa símanum aftur."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Þú ert við stjórnvölinn"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Þú getur fjarlægt úrið úr „Opnun með úri“ hvenær sem er í stillingunum"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Ýttu á tilkynningu"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Strjúktu upp á lásskjánum"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Veldu úrið þitt"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Tiltæk úr"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Hætta við"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Staðfesta"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Þá er allt klárt!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Núna geturðu notað úrið þitt til að opna þennan síma þegar þú strýkur upp á lásskjánum eða ýtir á tilkynningu"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Lokið"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Opnun með úri"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Þú getur notað úrið þitt til að opna þennan síma þegar þú strýkur upp á lásskjánum eða ýtir á tilkynningu"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Til að nota „Opnun með úri“ verður úrið þitt að vera ólæst, á úlnliðnum, innan seilingar og tengt þessum síma. Ef tengingin rofnar þarftu að opna símann áður en þú getur notað „Opnun með úri“.\n\nHafðu í huga:\nÞú getur aðeins verið með eitt úr uppsett hverju sinni. Til að setja annað úr upp þarftu fyrst að fjarlægja núverandi úr."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Nánar um opnun með úri"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Bæta við úri"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Fjarlægja úr"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingrafar og andlitskenni"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Andlits- og fingrafarskenni fyrir vinnu"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Þörf er á uppsetningu"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Þú gætir einnig þurft að slá þennan aðgangslykil inn á hinu tækinu."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Staðfestu pörun við samstillta settið"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Veita aðgang að tengiliðum þínum og símtalaferli"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Veita einnig aðgang að tengiliðum og símtalaferli"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Upplýsingar verða notaðar fyrir símtalatilkynningar og fleira"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Ekki tókst að tengjast <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Tæki í boði"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deilir Wi‑Fi með þessu tæki…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Tengist…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Deila heitum reit"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Staðfestu að þetta sért þú"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Staðfestu hver þú ert"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi aðgangsorð: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Aðgangsorð fyrir heitan reit: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Sjálfvirk tenging"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ekkert samband við netkerfi"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Gleyma"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Breyta"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ekki tókst að gleyma neti"</string>
<string name="wifi_save" msgid="2312643132472226807">"Vista"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Ekki tókst að vista net"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Hætta við"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ef tíðnin sem þú valdir er ekki í boði gæti heiti reiturinn notað aðra tíðni. Öryggisstillingar fyrir heitan reit gætu breyst ef þú breytir tíðninni."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Ekki í boði með 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Öryggisstillingar gætu breyst ef þú breytir tíðni fyrir heitan reit"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Kveikir á heitum reit…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Slekkur á heitum reit…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tjóðrun er ekki tiltæk"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Gleymt aðgangsorð?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Gleymdirðu mynstrinu?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Gleymdirðu PIN-númerinu?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Teiknaðu mynstur tækisins til að halda áfram"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Sláðu inn PIN-númer tækisins til að halda áfram"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Sláðu inn aðgangsorðið þitt fyrir tækið til að halda áfram"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Notaðu vinnumynstrið þitt til að halda áfram"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Teiknaðu mynstrið þitt til að halda áfram"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Sláðu inn PIN-númerið þitt til að halda áfram."</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Sláðu inn aðgangsorðið þitt til að halda áfram"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Teiknaðu mynstrið fyrir vinnuprófílinn til að halda áfram"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Sláðu inn PIN-númerið þitt fyrir vinnuna til að halda áfram"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Sláðu inn vinnuaðgangsorðið þitt til að halda áfram"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Notaðu mynstur tækisins til að gæta fyllsta öryggis"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Engin lýsing til staðar."</string>
<string name="settings_button" msgid="2195468788019730377">"Stillingar"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ljósnæmi, ljósfælni, dökkt þema, mígreni, höfuðverkur, lestrarstilling, næturstilling, minnkuð birta, hvítpunktur"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Auðveld notkun, auðvelt aðgengi, aðstoð, stuðningur"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"sjón, heyrn, blind(ur), heyrnarlaus, hreyfivirkni, fimi, aðstoðartækni, aðstoð, auðveld notkun, auðveldur aðgangur, hönd, hjálp"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"gluggastækkun, aðdráttur, stækkun, sjónskerðing, stækka, gera stærra"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"skjátextar, skýringartextar, CC, umritun í beinni, heyrnarskerðing, heyrnarleysi, tölvustudd umritun í beinni, talgreinir, texti"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"litaleiðrétting"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"mótor, mús"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"heyrnartæki, heyrnarskerðing, heyrnartap, kuðungsígræði, hljóðmögnunartæki, hljóðvinnsla"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"hreyfivirkni, mús, utanáliggjandi mús, höfuðmús, aðlögunarhæf mús, hjólastóll, stýripinni"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"heyrnartæki, heyrnarskerðing, heyrnartap, kuðungsígræði, hljóðmögnunartæki, hljóðvinnsla, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"heyrnarskerðing, heyrnarleysi, skjátextar, telex, fjarriti"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"þrír hnappar"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"fimi, hreyfivirkni, eldri, gigt, rsi, heilablóðfall, skjálfti, heila- og mænusigg, heilalömun, skjálfti, vöðvabólga, hönd"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"seinkun, fimi, eldri"</string>
<string name="print_settings" msgid="8519810615863882491">"Prentun"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Slökkt"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 prentþjónusta virk}one{# prentþjónusta virk}other{# prentþjónustur virkar}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> gagnaviðvörun"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> gagnamörk"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> gagnaviðvörun / <xliff:g id="ID_2">^2</xliff:g> gagnamörk"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Gögn símafyrirtækisins kunna að vera önnur en tækið sýnir"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Tekur ekki með gögn sem eru notuð af netkerfum símafyrirtækja"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> notuð"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Stilla gagnaviðvörun"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Sjálfvirk útfyllingarþjónusta"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Sjálfgefin sjálfvirk útfyllingarþjónusta"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Aðgangsorð"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Aðgangsorð, aðgangslyklar og gagnaþjónustur"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Aðgangsorð, aðgangslyklar og gagnaþjónustur"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Fleiri þjónustuaðilar"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# aðgangsorð}one{# aðgangsorð}other{# aðgangsorð}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"sjálfvirk, útfylling, sjálfvirk útfylling, aðgangsorð"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"sjálfvirkt, útfylling, sjálfvirk útfylling, gögn, aðgangslykill, aðgangsorð"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Gakktu úr skugga um að þú treystir þessu forriti</b> <br/> <br/> <xliff:g id=app_name example=Sjálfvirk útfylling Google>%1$s</xliff:g> notar það sem er á skjánum til að ákvarða hvað er hægt að fylla sjálfkrafa út."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Nota <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> notar það sem er á skjánum hjá þér til að greina hvað er hægt að fylla sjálfkrafa út. Ný aðgangsorð, aðgangslyklar og aðrar upplýsingar verða nú vistaðar hér í framhaldinu."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Aðgangsorð, aðgangslyklar og gagnaþjónustur"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Aðgangsorð, aðgangslyklar og gagnaþjónustur"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Viltu slökkva á %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Viltu slökkva á þessari þjónustu?</b> <br/> <br/> Vistaðar upplýsingar á borð við aðgangsorð, aðgangslykla, greiðslumáta og aðrar upplýsingar verða ekki fylltar út þegar þú skráir þig inn. Veldu aðgangsorð, aðgangslykil eða gagnaþjónustu til að nota vistuðu upplýsingarnar."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Nota %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s notar efni á skjánum hjá þér til að ákvarða hvað er hægt að fylla út sjálfkrafa."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Hámark aðgangsorða, aðgangslykla og gagnaþjónusta"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Þú getur verið með allt að 5 aðgangsorð, aðgangslykla og gagnaþjónustur virkar á sama tíma. Slökktu á þjónustu til að bæta nýrri við."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Hámark aðgangsorða, aðgangslykla og gagnaþjónusta"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Þú getur verið með allt að 5 aðgangsorð, aðgangslykla og gagnaþjónustur virkar á sama tíma. Slökktu á þjónustu til að bæta nýrri við."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Slökkva"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Sjálfvirk útfylling"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Skráningarstig"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Hljómgæði samhæfs efnis verða betri"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Rakning höfuðs"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Hljóðið aðlagast höfuðhreyfingum til að allt hljómi sem eðlilegast"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tegund hljómtækis"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Óþekkt"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Hátalari"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Heyrnartól"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Bílabúnaður"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Annað"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Niðurhalsmörk netkerfis"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Stilla inntaksmörk bandvíddar netkerfis sem notuð eru fyrir öll netkerfi sem veita nettengingu."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Stilla niðurhalsmörk netkerfis"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Fjarlægja forrit"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Forrit sem voru sett upp á síðasta # mánuði}one{Forrit sem voru sett upp á síðasta # mánuði}other{Forrit sem voru sett upp á síðustu # mánuðum}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Forrit sem voru sett upp fyrir # mánuði}one{Forrit sem voru sett upp fyrir # mánuði}other{Forrit sem voru sett upp fyrir # mánuðum}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Myndhlutfall"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Veldu myndhlutfall fyrir þetta forrit ef það er ekki sniðið að <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Tillögur að forritum"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Forrit sem þú hefur hnekkt"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Sjálfgefið í forriti"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Allur skjárinn"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Hálfur skjárinn"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Myndhlutfall tækis"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Forritið verður endurræst þegar þú breytir myndhlutfallinu. Óvistaðar breytingar gætu glatast."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingrafaralesari"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Flasstilkynningar"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Um flasstilkynningar"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Miðlungs"</string>
<string name="contrast_high" msgid="3988567609694797696">"Mikið"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Aðeins er hægt að opna þetta forrit í 1 glugga"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Kveikt á þjónustu"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Slökkt á þjónustu"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Slökkt á flýtileið"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Kveikt"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Slökkt"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Slökkt"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Slökkt"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Kveikt"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Slökkt"</string>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index b246a4c..7d4ff29 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Dopo 1 minuto"</item>
<item msgid="1574040255478150028">"Dopo 5 minuti"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Attiva la luminosità adattiva per prolungare la durata della batteria"</item>
+ <item msgid="2256666063790193306">"Riduci lo spegnimento schermo per prolungare la durata della batteria"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 7674f3b..8d447c8 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Non specificati"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Femminili"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Maschili"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vuoi rimuovere la lingua selezionata?}other{Vuoi rimuovere le lingue selezionate?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Il testo verrà mostrato in un\'altra lingua."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Impossibile rimuovere tutte le lingue"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Volto e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Volto, impronta e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Volto, impronte e <xliff:g id="WATCH">%s</xliff:g> aggiunti"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configura l\'orologio"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Sblocco dall\'orologio è un altro modo pratico per sbloccare lo smartphone, ad esempio quando hai le dita bagnate o il volto non viene riconosciuto.\n\nPuoi usare lo smartwatch per sbloccare lo smartphone quando:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Non ora"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continua"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Altro"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Come funziona"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Lo smartwatch deve essere sbloccato, sul polso e vicino allo smartphone. Non sarà necessario sbloccare nuovamente lo smartwatch quando si trova sul polso."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando lo smartphone viene sbloccato, riceverai una notifica sullo smartwatch. Se è stato sbloccato quando non era tua intenzione, tocca la notifica per bloccare di nuovo lo smartphone."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Sei tu ad avere il controllo"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Puoi rimuovere lo smartwatch da Sblocco dall\'orologio in qualsiasi momento in Impostazioni"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tocca una notifica"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Scorri verso l\'alto sulla schermata di blocco"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Scegli il tuo smartwatch"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Smartwatch disponibili"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annulla"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Conferma"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Ecco fatto!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Ora puoi usare lo smartwatch per sbloccare lo smartphone quando scorri verso l\'alto sulla schermata di blocco o tocchi una notifica"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Fine"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Sblocco dall\'orologio"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Puoi usare l\'orologio per sbloccare lo smartphone quando scorri verso l\'alto sulla schermata di blocco o tocchi una notifica"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Per utilizzare Sblocco dall\'orologio, lo smartwatch deve essere sbloccato, al polso, a portata di mano e connesso allo smartphone. Se la connessione si interrompe, devi sbloccare lo smartphone prima di poter utilizzare Sblocco dall\'orologio.\n\nNota:\nÈ possibile configurare un solo smartwatch alla volta. Per aggiungerne un altro, devi prima rimuovere quello attuale."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Scopri di più su Sblocco dall\'orologio"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Aggiungi smartwatch"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Rimuovi smartwatch"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Sblocco con l\'impronta e con il volto"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Sblocco con il volto e con l\'impronta per lavoro"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configurazione richiesta"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Potrebbe inoltre essere necessario digitare questa passkey sull\'altro dispositivo."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Conferma per eseguire l\'accoppiamento con il set coordinato"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Consenti l\'accesso ai tuoi contatti e alla cronologia chiamate"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Consenti anche l\'accesso ai contatti e alla cronologia delle chiamate"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Le informazioni saranno utilizzate per gli annunci delle chiamate e altro ancora"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Impossibile collegarsi a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivi disponibili"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Condivisione della rete Wi‑Fi con questo dispositivo…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connessione…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Condividi hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica la tua identità"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Dimostra che sei tu"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Password Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Password hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Connessione automatica"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rete fuori portata"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Elimina"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modifica"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Impossibile eliminare la rete"</string>
<string name="wifi_save" msgid="2312643132472226807">"Salva"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Impossibile salvare la rete"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Annulla"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Se la tua frequenza preferita non è disponibile, l\'hotspot potrebbe utilizzarne una diversa. Le impostazioni di sicurezza dell\'hotspot potrebbero cambiare se modifichi la frequenza."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Non disponibile con 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Le impostazioni di sicurezza potrebbero cambiare se modifichi la frequenza dell\'hotspot"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Attivazione hotspot…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Disattivazione hotspot…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering non disponibile"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Hai dimenticato la password?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Hai dimenticato la sequenza?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Hai dimenticato il PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Inserisci la sequenza del dispositivo per continuare"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Per continuare devi inserire il PIN del dispositivo"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Per continuare devi inserire la password del dispositivo"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Per continuare devi utilizzare la sequenza del tuo profilo di lavoro"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Inserisci la sequenza per continuare"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Inserisci il PIN per continuare"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Inserisci la password per continuare"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Inserisci la sequenza di lavoro per continuare"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Per continuare devi inserire il PIN del tuo profilo di lavoro"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Per continuare devi inserire la password del tuo profilo di lavoro"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Per maggiore sicurezza, usa la sequenza del dispositivo"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nessuna descrizione fornita."</string>
<string name="settings_button" msgid="2195468788019730377">"Impostazioni"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilità alla luce, fotofobia, tema scuro, emicrania, mal di testa, modalità di lettura, modalità notturna, ridurre la luminosità, punto di bianco"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"facilità d\'uso, facilità di accesso, assistenza, assistivo"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vista, udito, cieco, sordo, motorie, mobilità, assistivo, assistenza, facilità di utilizzo, facilità di accesso, mano, aiuto"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ingrandimento della finestra, zoom, ingrandimento, ipovedente, ingrandimento, ingrandire"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"sottotitoli codificati, sottotitolaggio codificato, CC, Trascrizione istantanea, problemi di udito, perdita dell\'udito, CART, conversione della voce in testo, sottotitolo"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contrasto di colore"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motore, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"apparecchi acustici, disabilità uditiva, perdita dell\'udito, impianti cocleari, dispositivi di amplificazione, processori del suono"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorie, mouse, mouse esterno, head mouse, mouse adattivo, sedia a rotelle, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"apparecchi acustici, disabilità uditiva, perdita dell\'udito, impianti cocleari, dispositivi di amplificazione, processori del suono, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"problemi di udito, perdita dell\'udito, sottotitoli, teletype, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tre pulsanti"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"mobilità, motorie, anziani, artrite, lsr, ictus, tremore, sclerosi multipla, paralisi cerebrale, tremolio, lesioni da sforzo ripetuto, mano"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ritardo, mobilità, anziani"</string>
<string name="print_settings" msgid="8519810615863882491">"Stampa"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Off"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 servizio di stampa attivo}other{# servizi di stampa attivi}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Avviso sui dati: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Limite dati: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Avviso relativo ai dati: <xliff:g id="ID_1">^1</xliff:g> / Limite dati: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"La misurazione dell\'operatore potrebbe differire da quella del dispositivo"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Sono esclusi i dati usati dalle reti dell\'operatore"</string>
<string name="data_used_template" msgid="8229342096562327646">"Dati utilizzati: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Imposta avviso sui dati"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Servizio di compilazione automatica"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Servizio di compilazione automatica predefinito"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Password"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Servizi per password, passkey e dati"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Servizi per password, passkey e dati"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Provider aggiuntivi"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}other{# password}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatica, compilazione, compilazione automatica, password"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatica, compilazione, compilazione automatica, dati, passkey, password"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Verifica che questa app sia attendibile</b> <br/> <br/> <xliff:g id=app_name example=La Compilazione automatica di Google>%1$s</xliff:g> usa ciò che appare sullo schermo per stabilire quali contenuti possono essere compilati automaticamente."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Utilizzare <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> utilizza i contenuti sullo schermo per stabilire quali informazioni possono essere compilate automaticamente. D\'ora in poi le nuove password, passkey e altre informazioni verranno salvate qui."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Servizi per password, passkey e dati"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Servizi per password, passkey e dati"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vuoi disattivare %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Disattiva questo servizio?</b> <br/> <br/> Le informazioni salvate, come password, passkey, metodi di pagamento e altre informazioni, non verranno inserite quando accedi. Per usare le informazioni salvate, scegli una password, una passkey o un servizio dati."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Vuoi usare %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa i contenuti sullo schermo per stabilire quali informazioni possono essere compilate automaticamente."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limite di servizi per password, passkey e dati"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Puoi attivare contemporaneamente fino a 5 servizi per password, passkey e dati. Per aggiungere un altro servizio devi disattivarne uno."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limite di servizi per password, passkey e dati"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Puoi attivare contemporaneamente fino a 5 servizi per password, passkey e dati. Per aggiungere un altro servizio devi disattivarne uno."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Disattiva"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Compilazione automatica"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Livello di logging"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"L\'audio dei dispositivi multimediali compatibili diventa più immersivo"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Rilevamento dei movimenti della testa"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"L\'audio cambia in base ai movimenti della testa per sembrare più naturale"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo di dispositivo audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Sconosciuto"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altoparlante"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Cuffie"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit auto"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Altro"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limite di velocità di download della rete"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura il limite di velocità in entrata della larghezza di banda della rete applicato a tutte le reti che forniscono una connessione a Internet"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura il limite di velocità di download della rete"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Disinstalla app"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{App installate nell\'ultimo mese}other{App installate negli ultimi # mesi}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{App installate più di # mese fa}other{App installate più di # mesi fa}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Proporzioni"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Scegli le proporzioni per visualizzare questa app se non è stata progettata per adattarsi al tuo dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"App consigliate"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"App sottoposte a override"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Valore predefinito dell\'app"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Schermo intero"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Metà schermo"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Proporzioni del dispositivo"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"L\'app si riavvierà quando modifichi le proporzioni. Potresti perdere le modifiche non salvate."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensore di impronte digitali"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Flash di notifica"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Informazioni sul flash di notifica"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medio"</string>
<string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Questa app può essere aperta soltanto in 1 finestra"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Servizio attivato"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Servizio disattivato"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Scorciatoia disattivata"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"On"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Off"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Off"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Off"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"On"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Off"</string>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 9d016bb..ba6fcfd 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"לאחר דקה אחת"</item>
<item msgid="1574040255478150028">"לאחר 5 דקות"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"כדי להאריך את חיי הסוללה, כדאי להפעיל את הבהירות האוטומטית"</item>
+ <item msgid="2256666063790193306">"כדי להאריך את חיי הסוללה, כדאי לצמצם את הזמן הקצוב לכיבוי המסך"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 891f7b6..a95ad4a 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"לא רוצה להגדיר"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"נקבה"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"זכר"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{להסיר את השפה שנבחרה?}one{להסיר את השפות שנבחרו?}two{להסיר את השפות שנבחרו?}other{להסיר את השפות שנבחרו?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"הטקסט יוצג בשפה אחרת."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"לא ניתן להסיר את כל השפות"</string>
@@ -264,7 +266,7 @@
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"בטעינה…"</string>
<string name="location_settings_footer_general" msgid="1040507068701188821">"אפליקציות עם ההרשאה \"מכשירים בקרבת מקום\" יכולות להעריך את המיקום היחסי של המכשירים המחוברים."</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"הגישה למיקום מושבתת עבור אפליקציות ושירותים. אם מתקשרים למספר חירום או שולחים אליו הודעת טקסט, ייתכן שפרטי מיקום המכשיר יישלחו לצוותי חירום."</string>
- <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"קריאת מידע נוסף על הגדרות מיקום."</string>
+ <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"למידע נוסף על הגדרות המיקום"</string>
<string name="account_settings_title" msgid="9138880127246241885">"חשבונות"</string>
<string name="security_settings_title" msgid="6710768415432791970">"אבטחה"</string>
<string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"הצפנה ופרטי כניסה"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"הפנים וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"הפנים, טביעת האצבע וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"הפנים, טביעות האצבע וה-<xliff:g id="WATCH">%s</xliff:g> נוספו"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"הגדרת השעון"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"התכונה \'ביטול נעילה עם השעון\' היא עוד דרך נוחה לבטל את הנעילה של הטלפון, למשל, אם האצבעות שלך רטובות או שהפנים שלך לא מזוהות.\n\nאפשר להשתמש בשעון כדי לבטל את נעילת הטלפון כאשר:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"לא עכשיו"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"המשך"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"עוד"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"איך זה עובד"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"השעון צריך להיות פתוח, על פרק כף היד שלך וקרוב לטלפון. כשהשעון על פרק כף היד, לא צריך לבטל את הנעילה שלו שוב."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"כשמבטלים את הנעילה של הטלפון מקבלים התראה בשעון. אם הטלפון נפתח כשלא התכוונת, אפשר להקיש על ההתראה כדי לנעול אותו שוב."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"השליטה בידיים שלך"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"אפשר להסיר את השעון מהתכונה \'ביטול נעילה עם השעון\' בכל שלב בהגדרות"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"מקישים על התראה"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"מחליקים כלפי מעלה על מסך הנעילה"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"בחירת השעון"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"שעונים זמינים"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ביטול"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"אישור"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"הכול מוכן!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"עכשיו אפשר להשתמש בשעון כדי לבטל את נעילת הטלפון הזה כשמחליקים למעלה במסך הנעילה או כשמקישים על התראה"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"סיום"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ביטול נעילה עם השעון"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"אפשר להשתמש בשעון כדי לבטל את הנעילה של הטלפון הזה כשמחליקים למעלה במסך הנעילה או כשמקישים על התראה"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"כדי להשתמש בתכונה \'ביטול נעילה עם השעון\', השעון צריך להיות פתוח, על פרק כף היד שלך, בהישג יד ומחובר לטלפון הזה. אם החיבור נקטע, עליך לבטל את נעילת הטלפון כדי להשתמש בתכונה \'ביטול נעילה עם השעון\'.\n\nחשוב לזכור:\nניתן להגדיר רק שעון אחד בכל פעם. כדי להוסיף עוד שעון, קודם צריך להסיר את השעון הנוכחי."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"מידע נוסף על ביטול נעילה עם השעון"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"הוספת השעון"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"הסרת השעון"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"פתיחה בטביעת אצבע ופתיחה ע\"י זיהוי הפנים"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"פתיחה ע\"י זיהוי הפנים וביטול הנעילה בטביעת אצבע בפרופיל העבודה"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"צריך להגדיר ביטול נעילה בעזרת מידע ביומטרי"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ייתכן שתצטרך להקליד את המפתח הזה גם במכשיר השני."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"עליך לאשר התאמה עם הקבוצה המתואמת"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"אישור גישה אל אנשי הקשר והיסטוריית השיחות"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"תינתן גישה לאנשי הקשר ולהיסטוריית השיחות"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"המידע ישמש להודעות על שיחות ועוד"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"לא הייתה אפשרות להתחבר אל <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"מכשירים זמינים"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"מתבצע שיתוף Wi‑Fi עם מכשיר זה…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"בתהליך התחברות…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"שיתוף של נקודת אינטרנט"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"אימות זהותך"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"אימות הזהות שלך"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"סיסמת ה-Wi‑Fi היא: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"סיסמה של נקודה לשיתוף אינטרנט: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"חיבור אוטומטי"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"הרשת לא בטווח"</string>
<string name="wifi_forget" msgid="3485573280364015620">"הסרה"</string>
<string name="wifi_modify" msgid="5127926476383659412">"שנה"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"נכשל הניסיון לשכוח את הרשת"</string>
<string name="wifi_save" msgid="2312643132472226807">"שמירה"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"נכשל הניסיון לשמור את הרשת"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"ביטול"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"אם התדירות המועדפת לא זמינה, יכול להיות שנקודת האינטרנט תשתמש בתדירות אחרת. הגדרות האבטחה של נקודת האינטרנט עשויות להשתנות כשמשנים את התדירות."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"אין זמינות עם 6GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"הגדרות האבטחה עשויות להשתנות אם משנים את תדירות נקודת האינטרנט (Hotspot)"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"מתבצעת הפעלה של נקודה לשיתוף אינטרנט…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"מתבצע כיבוי של נקודה לשיתוף אינטרנט…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"שיתוף האינטרנט בין מכשירים (tethering) לא זמין"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"שכחת סיסמה?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"שכחת את קו ביטול הנעילה?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"שכחת את קוד האימות?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"יש להשתמש בקו ביטול הנעילה של המכשיר כדי להמשיך"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"כדי להמשיך צריך להקיש את קוד הגישה למכשיר"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"יש להזין את סיסמת המכשיר כדי להמשיך"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"אפשר להשתמש בקו ביטול הנעילה בעבודה כדי להמשיך"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"כדי להמשיך, צריך להזין את קו ביטול הנעילה"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"מטעמי אבטחה, עליך להזין את קו ביטול הנעילה"</string>
@@ -1974,8 +2008,8 @@
<string name="accessibility_autoclick_seekbar_desc" msgid="8363959277814621118">"זמן לחיצה אוטומטית"</string>
<string name="accessibility_vibration_settings_title" msgid="936301142478631993">"רטט ומשוב פיזי"</string>
<string name="accessibility_vibration_settings_summary" msgid="3690308537483465527">"שליטה בעוצמת הרטט לשימושים שונים"</string>
- <string name="accessibility_vibration_settings_state_on" msgid="5566026932372832502">"מופעלת"</string>
- <string name="accessibility_vibration_settings_state_off" msgid="7946588741954981703">"כבויה"</string>
+ <string name="accessibility_vibration_settings_state_on" msgid="5566026932372832502">"מופעל"</string>
+ <string name="accessibility_vibration_settings_state_off" msgid="7946588741954981703">"כבוי"</string>
<string name="accessibility_vibration_setting_disabled_for_silent_mode_summary" msgid="3982701772953323190">"ההגדרה הושבתה מפני שהמכשיר מוגדר למצב שקט"</string>
<string name="accessibility_call_vibration_category_title" msgid="2545607568768192318">"שיחות"</string>
<string name="accessibility_notification_alarm_vibration_category_title" msgid="2683635252414849417">"התראות"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"לא סופק תיאור."</string>
<string name="settings_button" msgid="2195468788019730377">"הגדרות"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"רגישות לאור, פוטופוביה, עיצוב כהה, מיגרנה, כאב ראש, מצב קריאה, מצב לילה, הפחתת בהירות, נקודה לבנה"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"שימוש בקלות, קבלת גישה בקלות, עזרה, כלי מסייע"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"ראייה, שמיעה, עיוור, לקוי ראייה, עיוורון, חירש, לקוי שמיעה, חירשות, מוטורי, לקות מוטורית, ניידות, מוטוריקה עדינה, מסייע, סיוע, קלות השימוש, נגישות, גישה קלה, יד, עזרה"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"כלי להגדלת חלון, זום, הגדלה, לקוי ראייה, הגדלה"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"כתוביות, תמלול בזמן אמת, כבד שמיעה, אובדן שמיעה, CART, המרת דיבור לטקסט (STT), כתובית"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"ניגודיות של צבעים"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"מוטורי, עכבר"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"מכשירי שמיעה, כבד שמיעה, אובדן שמיעה, שתלים קוכליאריים, מכשירי הגברה, מעבדי צלילים"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"מוטורי, לקות מוטורית, ניידות, עכבר, עכבר חיצוני, עכבר ראש, עכבר ניתן להתאמה, עכבר מותאם, כיסא גלגלים, ג\'ויסטיק, מוט היגוי"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"מכשירי שמיעה, כבד שמיעה, לקות שמיעה, אובדן שמיעה, שתלים קוכליאריים, שתל קוכליארי, מכשירי הגברה, מעבדי צלילים, עיבוד צלילים, PSAP, מוקד חירום לציבור"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"כבד שמיעה, אובדן שמיעה, כתוביות, הקלדה באמצעות TTY, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"שלושה לחצנים"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"מוטוריקה עדינה, מוטורי, לקות מוטורית, ניידות, דלקת מפרקים, מדד העוצמה היחסית (RSI), שבץ, רעד, טרשת נפוצה, שיתוק מוחין, רעידה, פציעה בעקבות עומס חוזר ונשנה, יד"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"עיכוב, מוטוריקה עדינה, אזרחים ותיקים, מבוגרים"</string>
<string name="print_settings" msgid="8519810615863882491">"הדפסה"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"כבוי"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{שירות הדפסה אחד פועל}one{# שירותי הדפסה פועלים}two{# שירותי הדפסה פועלים}other{# שירותי הדפסה פועלים}}"</string>
@@ -3353,7 +3390,7 @@
<string name="app_notification_override_dnd_title" msgid="3769539356442226691">"התעלמות ממצב \'נא לא להפריע\'"</string>
<string name="app_notification_override_dnd_summary" msgid="4894641191397562920">"ההתראות האלה יוכלו להמשיך ולהפריע כשמצב \'נא לא להפריע\' מופעל"</string>
<string name="app_notification_visibility_override_title" msgid="7778628150022065920">"מסך נעילה"</string>
- <string name="app_notifications_dialog_done" msgid="573716608705273004">"בוצע"</string>
+ <string name="app_notifications_dialog_done" msgid="573716608705273004">"אישור"</string>
<string name="notification_show_lights_title" msgid="5564315979007438583">"אור מהבהב"</string>
<string name="notification_vibrate_title" msgid="1422330728336623351">"רטט"</string>
<string name="notification_channel_sound_title" msgid="9018031231387273476">"צליל"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"אזהרה לגבי שימוש בנתונים: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"מגבלת נתונים: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"אזהרה לגבי שימוש בנתונים – <xliff:g id="ID_1">^1</xliff:g> / מגבלת נתונים – <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"ייתכן שחישוב השימוש בנתונים אצל הספק יהיה שונה מזה שבמכשיר"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"לא כולל נתונים שמשמשים את רשתות הספק"</string>
<string name="data_used_template" msgid="8229342096562327646">"נעשה שימוש ב-<xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"הגדרת אזהרה לגבי שימוש בנתונים"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"שירות מילוי אוטומטי"</string>
<string name="default_autofill_app" msgid="372234803718251606">"שירות מילוי אוטומטי שמוגדר כברירת מחדל"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"סיסמאות"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"סיסמאות, מפתחות גישה ושירותי נתונים"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"סיסמאות, מפתחות גישה ושירותי נתונים"</string>
<string name="credman_credentials" msgid="4931371941253324143">"ספקים נוספים"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{סיסמה אחת (#)}one{# סיסמאות}two{# סיסמאות}other{# סיסמאות}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"אוטומטי, מילוי, מילוי אוטומטי, סיסמה"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"מילוי, אוטומטי, מילוי אוטומטי, נתונים, מפתח גישה, סיסמה"</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="4951846866327737417">"<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="2642776965060619988">"סיסמאות, מפתחות גישה ושירותי נתונים"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"סיסמאות, מפתחות גישה ושירותי נתונים"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"להשבית את %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>להשבית את השירות הזה?</b> <br/> <br/> מידע שנשמר כמו סיסמאות, מפתחות גישה, אמצעי תשלום ופרטים נוספים לא ימולאו כשתתבצע כניסה. כדי להשתמש במידע שנשמר, צריך לבחור סיסמה, מפתח גישה או שירות נתונים."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"להשתמש ב-%1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s עושה שימוש במידע המוצג במסך כדי לקבוע אילו פרטים ניתן למלא באופן אוטומטי."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"מגבלת הסיסמאות, מפתחות הגישה ושירותי הנתונים"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"ניתן להפעיל עד 5 סיסמאות, מפתחות גישה ושירותי נתונים בו-זמנית. יש להשבית אחד מהשירותים כדי להוסיף שירות אחר."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"מגבלת הסיסמאות, מפתחות הגישה ושירותי הנתונים"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"ניתן להפעיל עד 5 סיסמאות, מפתחות גישה ושירותי נתונים בו-זמנית. יש להשבית אחד מהשירותים כדי להוסיף שירות אחר."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"השבתה"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"מילוי אוטומטי"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"רמת רישום ביומן"</string>
@@ -4673,6 +4709,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"אודיו שמגיע ממכשירי מדיה תואמים יוצר חוויה עשירה יותר"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"מעקב אחר תנועות הראש"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"האודיו משתנה בהתאם לתנועות הראש כדי שיישמע טבעי יותר"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"סוג של התקן אודיו"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"לא ידוע"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"רמקול"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"אוזניות"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"דיבורית לרכב"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"אחר"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"הגבלה לקצב ההורדה ברשת"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"הגדרת הגבלה לקצב של תעבורת הנתונים הנכנסת ברוחב הפס של הרשת. ההגבלה תחול על כל הרשתות שמאפשרות חיבור לאינטרנט."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"הגדרת הגבלה לקצב ההורדה ברשת"</string>
@@ -4751,10 +4795,9 @@
<string name="contrast_medium" msgid="384414510709285811">"בינונית"</string>
<string name="contrast_high" msgid="3988567609694797696">"גבוהה"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ניתן לפתוח את האפליקציה הזו רק בחלון אחד"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"השירות מופעל"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"השירות מושבת"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"הקיצור מושבת"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"מצב פעיל"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"מצב מושבת"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"מצב מושבת"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"מושבת"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"מופעלת"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"מושבתת"</string>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index d3cadf8..b60db0c 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 分後"</item>
<item msgid="1574040255478150028">"5 分後"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"「明るさの自動調節」機能を ON にするとバッテリーを長持ちさせることができます"</item>
+ <item msgid="2256666063790193306">"画面消灯までの時間を短くするとバッテリーを長持ちさせることができます"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index e84aed6..5347b20 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"指定しない"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"女性"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"男性"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{選択した言語を削除しますか?}other{選択した言語を削除しますか?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"テキストは別の言語で表示されるようになります。"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"すべての言語を削除することはできません"</string>
@@ -250,7 +252,7 @@
<string name="zone_time_type_standard" msgid="6865420715430680352">"標準時間"</string>
<string name="zone_menu_by_region" msgid="2963565278710225652">"地域で選択"</string>
<string name="zone_menu_by_offset" msgid="1257702747474426745">"UTC オフセットで選択"</string>
- <string name="lock_after_timeout" msgid="8682769000437403444">"画面が自動的に消灯してからロックまでの時間"</string>
+ <string name="lock_after_timeout" msgid="8682769000437403444">"画面が自動消灯してからロックまでの時間"</string>
<string name="lock_after_timeout_summary" msgid="4869265514658147304">"タイムアウトから <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g>"</string>
<string name="lock_immediately_summary_with_exception" msgid="40819611828339044">"画面消灯の直後にロック(<xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> がロック解除を管理している場合を除く)"</string>
<string name="lock_after_timeout_summary_with_exception" msgid="3441806647509073124">"画面が自動的に消灯してから<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g>後にロック(<xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g> がロック解除を管理している場合を除く)"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"顔、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"顔、指紋、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"顔、指紋、<xliff:g id="WATCH">%s</xliff:g>を登録しました"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"スマートウォッチのセットアップ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"ウォッチ認証を使用すると、たとえば指が濡れているときや顔が認識されないときでも、このスマートフォンをロック解除できます。\n\n次のようにして、スマートウォッチでこのスマートフォンをロック解除できます。"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"後で"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"続行"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"もっと見る"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"仕組み"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"スマートウォッチをロック解除し、手首に着けて、このスマートフォンに近づける必要があります。すでに着けている場合は、スマートウォッチを再びロック解除する必要はありません。"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"このスマートフォンがロック解除されると、スマートウォッチに通知が届きます。意図せずロック解除された場合は、通知をタップしてスマートフォンをもう一度ロックしてください。"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ユーザーが設定可能"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"[設定] で、ウォッチ認証からスマートウォッチをいつでも削除できます"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"通知をタップする"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ロック画面を上にスワイプする"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"スマートウォッチの選択"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"対応しているスマートウォッチ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"キャンセル"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"確認"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"設定完了"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ロック画面で上にスワイプするか通知をタップすることで、スマートウォッチからスマートフォンをロック解除できるようになりました"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"完了"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ウォッチ認証"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ロック画面で上にスワイプするか通知をタップすることで、スマートウォッチからスマートフォンをロック解除できます"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ウォッチ認証を使用するには、スマートウォッチがロック解除されていること、手首に装着されていること、このスマートフォンの近くにあること、このスマートフォンと接続済みであることが必要です。接続が中断された場合、ウォッチ認証を使用するにはスマートフォンをロック解除する必要があります。\n\n注意事項:\n一度にセットアップできるスマートウォッチは 1 つだけです。他のスマートウォッチを追加するには、セットアップ済みのスマートウォッチを削除してください。"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ウォッチ認証の詳細"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"スマートウォッチを追加"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"スマートウォッチを削除"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指紋認証と顔認証"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"仕事用の顔認証と指紋認証"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"セットアップが必要です"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"もう一方のデバイスでも、このパスキーの入力が必要な場合があります。"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"確認すると、調整された設定でペア設定します"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"連絡先と通話履歴へのアクセスを許可する"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"連絡先と通話履歴へのアクセスも許可します"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"情報は着信の通知などに使用されます"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>に接続できませんでした。"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"使用可能なデバイス"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi をこのデバイスと共有しています…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"接続しています…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"アクセス ポイントの共有"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"本人確認"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"本人確認"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi パスワード: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"アクセス ポイントのパスワード: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"自動接続"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ネットワーク圏外です"</string>
<string name="wifi_forget" msgid="3485573280364015620">"削除"</string>
<string name="wifi_modify" msgid="5127926476383659412">"変更"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ネットワークを削除できませんでした"</string>
<string name="wifi_save" msgid="2312643132472226807">"保存"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"ネットワークを保存できませんでした"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"キャンセル"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"優先周波数を利用できない場合、アクセス ポイントは別の周波数を使用する可能性があります。周波数を変更すると、アクセス ポイントのセキュリティ設定が変更される可能性があります。"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz には対応していません"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"アクセス ポイントの周波数を変更すると、セキュリティ設定が変更される可能性があります"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"アクセスポイントをONにしています…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"アクセスポイントをOFFにしています…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"テザリングは利用できません"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"パスワードを忘れた場合"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"パターンを忘れた場合"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN を忘れた場合"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"続行するにはロック解除のパターンを入力してください"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"続行するにはデバイスの PIN を入力してください"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"続行するにはデバイスのパスワードを入力してください"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"仕事用のパターンを使って続行します"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"続行するにはパターンを入力してください"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"続行するには PIN を入力してください"</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">"続行するには仕事用の PIN を入力してください"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"続行するには仕事用のパスワードを入力してください"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"セキュリティ強化のため、デバイスのパターンを入力してください"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"説明はありません。"</string>
<string name="settings_button" msgid="2195468788019730377">"設定"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"光 過敏, 羞明, ダーク テーマ, 片頭痛, 頭痛, 読書 モード, 夜間 モード, 下げる 明るさ, ホワイト ポイント"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"使いやすい, アクセスしやすい, アシスタント, アシスト"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"視覚, 聴覚, 視覚障がい, 聴覚障がい, 運動, 運動機能, 補助, アシスト, 使いやすい, アクセスしやすい, 腕, ヘルプ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Window Magnifier, ズーム, 拡大, ロー ビジョン, 大きくする, 切り替え 大きく"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"キャプション, クローズド キャプション, CC, 音声 文字変換, 難聴, 聴覚 障がい, CART, 音声 入力, 字幕"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"色のコントラスト"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"運動, マウス"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"補聴器, 難聴, 聴力の喪失, 人工内耳, 聴覚補助器, サウンド プロセッサ"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"運動, マウス, 外付けマウス, ヘッドマウス, 適応型マウス, 車椅子, ジョイスティック"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"補聴器, 難聴, 聴力の喪失, 人工内耳, 聴覚補助器, サウンド プロセッサ, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"難聴, 聴覚 障がい, 字幕, テレタイプ, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"3 ボタン"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"運動機能, 運動, 高齢者, 関節炎, RSI, 脳卒中, 振戦, 多発性硬化症, 脳性麻痺, 震え, 反復運動損傷, 腕"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"遅い, 運動機能, 高齢者"</string>
<string name="print_settings" msgid="8519810615863882491">"印刷"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"OFF"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 件の印刷サービスが ON}other{# 件の印刷サービスが ON}}"</string>
@@ -2810,7 +2847,7 @@
<string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE(推奨)"</string>
<string name="mms_message_title" msgid="6624505196063391964">"MMS メッセージ"</string>
<string name="mms_message_summary" msgid="2855847140141698341">"モバイルデータが OFF のときに送受信します"</string>
- <string name="auto_data_switch_title" msgid="5862200603753603464">"モバイルデータに自動的に切り替えます"</string>
+ <string name="auto_data_switch_title" msgid="5862200603753603464">"モバイルデータを自動的に切替"</string>
<string name="auto_data_switch_summary" msgid="1934340931995429057">"このネットワークのほうが接続が安定している場合、こちらを一時的に使用します"</string>
<string name="work_sim_title" msgid="8999872928646924429">"仕事用SIM"</string>
<string name="user_restrictions_title" msgid="4068914244980335993">"アプリとコンテンツへのアクセス"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"警告するデータ使用量: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"データ上限: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"データ警告: <xliff:g id="ID_1">^1</xliff:g> / データ上限: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"デバイスで記録されるデータ使用量と携帯通信会社のデータ使用量は異なる場合があります"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"モバイルデータ通信の使用量は含まれません"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> 使用"</string>
<string name="set_data_warning" msgid="1685771882794205462">"データ使用量を警告"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"自動入力サービス"</string>
<string name="default_autofill_app" msgid="372234803718251606">"デフォルトの自動入力サービス"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"パスワード"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"パスワード、パスキー、データのサービス"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"パスワード、パスキー、データのサービス"</string>
<string name="credman_credentials" msgid="4931371941253324143">"追加のプロバイダ"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# 件のパスワード}other{# 件のパスワード}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"自動, 入力, 自動入力, パスワード"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"自動, 入力, 自動入力, データ, パスキー, パスワード"</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="4951846866327737417">"<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="2642776965060619988">"パスワード、パスキー、データのサービス"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"パスワード、パスキー、データのサービス"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s を OFF にしますか?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>このサービスを無効にしますか?</b> <br/> <br/>パスワード、パスキー、お支払い方法などの情報を保存しました。その他の情報はログイン時に入力されません。保存された情報を使用するには、パスワード、パスキー、またはデータのサービスを選択してください。"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s を使用しますか?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s は自動入力できる情報を判断するために画面上に表示される情報を使用します。"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"パスワード、パスキー、データのサービスの上限に達しました"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"一度に有効にできるパスワード、パスキー、データのサービスは 5 個までです。追加するには、いずれかのサービスを OFF にしてください。"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"パスワード、パスキー、データのサービスの上限に達しました"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"一度に有効にできるパスワード、パスキー、データのサービスは 5 個までです。追加するには、いずれかのサービスを OFF にしてください。"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"OFF にする"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"自動入力"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"ロギングレベル"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"対応するメディアを臨場感あふれる音声でお楽しみいただけます"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ヘッド トラッキング"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"より自然なサウンドになるよう頭の動きに合わせて音声が変化します"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"オーディオ システムのタイプ"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"不明"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"スピーカー"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ヘッドフォン"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"車載キット"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"その他"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ネットワーク ダウンロード速度制限"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"インターネット接続を提供するすべてのネットワークに対して、受信速度を制限します。"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ネットワーク ダウンロード速度制限の設定"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"中"</string>
<string name="contrast_high" msgid="3988567609694797696">"高"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"このアプリはウィンドウが 1 つの場合のみ開くことができます"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"サービス: ON"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"サービス: OFF"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"ショートカット: OFF"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ON"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"OFF"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"OFF"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"OFF"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ON"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"OFF"</string>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index d101086..55b9400 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 წუთის შემდეგ"</item>
<item msgid="1574040255478150028">"5 წუთის შემდეგ"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"ჩართეთ მორგებადი სიკაშკაშე, რათა ბატარეის მუშაობის ხანგრძლივობა გაზარდოთ"</item>
+ <item msgid="2256666063790193306">"შეამცირეთ ეკრანის დროის ლიმიტი, რათა ბატარეის მუშაობის ხანგრძლივობა გაზარდოთ"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index da8866f..b04fe0e 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"არ არის მითითებული"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"მდედრობითი"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"მამრობითი"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ამოიშალოს არჩეული ენა?}other{ამოიშალოს არჩეული ენები?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"ტექსტი სხვა ენაზე იქნება ნაჩვენები."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ყველა ენის ამოშლა ვერ მოხერხდება"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"დაემატა სახე და <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"დაემატა სახე, თითის ანაბეჭდი და <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"დაემატა სახე, თითის ანაბეჭდები და <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"თქვენი საათის დაყენება"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"საათის განბლოკვა ამ ტელეფონის განბლოკვის კიდევ ერთი მოსახერხებელი მეთოდია, მაგალითად, იმ შემთხვევისთვის, როცა თითები სველი გაქვთ ან სახის ამოცნობა ვერ ხერხდება.\n\nამ ტელეფონის განსაბლოკად საათის გამოყენება შეგიძლიათ, როცა:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ახლა არა"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"გაგრძელება"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"მეტი"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"მუშაობის პრინციპი"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"თქვენი საათი უნდა გქონდეთ მაჯაზე განბლოკილ მდგომარეობაში და ამ ტელეფონის დაფარვის არეალში. საათის ხელახლა განბლოკვა არ დაგჭირდებათ, როცა ის მაჯაზე გიკეთიათ."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ტელეფონის განბლოკვის შესახებ შეტყობინებას საათზე მიიღებთ. შემთხვევით განბლოკვის შემთხვევაში შეეხეთ შეტყობინებას, რომ ხელახლა დაბლოკოთ ტელეფონი."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ამას თქვენ აკონტროლებთ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"საათის განბლოკვის გაუქმება ნებისმიერ დროს შეგიძლიათ პარამეტრებიდან"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"შეეხეთ შეტყობინებას"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ჩაკეტილ ეკრანზე გადაფურცლეთ ზემოთ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"აირჩიეთ საათი"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ხელმისაწვდომი საათები"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"გაუქმება"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"დადასტურება"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ყველაფერი მზადაა!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ტელეფონის განბლოკვა უკვე საათითაც შეგიძლიათ ჩაკეტილ ეკრანზე ზემოთ გადაფურცვლით ან შეტყობინებაზე შეხებით"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"მზადაა"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"საათის განბლოკვა"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ტელეფონის განბლოკვა საათით შეგიძლიათ, როდესაც ზემოთ გადაფურცლავთ ჩაკეტილ ეკრანზე ან შეეხებით შეტყობინებას"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"საათის განბლოკვით რომ ისარგებლოთ, თქვენი საათი განბლოკილი, მაჯაზე გაკეთებული, მისაწვდომი და ამ ტელეფონთან დაკავშირებული უნდა იყოს. თუ კავშირი შეფერხდება, დაგჭირდებათ, რომ განბლოკოთ ტელეფონი, სანამ საათის განბლოკვას გამოიყენებთ.\n\nგაითვალისწინეთ:\nერთ ჯერზე მხოლოდ ერთი საათის დაყენება შეგიძლიათ. სხვა საათის დასამატებლად თავდაპირველად არსებული საათი ამოშალეთ."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"შეიტყვეთ მეტი საათის განბლოკვის შესახებ"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"საათის დამატება"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"საათის ამოშლა"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"თითის ანაბეჭდით და სახით განბლოკვა"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"სახით და თითის ანაბეჭდით განბლოკვა სამსახურისთვის"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"საჭიროა დაყენება"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"შესაძლოა ამ წვდომის გასაღების სხვა მოწყობილობაში შეყვანაც დაგჭირდეთ."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"დაადასტურეთ კოორდინირებულ ნაკრებთან დასაწყვილებლად"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"კონტაქტებსა და საუბრის ისტორიაზე წვდომის დაშვება"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"დაუშვით წვდომა კონტაქტებსა და საუბრის ისტორიაზეც"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ინფორმაცია გამოიყენება განცხადებების გამოცხადებისა და სხვა მოქმედებებისთვის"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-თან დაკავშირება ვერ მოხერხდა."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ხელმისაწვდომი მოწყობილობები"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ზიარდება Wi‑Fi ამ მოწყობილობასთან…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"მიმდინარეობს დაკავშირება…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"უსადენო ქსელის გაზიარება"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"დაადასტურეთ, რომ თქვენ ხართ"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"დაადასტურეთ, რომ თქვენ ხართ"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi ქსელის პაროლი: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"უსადენო ქსელის პაროლი: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"ავტოდაკავშირება"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ქსელი არეალში არ არის"</string>
<string name="wifi_forget" msgid="3485573280364015620">"წაშლა"</string>
<string name="wifi_modify" msgid="5127926476383659412">"შეცვლა"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ქსელის დავიწყება ვერ მოხერხდა"</string>
<string name="wifi_save" msgid="2312643132472226807">"შენახვა"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"ქსელის შენახვა ვერ მოხერხდა"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"გაუქმება"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"თუ თქვენი უპირატესი სიხშირე მიუწვდომელია, თქვენმა უსადენო ქსელმა შეიძლება სხვა გამოიყენოს. უსადენო ქსელის უსაფრთხოების პარამეტრები შეიძლება შეიცვალოს, თუ სიხშირეს შეცვლით."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"მიუწვდომელია 6 გჰც-ის შემთხვევაში"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"უსადენო ქსელის სიხშირის შეცვლისას შეიძლება უსაფრთხოების პარამეტრებიც შეიცვალოს"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"უსადენო ქსელი ჩართვა…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"hotspot-ია გამორთვა…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ტეტერინგი მიუწვდომელია"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"პაროლი დაგავიწყდათ?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"დაგავიწყდათ ნიმუში?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"დაგავიწყდათ PIN-კოდი?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"გასაგრძელებლად, გამოიყენეთ თქვენი მოწყობილობის ნიმუში"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"გასაგრძელებლად, შეიყვანეთ თქვენი მოწყობილობის PIN-კოდი"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"გასაგრძელებლად, შეიყვანეთ თქვენი მოწყობილობის პაროლი"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"გასაგრძელებლად, გამოიყენეთ თქვენი სამსახურის ნიმუში"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"გასაგრძელებლად მოხაზეთ თქვენი ნიმუში"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"გასაგრძელებლად შეიყვანეთ თქვენი PIN-კოდი"</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">"გასაგრძელებლად, შეიყვანეთ თქვენი სამსახურის PIN-კოდი"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"გასაგრძელებლად, შეიყვანეთ თქვენი სამსახურის პაროლი"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"დამატებითი უსაფრთხოებისთვის, გამოიყენეთ მოწყობილობის განმბლოკავი ნიმუში"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"აღწერა არ არის მოწოდებული."</string>
<string name="settings_button" msgid="2195468788019730377">"პარამეტრები"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"შუქის მიმართ მგრძნობიარობა, ფოტოფობია, მუქი თემა, შაკიკი, თავის ტკივილი, წაკითხვის რეჟიმი, ღამის რეჟიმი, სიკაშკაშის შემცირება, თეთრი წერტილი"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"გამოყენების სიმარტივე, წვდომის სიმარტივე, დახმარება, დამხმარე"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"მხედველობა, სმენა, უსინათლო, ყრუ, მოტორული, უნარი, დამხმარე, დახმარება, გამოყენების სიმარტივე, წვდომის სიმარტივე, ხელი, დახმარება"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ფანჯრის გამადიდებელი, მასშტაბირება, გადიდება, მხედველობადაქვეითებული, გადიდება, გადიდება"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"სუბტიტრები, დახურული სუბტიტრები, დახ. სუბტ., მყისიერი ტრანსკრიფცია, სმენადაქვეითებული, სმენის დაკარგვა, კომუნიკაციური წვდომის მომსახურება რეალურ დროში (CART), მეტყველების გარდაქმნა ტექსტად, სუბტიტრი"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"ფერთა კონტრასტი"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"ძრავა, მაუსი"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"სმენის მოწყობილობები, სმენის სირთულე, სმენის დაკარგვა, კოხლეარული იმპლანტები, გამაძლიერებელი მოწყობილობები, ხმის დამამუშავებლები"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"მოტორული, მაუსი, გარე მაუსი, თავის მაუსი, ადაპტირებული მაუსი, ეტლი, ჯოისტიკი"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"სმენის მოწყობილობები, სმენის სირთულე, სმენის დაკარგვა, კოხლეარული იმპლანტები, გამაძლიერებელი მოწყობილობები, ხმის დამამუშავებლები, პირადი მოხმარების ხმის გამაძლიერებელი პროდუქტი (PSAP)"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"სმენადაქვეითებული, სმენის დაკარგვა, სუბტიტრები, დისტანციური აკრეფა, დისტანციური ამკრეფი"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"სამი ღილაკი"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"უნარი, მოტორული, ასაკოვანი, ართრიტი, RSI, ინსულტი, ტრემორი, გაფანტული სკლეროზი, ცერებრული დამბლა, მოკანკალე დამბლა, განმეორებითი დაძაბვის დაზიანება, ხელი"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"დაყოვნება, უნარი, ასაკოვანი"</string>
<string name="print_settings" msgid="8519810615863882491">"ბეჭდვა"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"გამორთული"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{ჩართულია ბეჭდვის 1 სერვისი}other{ჩართულია ბეჭდვის # სერვისი}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> გაფრთხილება მობილურ ინტერნეტზე"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> მონაცემთა მოხმარების ლიმიტი"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> გაფრთხილება მობილურ ინტერნეტზე / <xliff:g id="ID_2">^2</xliff:g> მონაცემთა მოხმარების ლიმიტი"</string>
- <string name="operator_warning" msgid="5672761970087591211">"ოპერატორი თქვენ მიერ მოხმარებულ ინტერნეტს შეიძლება მოწყობილობისგან განსხვავებულად ითვლიდეს"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"გამორიცხავს მონაცემებს, რომლებსაც ოპერატორის ქსელები იყენებს"</string>
<string name="data_used_template" msgid="8229342096562327646">"გამოყენებულია <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"მონაც. გაფრთხილების დაყენება"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"ავტომატური შევსების სერვისი"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ავტომატური შევსების ნაგულისხმევი სერვისი"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"პაროლები"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"პაროლების, წვდომის გასაღებებისა და მონაცემთა სერვისები"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"პაროლები, წვდომის გასაღებები და მონაცემთა სერვისები"</string>
<string name="credman_credentials" msgid="4931371941253324143">"დამატებითი პროვაიდერები"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# პაროლი}other{# პაროლი}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ავტომატური, შევსება, ავტომატური შევსება, პაროლი"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ავტომატური, შევსება, ავტომატური შევსება, მონაცემები, წვდომის გასაღებებიწვდომის გასაღები, პაროლი"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>დარწმუნდით, რომ ენდობით ამ აპს</b> <br/> <br/> <xliff:g id=app_name example=Google-ის ავტომატური შევსება>%1$s</xliff:g> იყენებს თქვენს ეკრანზე არსებულ კონტენტს, რათა გაარკვიოს, რა შეიძლება შეივსოს ავტომატურად."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> იყენებს იმას, რაც თქვენს ეკრანზე ჩანს იმის განსაზღვრისთვის, რისი ავტომატურად შევსებაც შეიძლება. ახალი პაროლები, წვდომის გასაღებები და სხვა ინფორმაცია ამიერიდან აქ შეინახება."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"პაროლები, წვდომის გასაღებები და მონაცემთა სერვისები"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"პაროლები, წვდომის გასაღებები და მონაცემთა სერვისები"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"გამოირთოს %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ამ სერვისის გამორთვა?</b> <br/> <br/> შენახული ინფორმაცია, როგორიცაა პაროლები, წვდომის გასაღებები, გადახდის მეთოდები და სხვა ინფორმაცია, არ შეივსება სისტემაში შესვლისას. შენახული ინფორმაციის გამოსაყენებლად აირჩიეთ პაროლი, წვდომის გასაღები ან მონაცემთა სერვისი."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"გსურთ %1$s-ის გამოყენება?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s იყენებს თქვენს ეკრანზე გამოსახულ კონტენტს, რათა გაარკვიოს, რა შეიძლება შეივსოს ავტომატურად."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"პაროლების, წვდომის გასაღებებისა და მონაცემთა სერვისების ლიმიტი"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"შეგიძლიათ, ერთდროულად მაქსიმუმ 5 პაროლი, წვდომის გასაღები და მონაცემთა სერვისი გაააქტიუროთ. მეტის დასამატებლად გამორთეთ სერვისი."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"პაროლების, წვდომის გასაღებებისა და მონაცემთა სერვისების ლიმიტი"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"ერთდროულად, შეგიძლიათ, მაქსიმუმ 5 პაროლი, წვდომის გასაღები და მონაცემთა სერვისი გქონდეთ. სხვების დასამატებლად გამორთეთ სერვისი."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"გამორთვა"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ავტომატური შევსება"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"აღრიცხვის დონე"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"თავსებადი მედიის ხმა უფრო იმერსიული ხდება"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"თავის მოძრაობაზე თვალის დევნება"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"აუდიო იცვლება თქვენი თავის მოძრაობასთან ერთად"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"აუდიო მოწყობილობის ტიპი"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"უცნობი"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"დინამიკი"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ყურსასმენები"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"მანქანის ნაკრები"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"სხვა"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ქსელიდან ჩამოტვირთვისას სიჩქარის შეზღუდვა"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"დააყენეთ შემავალი ქსელის გამტარუნარიანობის შეზღუდვა, რომელიც ეხება ინტერნეტთან კავშირის უზრუნველმყოფ ყველა ქსელს."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"დააყენეთ ქსელიდან ჩამოტვირთვისას სიჩქარის შეზღუდვა"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"საშუალო"</string>
<string name="contrast_high" msgid="3988567609694797696">"მაღალი"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ამ აპის გახსნა შესაძლებელია მხოლოდ 1 ფანჯარაში"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"სერვისი ჩართულია"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"სერვისი გამორთულია"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"მალსახმობი გამორთულია"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ჩართული"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"გამორთული"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"გამორთული"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"გამორთული"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ჩართული"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"გამორთული"</string>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 1970543..57a01f2 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 минуттан кейін"</item>
<item msgid="1574040255478150028">"5 минуттан кейін"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Батарея жұмысының ұзақтығын арттыру үшін жарықтықты бейімдеуді қосыңыз"</item>
+ <item msgid="2256666063790193306">"Батарея жұмысының ұзақтығын арттыру үшін экранның өшу уақытын азайтыңыз"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 7680303..53e14ee 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -193,12 +193,14 @@
<string name="title_regional_pref_footer" msgid="7450438024324794380">"Аймақтық параметрлер болмаса, қолданба өзінің тіл параметрлерін пайдаланады."</string>
<string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Тіл параметрлері туралы толық ақпарат алыңыз."</string>
<string name="category_title_terms_of_address" msgid="4309422700380895278">"Қосымша параметрлер"</string>
- <string name="terms_of_address_title" msgid="4064593634733842458">"Атау шарттары"</string>
+ <string name="terms_of_address_title" msgid="4064593634733842458">"Қарату формасы"</string>
<string name="terms_of_address_summary" msgid="6136134336560679144">"Сізді қалай деп атау керектігін көрсетіңіз."</string>
- <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Қолданбалар сізді атағанда, қандай атау түрін пайдалануды білуі үшін, сәйкес шарттарды пайдалана алады."</string>
+ <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Қолданбалар сізбен тіл қатысу үшін өзіңіз таңдаған қарату формасын пайдалана алады."</string>
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Көрсетілмеген"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Аналық"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Аталық"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Таңдалған тілді жою керек пе?}other{Таңдалған тілдерді жою керек пе?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Мәтін басқа тілде көрсетіледі."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Барлық тілдерді жою мүмкін емес"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Бет тану функциясы және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Бет тану функциясы, саусақ ізі және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Бет тану функциясы, саусақ іздері және <xliff:g id="WATCH">%s</xliff:g> қосылды."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Сағат параметрлерін реттеу"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Құлыпты сағат арқылы ашу — телефон құлпын ашудың тағы бір ыңғайлы әдісі. Мысалы оны саусағыңыз ылғал болғанда не бетіңіз танылмағанда пайдалануға болады.\n\nОсы телефонды сағатыңызбен ашу жолы төменде берілген:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Қазір емес"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Жалғастыру"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Жаю"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Бұл қалай жұмыс істейді?"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Сағатыңызды білекке тағып, оның құлпын ашуыңыз және осы телефонға жақын жерде ұстауыңыз керек. Сағат қолыңызға тағылғаннан кейін, оның құлпын қайтадан ашпайсыз."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Телефон құлпы ашылғаннан кейін, сағатқа хабарландыру келеді. Құлпын байқаусызда ашып жіберсеңіз, оны қайта құлыптау үшін хабарландыруды түртіңіз."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Барлығы өз қолыңызда"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Кез келген уақытта параметрлерді пайдаланып, құлыпты сағат арқылы ашу функциясынан сағатыңызды өшіре аласыз."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Хабарландыруды түртіңіз."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Құлып экранын жоғары сырғытыңыз."</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Сағат таңдаңыз"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Қолжетімді сағаттар"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Бас тарту"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Растау"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Барлығы дайын!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Құлып экранында жоғары сырғытқанда не хабарландыруды түрткенде, осы телефонды енді сағатыңызбен аша аласыз."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Дайын"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Құлыпты сағат арқылы ашу"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Құлып экранында жоғары сырғытқанда не хабарландыруды түрткенде, осы телефонды сағатыңызбен аша аласыз."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Құлыпты сағат арқылы ашу функциясын пайдалану үшін сағатыңызды білекке тағып, оның құлпын ашуыңыз және осы телефонға жақын жерде ұстап, оған қосуыңыз керек. Байланыс үзіліп кетсе, аталған функцияны пайдаланбас бұрын, телефон құлпын ашуыңыз қажет.\n\nЕсте сақтаңыз:\nБір уақытта тек бір сағатты реттей аласыз. Басқа сағатты қосу үшін алдымен қазіргісін өшіріңіз."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Құлыпты сағат арқылы ашу туралы толық ақпарат"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Сағатты қосу"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Сағатты өшіру"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Бет және саусақ ізі арқылы құлыпты ашу"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Жұмысқа арналған бет тану және саусақ ізімен ашу функциялары"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Реттеу қажет."</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Бұл кілтпернені басқа құрылғыларды қолданғанда да теру қажет болады."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Үйлестірілген жинақпен жұптауды растаңыз."</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Контактілер мен қоңыраулар тарихына кіруге рұқсат беру"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Сондай-ақ контактілерге және қоңыраулар тарихына кіруге рұқсат беріледі."</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Ақпарат қоңырау туралы хабарландырулар және т.б. үшін пайдаланылады."</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысына жалғану мүмкін болмады."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Қолжетімді құрылғылар"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Осы құрылғымен Wi‑Fi байланысы бөлісілуде…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Жалғануда…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Хотспотты бөлісу"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Бұл өзіңіз екенін растаңыз"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Бұл сіз екеніңізді растаңыз"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi құпия сөзі: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Хотспот құпия сөзі: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Aвтоматты жалғау"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Желі байланыс аясында емес."</string>
<string name="wifi_forget" msgid="3485573280364015620">"Ұмыту"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Өзгерту"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Желіні жою орындалмады"</string>
<string name="wifi_save" msgid="2312643132472226807">"Сақтау"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Желіні сақтау орындалмады"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Бас тарту"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Басым жиілік қолжетімсіз болса, хотспот басқасын пайдалануы мүмкін. Жиілікті өзгертсеңіз, хотспоттың қауіпсіздік параметрлері де өзгеруі мүмкін."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 ГГц жиілігімен қолдану мүмкін емес."</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Хотспот жиілігін өзгертсеңіз, қауіпсіздік параметрлері де өзгеруі мүмкін."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Хотспот қосылуда…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Хотспот өшірілуде…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Тетеринг қолжетімсіз"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Құпия сөзді ұмытып қалдыңыз ба?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Өрнекті қалдыңыз ба?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN кодын ұмытып қалдыңыз ба?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Жалғастыру үшін құрылғының құлып өрнегін пайдаланыңыз"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Жалғастыру үшін құрылғы PIN кодын енгізіңіз."</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Жалғастыру үшін құрылғы құпия сөзін енгізіңіз"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Жалғастыру үшін жұмыс өрнегін пайдаланыңыз"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Жалғастыру үшін өрнекті енгізіңіз."</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Жалғастыру үшін PIN кодын енгізіңіз."</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">"Жалғастыру үшін жұмыс PIN кодын енгізіңіз"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Жалғастыру үшін жұмыс құпия сөзін енгізіңіз"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Қосымша қауіпсіздік үшін құрылғыңыздың өрнегін пайдаланыңыз"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Сипаттама ұсынылмаған"</string>
<string name="settings_button" msgid="2195468788019730377">"Параметрлер"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"жарықсезгіштік, фотофобия, қараңғы режим, бас сақинасы ауруы, бас ауруы, оқу режимі, түнгі режим, жарықтықты азайту, ақ нүкте"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Оңай пайдалану, оңай кіру, көмек, көмекші"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"көру, есту, соқыр, саңырау, қозғалыс, ептілік, көмекші, көмек, оңай қолдану, оңай кіру, қол, көмек"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Терезені ұлғайтқыш, масштабтау, ұлғайту, нашар көру қабілеті, жақындату, үлкейту"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Жазулар, субтитрлер, субтитр, Live Transcribe, нашар есту қабілеті, есту қабілетінен айырылу, тікелей транскрипция, дауысты мәтінге айналдыру"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"түс конрасты"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"моторика, тінтуір"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"есту аппараттары, нашар есту, естімеу, кохлеар импланттары, күшейткіш құрылғылар, дыбыс процессорлары"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"қозғалыс, тінтуір, кәдімгі тінтуір, баспен басқарылатын тінтуір, адаптивті тінтуір, мүгедектер арбасы, джойстик"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"есту аппараттары, нашар есту, естімеу, кохлеар импланттары, күшейткіш құрылғылар, дыбыс процессорлары, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"нашар есту қабілеті, есту қабілетінен айырылу, жазулар, телетайп"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"үш түйме"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ептілік, қозғалыс, қарт адам, артрит, туннельдік нейропатия, инсульт, діріл, шашыраңқы склероз, орталықтан сал болу, қалтырау, қайталанбалы қозғалыс зақымы, қол"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"кідіріс, ептілік, қарт адам"</string>
<string name="print_settings" msgid="8519810615863882491">"Басып шығару"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Өшірулі"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 баспа қызметі қосулы}other{# баспа қызметі қосулы}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Дерек шығыны туралы ескерту: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> дерек шегі орнатылған"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Дерек шығыны туралы ескерту: <xliff:g id="ID_1">^1</xliff:g> / Дерек шегі: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Оператордың деректер есебі құрылғының есебінен өзгеше болуы мүмкін."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Оператор желілері пайдаланған деректерді қамтымайды."</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> пайдаланылған"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Дерек шығыны туралы ескерту"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Автотолтыру қызметі"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Әдепкі автотолтыру қызметі"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Құпия сөздер"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Құпия сөздерді, кіру кілттерін және деректерді сақтау қызметтері"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Құпия сөздер, кіру кілттері мен дерек қызметтері"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Қосымша провайдерлер"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# құпия сөз}other{# құпия сөз}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"автоматты, толтыру, автотолтыру, құпия сөз"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"авто, толтыру, автотолтыру, дерек, кіру кілті, құпия сөз"</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="4951846866327737417">"<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="2642776965060619988">"Құпия сөздерді, кіру кілттерін және деректерді сақтау қызметтері"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Құпия сөздер, кіру кілттері мен дерек қызметтері"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s мәліметтерін өшіру керек пе?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Бұл қызметті өшіру керек пе?</b> <br/> <br/> Құпия сөздер, кіру кілттері, төлеу әдістері сияқты сақталған ақпарат пен басқа ақпарат аккаунтқа кіру кезінде толтырылмайды. Сақталған ақпаратыңызды пайдалану үшін құпия сөзді, кіру кілтін немесе дерек қызметін таңдаңыз."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s пайдаланылсын ба?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s экранда көрсетілгенді нені автоматты түрде толтыруға болатынын анықтау үшін пайдаланады."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Құпия сөздерді, кіру кілттерін және деректерді сақтау қызметтерінің саны шектеулі"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Бір мезгілде құпия сөздерді, кіру кілттерін және деректерді сақтаудың ең көбі 5 қызметін қосып қоя аласыз. Басқасын қосу үшін бір қызметті өшіріңіз."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Құпия сөздердің, кіру кілттері мен дерек қызметтерінің саны шектеулі"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Бір мезгілде ең көбі 5 құпия сөз, кіру кілтін және дерек қызметін қосып қоя аласыз. Басқасын қосу үшін бір қызметті өшіріңіз."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Өшіру"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Aвтотолтыру"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Тіркеу деңгейі"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Дыбыс үйлесімді медиақұрылғылардан иммерсивті болып шығады."</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Бас қимылын қадағалау"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Басыңызды қозғалтқан кезде дыбыс өзгеріп, табиғи шығады."</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Аудио құрылғы түрі"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Белгісіз"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Динамик"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Құлақаспап"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Көлік жинағы"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Басқа"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Желі арқылы жүктеп алу жылдамдығының шегі"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Интернет байланысын қамтамасыз ететін барлық желіге қолданылатын кіріс трафикті өткізу жылдамдығының шегін конфигурациялайды."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Желі арқылы жүктеп алу жылдамдығының шегін конфигурациялау"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Қолданбаны жою"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Соңғы # айда орнатылған қолданбалар}other{Соңғы # айда орнатылған қолданбалар}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# айдан бұрын орнатылған қолданбалар}other{# айдан бұрын орнатылған қолданбалар}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Арақатынас"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Бұл қолданба <xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысына арналып жасалмаған болса, оны көру үшін арақатынасты таңдаңыз."</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ұсынылған қолданбалар"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Қайта анықталған қолданбалар"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Әдепкі қолданба"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Толық экран"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Жартылай экран"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Құрылғы арақатынасы"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Арақатынасты өзгерткен кезде қолданба өшіп қосылады. Сақталмаған өзгерістерді жоғалтуыңыз мүмкін."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Саусақ ізін оқу сканері"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Жарқылды хабарландырулар"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Жарқылды хабарландырулар туралы"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Орташа"</string>
<string name="contrast_high" msgid="3988567609694797696">"Жоғары"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Бұл қолданбаны тек 1 терезеден ашуға болады."</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Қызмет қосулы"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Қызмет өшірулі"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Таңбаша өшірулі"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Қосулы"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Өшірулі"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Өшірулі"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Өшірулі"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Қосулы"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Өшірулі"</string>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index e460e2f..23ffff6 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"បន្ទាប់ពី 1 នាទី"</item>
<item msgid="1574040255478150028">"បន្ទាប់ពី 5 នាទី"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"បើកពន្លឺមានភាពបត់បែន ដើម្បីពន្យារកម្រិតថាមពលថ្ម"</item>
+ <item msgid="2256666063790193306">"បន្ថយរយៈពេលបិទអេក្រង់ ដើម្បីពន្យារកម្រិតថាមពលថ្ម"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 1306ba4..802bfb0 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"មិនបានបញ្ជាក់"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"ស្រី"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"ប្រុស"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{លុបភាសាដែលបានជ្រើសរើសចេញឬ?}other{លុបភាសាដែលបានជ្រើសរើសចេញឬ?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"អត្ថបទនឹងត្រូវបានបង្ហាញជាភាសាផ្សេងទៀត។"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"មិនអាចយកភាសាទាំងអស់ចេញបានទេ"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"បានបញ្ចូលមុខ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"បានបញ្ចូលមុខ ស្នាមម្រាមដៃ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"បានបញ្ចូលមុខ ស្នាមម្រាមដៃ និង <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"រៀបចំនាឡិការបស់អ្នក"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"ការដោះសោដោយប្រើនាឡិកាគឺជាវិធីងាយស្រួលមួយទៀតក្នុងការដោះសោទូរសព្ទនេះ ឧទាហរណ៍ នៅពេលម្រាមដៃរបស់អ្នកសើម ឬមិនស្គាល់មុខ។\n\nអ្នកអាចប្រើនាឡិការបស់អ្នក ដើម្បីដោះសោទូរសព្ទនេះបាន នៅពេលអ្នក៖"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"កុំទាន់"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"បន្ត"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"ច្រើនទៀត"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"របៀបដែលវាដំណើរការ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ត្រូវតែដោះសោនាឡិការបស់អ្នកនៅលើកដៃរបស់អ្នក និងក្នុងចម្ងាយដែលអាចឈោងដៃដល់ទូរសព្ទនេះ។ អ្នកនឹងមិនចាំបាច់ដោះសោនាឡិការបស់អ្នកម្តងទៀតទេ នៅពេលនាឡិកានោះស្ថិតនៅលើកដៃរបស់អ្នក។"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"នៅពេលដែលទូរសព្ទនេះត្រូវបានដោះសោ អ្នកនឹងទទួលបានការជូនដំណឹងនៅលើនាឡិការបស់អ្នក។ ប្រសិនបើវាត្រូវបានដោះសោ នៅពេលអ្នកមិនមានបំណងទេ សូមចុចការជូនដំណឹង ដើម្បីចាក់សោទូរសព្ទម្ដងទៀត។"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ការគ្រប់គ្រងស្ថិតក្នុងដៃអ្នក"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"អ្នកអាចដកនាឡិការបស់អ្នកចេញពីមុខងារដោះសោដោយប្រើនាឡិកាបានគ្រប់ពេលនៅក្នុងការកំណត់"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ចុចការជូនដំណឹង"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"អូសឡើងលើនៅលើអេក្រង់ចាក់សោ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ជ្រើសរើសនាឡិការបស់អ្នក"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"នាឡិកាដែលអាចភ្ជាប់បាន"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"បោះបង់"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"បញ្ជាក់"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"រួចរាល់អស់ហើយ!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ឥឡូវនេះ អ្នកអាចប្រើនាឡិការបស់អ្នក ដើម្បីដោះសោទូរសព្ទនេះ នៅពេលអ្នកអូសឡើងលើនៅលើអេក្រង់ចាក់សោ ឬចុចការជូនដំណឹង"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"រួចរាល់"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ការដោះសោដោយប្រើនាឡិកា"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"អ្នកអាចប្រើនាឡិការបស់អ្នក ដើម្បីដោះសោទូរសព្ទនេះ នៅពេលអ្នកអូសឡើងលើនៅលើអេក្រង់ចាក់សោ ឬចុចការជូនដំណឹង"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ដើម្បីប្រើការដោះសោដោយប្រើនាឡិកា ត្រូវតែដោះសោនាឡិការបស់អ្នកនៅលើកដៃរបស់អ្នក ក្នុងចម្ងាយដែលអាចឈោងដៃដល់ និងភ្ជាប់ទៅទូរសព្ទនេះ។ ប្រសិនបើការតភ្ជាប់ត្រូវបានរំខាន អ្នកនឹងត្រូវដោះសោទូរសព្ទ មុនពេលអ្នកអាចប្រើការដោះសោដោយប្រើនាឡិកា។\n\nសូមចងចាំថា៖\nអ្នកអាចរៀបចំនាឡិកាមួយក្នុងមួយលើកតែប៉ុណ្ណោះ។ ដើម្បីបញ្ចូលនាឡិកាផ្សេងទៀត សូមដកនាឡិកាបច្ចុប្បន្នចេញជាមុនសិន។"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ស្វែងយល់បន្ថែមអំពីការដោះសោដោយប្រើនាឡិកា"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"បញ្ចូលនាឡិកា"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ដកនាឡិកាចេញ"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ការដោះសោដោយស្កេនមុខ និងស្នាមម្រាមដៃ"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ការដោះសោដោយស្កេនស្នាមម្រាមដៃ និងមុខសម្រាប់ការងារ"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ត្រូវការរៀបចំ"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"អ្នកក៏អាចត្រូវបញ្ចូលលេខកូដនេះលើឧបករណ៍ផ្សេង។"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"បញ្ជាក់ ដើម្បីផ្គូផ្គងជាមួយសំណុំដែលបានសម្របសម្រួល"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ផ្ដល់សិទ្ធិអនុញ្ញាតចូលប្រើទំនាក់ទំនង និងប្រវត្តិហៅទូរសព្ទរបស់អ្នក"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"អនុញ្ញាតឱ្យចូលប្រើប្រាស់ប្រវត្តិហៅទូរសព្ទ និងទំនាក់ទំនងផងដែរ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ព័ត៌មាននឹងត្រូវបានប្រើសម្រាប់ការប្រកាសអំពីការហៅទូរសព្ទ និងអ្វីៗជាច្រើនទៀត"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"មិនអាចតភ្ជាប់ទៅ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ។"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ឧបករណ៍ដែលអាចភ្ជាប់បាន"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"កំពុងចែករំលែក Wi‑Fi ជាមួយឧបករណ៍នេះ…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"កំពុងភ្ជាប់…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ចែករំលែកហតស្ប៉ត"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ផ្ទៀងផ្ទាត់ថាគឺជាអ្នក"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ផ្ទៀងផ្ទាត់ថាជាអ្នក"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ពាក្យសម្ងាត់ Wi‑Fi៖ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ពាក្យសម្ងាត់ហតស្ប៉ត៖ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"ភ្ជាប់ដោយស្វ័យប្រវត្តិ"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"បណ្ដាញមិនមានសេវាទេ"</string>
<string name="wifi_forget" msgid="3485573280364015620">"បំភ្លេច"</string>
<string name="wifi_modify" msgid="5127926476383659412">"កែសម្រួល"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"បានបរាជ័យក្នុងបំភ្លេចបណ្ដាញ"</string>
<string name="wifi_save" msgid="2312643132472226807">"រក្សាទុក"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"បានបរាជ័យក្នុងការរក្សាទុកបណ្ដាញ"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"បោះបង់"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"ប្រសិនបើមិនមានហ្វ្រេកង់ដែលចង់បានទេ ហតស្ប៉តរបស់អ្នកអាចប្រើហ្វ្រេកង់ផ្សេង។ ការកំណត់សុវត្ថិភាពហតស្ប៉តអាចផ្លាស់ប្ដូរ ប្រសិនបើអ្នកផ្លាស់ប្ដូរហ្វ្រេកង់។"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"មិនអាចប្រើជាមួយ 6 GHz បានទេ"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"ការកំណត់សុវត្ថិភាពអាចផ្លាស់ប្ដូរ ប្រសិនបើអ្នកផ្លាស់ប្ដូរហ្វ្រេកង់របស់ហតស្ប៉ត"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"កំពុងបើកហតស្ពត..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"កំពុងបិទហតស្ពត..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"មិនអាចភ្ជាប់បានទេ"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"ភ្លេចពាក្យសម្ងាត់របស់អ្នកឬ?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ភ្លេចលំនាំរបស់អ្នកឬ?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ភ្លេចកូដ PIN របស់អ្នកឬ?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ប្រើលំនាំឧបករណ៍របស់អ្នកដើម្បីបន្ត"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"បញ្ចូលកូដ PIN ឧបករណ៍របស់អ្នកដើម្បីបន្ត"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"បញ្ចូលពាក្យសម្ងាត់ឧបករណ៍របស់អ្នកដើម្បីបន្ត"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ប្រើលំនាំការងាររបស់អ្នកដើម្បីបន្ត"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"គូរលំនាំរបស់អ្នកដើម្បីបន្ត"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"បញ្ចូលកូដ PIN របស់អ្នកដើម្បីបន្ត"</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">"បញ្ចូលកូដ PIN ការងាររបស់អ្នកដើម្បីបន្ត"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"បញ្ចូលពាក្យសម្ងាត់ការងាររបស់អ្នកដើម្បីបន្ត"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ដើម្បីទទួលបានសុវត្ថិភាពបន្ថែម សូមប្រើប្រាស់លំនាំឧបករណ៍របស់អ្នក"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"គ្មានការពណ៌នាបានផ្ដល់។"</string>
<string name="settings_button" msgid="2195468788019730377">"ការកំណត់"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"កម្រិតពន្លឺ ប្រតិកម្មនឹងពន្លឺ រចនាប័ទ្មងងឹត ឈឺក្បាលប្រកាំង ឈឺក្បាល មុខងារអាន មុខងារយប់ បន្ថយពន្លឺ ចំណុចពណ៌ស"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ងាយស្រួលប្រើប្រាស់ ងាយស្រួលចូលប្រើ ជំនួយ"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"ការមើល, ការស្ដាប់ឮ, ងងឹតភ្នែក, ថ្លង់, ចលនា, ភាពស្ទាត់ជំនាញ, ជំនួយ, ការជួយ, ងាយស្រួលប្រើប្រាស់, ងាយស្រួលចូលប្រើ, ដៃ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"កម្មវិធីពង្រីកវិនដូ ពង្រីកបង្រួម ការពង្រីក ខ្សោយភ្នែក ពង្រីក ធ្វើឱ្យកាន់តែធំ"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"អក្សររត់, CC, ធ្វើប្រតិចារឹកភ្លាមៗ, មានបញ្ហាស្ដាប់, ស្ដាប់មិនឮ, CART, ការបំប្លែងការនិយាយទៅជាអត្ថបទ"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"កម្រិតរំលេចពណ៌"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"ម៉ូទ័រ កណ្ដុរ"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"ឧបករណ៍ជំនួយការស្តាប់ ការពិបាកស្តាប់ ការស្ដាប់មិនឮ ការវះកាត់ដាក់ឧបករណ៍ជំនួយការស្ដាប់ ឧបករណបង្កើនសំឡេង ឧបករណ៍កែសម្រួលសំឡេង"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"ចលនា, កណ្ដុរ, កណ្ដុរខាងក្រៅ, ឧបករណ៍ពាក់ក្បាលសម្រាប់បញ្ជាកណ្ដុរ, កណ្ដុរដែលមានភាពបត់បែន, រទេះរុញ, ដងបញ្ជា"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"ឧបករណ៍ជំនួយការស្តាប់, មានបញ្ហាក្នុងការស្ដាប់, ស្ដាប់មិនឮ, ឧបករណ៍អេឡិចត្រូនិកក្នុងខ្លួនមនុស្សសម្រាប់ជំនួយការស្ដាប់, ឧបករណ៍បង្កើនសំឡេង, ឧបករណ៍កែសម្រួលសំឡេង, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"មានបញ្ហាស្ដាប់, ស្ដាប់មិនឮ, អក្សររត់, អង្គលីលេខ, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ប៊ូតុងបី"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ភាពស្ទាត់ជំនាញ, ចលនា, មនុស្សចាស់, ជំងឺសន្លាក់ឆ្អឹង, rsi, ជំងឺដាច់សរសៃឈាមខួរក្បាល, ញ័រ, ជំងឺក្រិនសរសៃឈាមច្រើន, ពិការខួរក្បាល, រង្គើ, ការចុករោយ, ដៃ"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ពន្យារពេល, ភាពស្ទាត់ជំនាញ, មនុស្សចាស់"</string>
<string name="print_settings" msgid="8519810615863882491">"ការបោះពុម្ព"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"បិទ"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{សេវាកម្មបោះពុម្ព 1 បានបើក}other{សេវាកម្មបោះពុម្ព # បានបើក}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"ការព្រមានពីការប្រើទិន្នន័យ <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"កម្រិតកំណត់ទិន្នន័យ <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ការព្រមានពីការប្រើទិន្នន័យ <xliff:g id="ID_1">^1</xliff:g>/កម្រិតកំណត់ទិន្នន័យ <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"ការគណនាទិន្នន័យរបស់ក្រុមហ៊ុនសេវាទូរសព្ទអាចនឹងខុសគ្នាពីការគណនារបស់ឧបករណ៍"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"មិនរួមបញ្ចូលទិន្នន័យដែលប្រើដោយបណ្ដាញក្រុមហ៊ុនសេវាទូរសព្ទ"</string>
<string name="data_used_template" msgid="8229342096562327646">"បានប្រើ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"កំណត់ការព្រមានពីការប្រើទិន្នន័យ"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"សេវាកម្មបំពេញដោយស្វ័យប្រវត្តិ"</string>
<string name="default_autofill_app" msgid="372234803718251606">"សេវាកម្មបំពេញស្វ័យប្រវត្តិលំនាំដើម"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"ពាក្យសម្ងាត់"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"ពាក្យសម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"ពាក្យសម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</string>
<string name="credman_credentials" msgid="4931371941253324143">"ក្រុមហ៊ុនផ្ដល់សេវាបន្ថែម"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{ពាក្យសម្ងាត់ #}other{ពាក្យសម្ងាត់ #}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ស្វ័យប្រវត្តិ បំពេញ បំពេញស្វ័យប្រវត្តិ ពាក្យសម្ងាត់"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ស្វ័យប្រវត្តិ, បំពេញ, បំពេញស្វ័យប្រវត្តិ, ទិន្នន័យ, កូដសម្ងាត់, ពាក្យសម្ងាត់"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>ត្រូវប្រាកដថាអ្នកទុកចិត្តកម្មវិធីនេះ</b> <br/> <br/> <xliff:g id=app_name example=Google បំពេញស្វ័យប្រវត្តិ>%1$s</xliff:g> ប្រើប្រាស់អ្វីដែលមាននៅលើអេក្រង់របស់អ្នក ដើម្បីកំណត់អ្វីដែលអាចបំពេញដោយស្វ័យប្រវត្តិ។"</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"ពាក្យសម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"ពាក្យសម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"បិទ %1$s ឬ?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>បិទសេវាកម្មនេះឬ?</b> <br/> <br/> ព័ត៌មានដែលបានរក្សាទុកដូចជា ពាក្យសម្ងាត់ កូដសម្ងាត់ វិធីបង់ប្រាក់ និងព័ត៌មានផ្សេងទៀតនឹងមិនត្រូវបានបំពេញទេ ពេលអ្នកចូលគណនី។ ដើម្បីប្រើព័ត៌មានដែលអ្នកបានរក្សាទុក សូមជ្រើសរើសសេវាកម្មទិន្នន័យ ពាក្យសម្ងាត់ ឬកូដសម្ងាត់។"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"ប្រើប្រាស់ %1$s ឬ?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ប្រើអ្វីដែលមាននៅលើអេក្រង់របស់អ្នក ដើម្បីកំណត់ពីអ្វីដែលអាចបំពេញបានដោយស្វ័យប្រវត្តិ។"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"ដែនកំណត់នៃពាក្យសម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"អ្នកអាចបើកដំណើរការពាក្យសម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យរហូតដល់ 5 ក្នុងពេលតែមួយ។ សូមបិទសេវាកម្មមួយ ដើម្បីបញ្ចូលបន្ថែមទៀត។"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"ដែនកំណត់នៃពាក្យសម្ងាត់ កូដសម្ងាត់ និងសេវាកម្មទិន្នន័យ"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"អ្នកអាចបើកដំណើរការពាក្យសម្ងាត់ កូសម្ងាត់ និងសេវាកម្មទិន្នន័យរហូតដល់ 5 ក្នុងពេលតែមួយ។ សូមបិទសេវាកម្ម ដើម្បីបញ្ចូលបន្ថែមទៀត។"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"បិទ"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"បំពេញដោយស្វ័យប្រវត្តិ"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"កម្រិតកត់ត្រា"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"សំឡេងពីមេឌៀដែលត្រូវគ្នាកាន់តែធ្វើឱ្យជក់អារម្មណ៍"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ការតាមដានក្បាល"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"សំឡេងប្រែប្រួល នៅពេលអ្នកធ្វើចលនាក្បាលរបស់អ្នក ដើម្បីធ្វើឱ្យសំឡេងកាន់តែដូចធម្មជាតិ"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ប្រភេទឧបករណ៍សំឡេង"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"មិនស្គាល់"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ឧបករណ៍បំពងសំឡេង"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"កាស"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"ឈុតឧបករណ៍រថយន្ត"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"ផ្សេងទៀត"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ដែនកំណត់នៃអត្រាទាញយកលើបណ្ដាញ"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"កំណត់រចនាសម្ព័ន្ធដែនកំណត់នៃអត្រាចូលរបស់កម្រិតបញ្ជូនលើបណ្ដាញ ដែលត្រូវអនុវត្តចំពោះបណ្ដាញទាំងអស់ដែលផ្ដល់ការតភ្ជាប់អ៊ីនធឺណិត។"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"កំណត់រចនាសម្ព័ន្ធដែនកំណត់នៃអត្រាទាញយកលើបណ្ដាញ"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"មធ្យម"</string>
<string name="contrast_high" msgid="3988567609694797696">"ខ្ពស់"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"អាចបើកកម្មវិធីនេះបានតែក្នុងវិនដូ 1 ប៉ុណ្ណោះ"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"សេវាកម្មត្រូវបានបើក"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"សេវាកម្មត្រូវបានបិទ"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"ផ្លូវកាត់ត្រូវបានបិទ"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"បើក"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"បិទ"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"បិទ"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"បិទ"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"បើក"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"បិទ"</string>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 11e4cea..6fe8a27 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 ನಿಮಿಷದ ನಂತರ"</item>
<item msgid="1574040255478150028">"5 ನಿಮಿಷಗಳ ನಂತರ"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"ಬ್ಯಾಟರಿ ಬಾಳಿಕೆಯನ್ನು ವಿಸ್ತರಿಸಲು ಅಡಾಪ್ಟಿವ್ ಬ್ರೈಟ್ನೆಸ್ ಅನ್ನು ಆನ್ ಮಾಡಿ"</item>
+ <item msgid="2256666063790193306">"ಬ್ಯಾಟರಿ ಬಾಳಿಕೆಯನ್ನು ವಿಸ್ತರಿಸಲು ಸ್ಕ್ರೀನ್ ಟೈಮ್ಔಟ್ ಅವಧಿಯನ್ನು ಕಡಿಮೆ ಮಾಡಿ"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 51eb4ef..f618f08 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"ಮಹಿಳೆಯರಿಗಾಗಿ"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"ಪುರುಷರಿಗಾಗಿ"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ಆಯ್ಕೆಮಾಡಿದ ಭಾಷೆಯನ್ನು ತೆಗೆದುಹಾಕಬೇಕೆ?}one{ಆಯ್ಕೆಮಾಡಿದ ಭಾಷೆಗಳನ್ನು ತೆಗೆದುಹಾಕಬೇಕೆ?}other{ಆಯ್ಕೆಮಾಡಿದ ಭಾಷೆಗಳನ್ನು ತೆಗೆದುಹಾಕಬೇಕೆ?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"ಪಠ್ಯವನ್ನು ಮತ್ತೊಂದು ಭಾಷೆಯಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತದೆ."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ಎಲ್ಲಾ ಭಾಷೆಗಳನ್ನು ತೆಗೆದುಹಾಕಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ಮುಖ ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ಮುಖ, ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ಮುಖ ಮತ್ತು ಫಿಂಗರ್ಪ್ರಿಂಟ್ಗಳನ್ನು, ಮತ್ತು <xliff:g id="WATCH">%s</xliff:g> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ನಿಮ್ಮ ವಾಚ್ ಸೆಟಪ್ ಮಾಡಿ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"ಈ ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ವಾಚ್ ಅನ್ಲಾಕ್ ಮತ್ತೊಂದು ಅನುಕೂಲಕರ ಮಾರ್ಗವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಬೆರಳುಗಳು ಒದ್ದೆಯಾಗಿರುವಾಗ ಅಥವಾ ಮುಖವನ್ನು ಗುರುತಿಸದಿದ್ದಾಗ.\n\nಈ ಕೆಳಗಿನ ಸಂದರ್ಭದಲ್ಲಿ, ನೀವು ಈ ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ಬಳಸಬಹುದು:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ಈಗ ಬೇಡ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"ಮುಂದುವರಿಸಿ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"ಇನ್ನಷ್ಟು"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ಅದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ನಿಮ್ಮ ವಾಚ್ ಅನ್ಲಾಕ್ ಆಗಿರಬೇಕು, ನಿಮ್ಮ ಮಣಿಕಟ್ಟಿನಲ್ಲಿ ಧರಿಸಿರಬೇಕು ಹಾಗೂ ಈ ಫೋನ್ನ ಸಮೀಪದಲ್ಲಿರಬೇಕು. ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ಮಣಿಕಟ್ಟಿನಲ್ಲಿ ಧರಿಸಿರುವಾಗ ಅದನ್ನು ಪುನಃ ನೀವು ಅನ್ಲಾಕ್ ಮಾಡಬೇಕಾಗಿಲ್ಲ."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ಈ ಫೋನ್ ಅನ್ಲಾಕ್ ಆದಾಗ, ನಿಮ್ಮ ವಾಚ್ನಲ್ಲಿ ನೀವು ಸೂಚನೆ ಪಡೆಯುತ್ತೀರಿ. ನೀವು ಉದ್ದೇಶಿಸದೇ ಇದ್ದಾಗಲೂ ಅದು ಅನ್ಲಾಕ್ ಆಗಿದ್ದರೆ, ಫೋನ್ ಅನ್ನು ಮತ್ತೊಮ್ಮೆ ಲಾಕ್ ಮಾಡಲು ನೋಟಿಫಿಕೇಶನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ಇದು ನಿಮ್ಮ ನಿಯಂತ್ರಣದಲ್ಲಿದೆ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಯಾವಾಗ ಬೇಕಾದರೂ ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ವಾಚ್ ಅನ್ಲಾಕ್ನಿಂದ ನೀವು ತೆಗೆದುಹಾಕಬಹುದು"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ನೋಟಿಫಿಕೇಶನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ಲಭ್ಯವಿರುವ ವಾಚ್ಗಳು"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ರದ್ದುಮಾಡಿ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ದೃಢೀಕರಿಸಿ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ನೀವು ಸಿದ್ಧರಾಗಿರುವಿರಿ!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ನೀವು ಲಾಕ್ ಸ್ಕ್ರೀನ್ನ ಮೇಲೆ ಸ್ವೈಪ್ ಅಪ್ ಮಾಡಿದಾಗ ಅಥವಾ ನೋಟಿಫಿಕೇಶನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿದಾಗ ಈ ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ನೀವು ಈಗ ಬಳಸಬಹುದು"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ಮುಗಿದಿದೆ"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ವಾಚ್ ಅನ್ಲಾಕ್"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ನೀವು ಲಾಕ್ ಸ್ಕ್ರೀನ್ನಲ್ಲಿ ಮೇಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿದಾಗ ಅಥವಾ ನೋಟಿಫಿಕೇಶನ್ ಅನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿದಾಗ ಈ ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ನಿಮ್ಮ ವಾಚ್ ಅನ್ನು ನೀವು ಬಳಸಬಹುದು"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ವಾಚ್ ಅನ್ಲಾಕ್ ಅನ್ನು ಬಳಸಲು, ನಿಮ್ಮ ವಾಚ್ ಅನ್ಲಾಕ್ ಆಗಿರಬೇಕು, ನಿಮ್ಮ ಮಣಿಕಟ್ಟಿನಲ್ಲಿ ಧರಿಸಿರಬೇಕು, ಸಮೀಪದಲ್ಲಿರಬೇಕು ಮತ್ತು ಈ ಫೋನ್ಗೆ ಕನೆಕ್ಟ್ ಆಗಿರಬೇಕು. ಕನೆಕ್ಷನ್ನಲ್ಲಿ ಅಡಚಣೆ ಉಂಟಾದರೆ, ನೀವು ವಾಚ್ ಅನ್ಲಾಕ್ ಬಳಸುವ ಮೊದಲು ಫೋನ್ ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ.\n\nನೆನಪಿಡಿ:\nನೀವು ಒಂದು ಬಾರಿಗೆ ಒಂದು ವಾಚ್ ಅನ್ನು ಮಾತ್ರ ಸೆಟಪ್ ಮಾಡಬಹುದು. ಬೇರೊಂದು ವಾಚ್ ಅನ್ನು ಸೇರಿಸಲು, ಪ್ರಸ್ತುತ ಇರುವ ವಾಚ್ ಅನ್ನು ಮೊದಲು ತೆಗೆದುಹಾಕಿ."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ವಾಚ್ ಅನ್ಲಾಕ್ ಕುರಿತು ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ವಾಚ್ ಅನ್ನು ಸೇರಿಸಿ"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ವಾಚ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ಫಿಂಗರ್ ಪ್ರಿಂಟ್ & ಫೇಸ್ ಅನ್ಲಾಕ್"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ಕೆಲಸಕ್ಕಾಗಿ ಮುಖ ಮತ್ತು ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಅನ್ಲಾಕ್"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ಸೆಟಪ್ ಅಗತ್ಯವಿದೆ"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ನಿಮಗೆ ಇತರ ಸಾಧನದಲ್ಲಿ ಈ ಪಾಸ್ಕೀಯನ್ನು ಟೈಪ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ಸಂಯೋಜಿತ ಪ್ಯಾಕೇಜ್ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಸಾಧನಗಳಿಗೆ ಜೋಡಿಸುವುದನ್ನು ಮರೆಯದಿರಿ"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ನಿಮ್ಮ ಸಂಪರ್ಕಗಳು ಮತ್ತು ಕರೆ ಇತಿಹಾಸಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಿ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"ಸಂಪರ್ಕಗಳು ಮತ್ತು ಕರೆ ಇತಿಹಾಸಕ್ಕೆ ಆ್ಯಕ್ಸೆಸ್ ಅನ್ನು ಸಹ ಅನುಮತಿಸಿ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ಮಾಹಿತಿಯನ್ನು ಕರೆ ಪ್ರಕಟಣೆಗಳು ಮತ್ತು ಹೆಚ್ಚಿನವುಗಳಿಗಾಗಿ ಬಳಸಲಾಗುತ್ತದೆ"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ಲಭ್ಯವಿರುವ ಸಾಧನಗಳು"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ಈ ಸಾಧನದೊಂದಿಗೆ ವೈ-ಫೈ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"ಸಂಪರ್ಕಿಸುತ್ತಿದೆ…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ಹಾಟ್ಸ್ಪಾಟ್ ಹಂಚಿಕೊಳ್ಳಿ"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ಇದು ನೀವೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿ"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ಇದು ನೀವೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ವೈ-ಫೈ ಪಾಸ್ವರ್ಡ್: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ಹಾಟ್ಸ್ಪಾಟ್ ಪಾಸ್ವರ್ಡ್: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"ಸ್ವಯಂ-ಕನೆಕ್ಟ್"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ನೆಟ್ವರ್ಕ್ ವ್ಯಾಪ್ತಿಯಲ್ಲಿಲ್ಲ"</string>
<string name="wifi_forget" msgid="3485573280364015620">"ಮರೆತುಬಿಡಿ"</string>
<string name="wifi_modify" msgid="5127926476383659412">"ಮಾರ್ಪಡಿಸಿ"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ನೆಟ್ವರ್ಕ್ ಮರೆಯಲು ವಿಫಲವಾಗಿದೆ"</string>
<string name="wifi_save" msgid="2312643132472226807">"ಉಳಿಸಿ"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"ನೆಟ್ವರ್ಕ್ ಉಳಿಸಲು ವಿಫಲವಾಗಿದೆ"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"ರದ್ದುಮಾಡಿ"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"ನಿಮ್ಮ ಆದ್ಯತೆಯ ಆವರ್ತನ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ನಿಮ್ಮ ಹಾಟ್ಸ್ಪಾಟ್ ಬೇರೆಯದೊಂದನ್ನು ಬಳಸಬಹುದು. ನೀವು ಆವರ್ತನವನ್ನು ಬದಲಾಯಿಸಿದರೆ ಹಾಟ್ಸ್ಪಾಟ್ ಭದ್ರತಾ ಸೆಟ್ಟಿಂಗ್ಗಳು ಬದಲಾಗಬಹುದು."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz ನೊಂದಿಗೆ ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"ನೀವು ಹಾಟ್ಸ್ಪಾಟ್ನ ಫ್ರೀಕ್ವೆನ್ಸಿಯನ್ನು ಬದಲಾಯಿಸಿದರೆ ಭದ್ರತಾ ಸೆಟ್ಟಿಂಗ್ಗಳು ಬದಲಾಗಬಹುದು"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"ಹಾಟ್ಸ್ಪಾಟ್ ಆನ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"ಹಾಟ್ಸ್ಪಾಟ್ ಆಫ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ಟೆಥರಿಂಗ್ ಲಭ್ಯವಿಲ್ಲ"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಮರೆತುಹೋಗಿರುವಿರಾ?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ನಿಮ್ಮ ಪ್ಯಾಟರ್ನ್ ಮರೆತಿದ್ದೀರಾ?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ನಿಮ್ಮ ಪಿನ್ ಅನ್ನು ಮರೆತಿದ್ದೀರಾ?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ಮುಂದುವರಿಯಲು ನಿಮ್ಮ ಸಾಧನದ ಪ್ಯಾಟರ್ನ್ ಬಳಸಿ"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಸಾಧನದ ಪಿನ್ ನಮೂದಿಸಿ"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಸಾಧನದ ಪಾಸ್ವರ್ಡ್ ನಮೂದಿಸಿ"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಕೆಲಸದ ಪ್ಯಾಟರ್ನ್ ಬಳಸಿ"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ಮುಂದುವರಿಯಲು ನಿಮ್ಮ ಪ್ಯಾಟರ್ನ್ ನಮೂದಿಸಿ"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"ಹೆಚ್ಚಿನ ಸುರಕ್ಷತೆಗಾಗಿ, ನಿಮ್ಮ ಸಾಧನದ ಪ್ಯಾಟರ್ನ್ ಬಳಸಿ"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ಯಾವುದೇ ವಿವರಣೆಯನ್ನು ಒದಗಿಸಿಲ್ಲ."</string>
<string name="settings_button" msgid="2195468788019730377">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ಬೆಳಕಿನ ಸೂಕ್ಷ್ಮತೆ, ಫೋಟೊಫೋಬಿಯಾ, ಡಾರ್ಕ್ ಥೀಮ್, ಮೈಗ್ರೇನ್, ತಲೆನೋವು, ಓದುವ ಮೋಡ್, ರಾತ್ರಿ ಮೋಡ್, ಕಡಿಮೆ ಹೊಳಪು, ವೈಟ್ ಪಾಯಿಂಟ್"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ಸುಲಭ ಬಳಕೆ, ಸುಲಭ ಆ್ಯಕ್ಸೆಸ್, ಸಹಾಯ, ಅಸಿಸ್ಟೀವ್"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"ದೃಷ್ಟಿ, ಶ್ರವಣ, ಕುರುಡು, ಕಿವುಡು, ಮೋಟಾರ್, ದಕ್ಷತೆ, ಅಸಿಸ್ಟೀವ್, ಸಹಾಯ, ಸುಲಭ ಬಳಕೆ, ಸುಲಭ ಆ್ಯಕ್ಸೆಸ್, ಹ್ಯಾಂಡ್, ನೆರವು"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ವಿಂಡೋ ಮ್ಯಾಗ್ನಿಫೈಯರ್, ಝೂಮ್, ಹಿಗ್ಗಿಸುವಿಕೆ, ಕಡಿಮೆ ವಿಷನ್, ಹಿಗ್ಗಿಸಿ, ದೊಡ್ಡದಾಗಿಸಿ"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"ಶೀರ್ಷಿಕೆಗಳು, ಉಪಶೀರ್ಷಿಕೆಗಳು, CC, ಲೈವ್ ಟ್ರಾನ್ಸ್ಕ್ರೈಬ್, ಕಿವುಡುತನ, ಶ್ರವಣ ದೋಷ, ಕಾರ್ಟ್, ಧ್ವನಿಯಿಂದ ಪಠ್ಯ, ಉಪಶೀರ್ಷಿಕೆ"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"ಕಲರ್ ಕಾಂಟ್ರಾಸ್ಟ್"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"ಮೋಟಾರ್, ಮೌಸ್"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"ಶ್ರವಣ ಸಾಧನಗಳು, ಕಿವುಡುತನ, ಶ್ರವಣ ದೋಷ, ಕಾಕ್ಲಿಯರ್ ಇಂಪ್ಲಾಂಟ್ಗಳು, ಆಂಪ್ಲಿಫಿಕೇಶನ್ ಸಾಧನಗಳು, ಧ್ವನಿ ಪ್ರಾಸೆಸರ್ಗಳು"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"ಮೋಟಾರ್, ಮೌಸ್, ಬಾಹ್ಯ ಮೌಸ್, ಹೆಡ್ ಮೌಸ್, ಅಡಾಪ್ಟಿವ್ ಮೌಸ್, ವೀಲ್ಚೇರ್, ಜಾಯ್ಸ್ಟಿಕ್"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"ಶ್ರವಣ ಸಾಧನಗಳು, ಕಿವುಡುತನ, ಶ್ರವಣ ದೋಷ, ಕಾಕ್ಲಿಯರ್ ಇಂಪ್ಲಾಂಟ್ಗಳು, ಆಂಪ್ಲಿಫಿಕೇಶನ್ ಸಾಧನಗಳು, ಧ್ವನಿ ಪ್ರಾಸೆಸರ್ಗಳು, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"ಕಿವುಡುತನ, ಶ್ರವಣ ದೋಷ, ಶೀರ್ಷಿಕೆಗಳು, ಟೆಲಿಟೈಪ್, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ಮೂರು ಬಟನ್ಗಳು"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ದಕ್ಷತೆ, ಮೋಟಾರ್, ಹಿರಿಯ, ಸಂಧಿವಾತ, rsi, ಸ್ಟ್ರೋಕ್, ನಡುಕ, ಮಲ್ಟಿಪಲ್ ಸ್ಕ್ಲೆರೋಸಿಸ್, ಸೆರೆಬ್ರಲ್ ಪಾಲ್ಸಿ, ಅಲುಗಾಡುವಿಕೆ, ಪುನರಾವರ್ತಿತ ಒತ್ತಡದ ಗಾಯ, ಹ್ಯಾಂಡ್"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ವಿಳಂಬ, ದಕ್ಷತೆ, ಹಿರಿಯ"</string>
<string name="print_settings" msgid="8519810615863882491">"ಮುದ್ರಣ"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ಆಫ್"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ಮುದ್ರಣ ಸೇವೆ ಆನ್ ಆಗಿದೆ}one{# ಮುದ್ರಣ ಸೇವೆಗಳು ಆನ್ ಆಗಿವೆ}other{# ಮುದ್ರಣ ಸೇವೆಗಳು ಆನ್ ಆಗಿವೆ}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ಡೇಟಾ ಎಚ್ಚರಿಕೆ"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ಡೇಟಾ ಮಿತಿ"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ಡೇಟಾ ಎಚ್ಚರಿಕೆ / <xliff:g id="ID_2">^2</xliff:g> ಡೇಟಾ ಮಿತಿ"</string>
- <string name="operator_warning" msgid="5672761970087591211">"ವಾಹಕ ಡೇಟಾ ಲೆಕ್ಕಾಚಾರವು ಸಾಧನ ಲೆಕ್ಕಾಚಾರಕ್ಕಿಂತ ಭಿನ್ನವಾಗಿರಬಹುದು"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ಕ್ಯಾರಿಯರ್ ನೆಟ್ವರ್ಕ್ಗಳು ಬಳಸುವ ಡೇಟಾವನ್ನು ಇದು ಹೊರತುಪಡಿಸುತ್ತದೆ"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ಬಳಸಲಾಗಿದೆ"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ಡೇಟಾ ಎಚ್ಚರಿಕೆಯನ್ನು ಸೆಟ್ ಮಾಡಿ"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"ಸ್ವಯಂತುಂಬುವಿಕೆ ಸೇವೆ"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ಡೀಫಾಲ್ಟ್ ಆಟೋಫಿಲ್ ಸೇವೆ"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"ಪಾಸ್ವರ್ಡ್ಗಳು"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"ಪಾಸ್ವರ್ಡ್ಗಳು, ಪಾಸ್ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳು"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"ಪಾಸ್ವರ್ಡ್ಗಳು, ಪಾಸ್ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳು"</string>
<string name="credman_credentials" msgid="4931371941253324143">"ಹೆಚ್ಚುವರಿ ಪೂರೈಕೆದಾರರು"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# ಪಾಸ್ವರ್ಡ್}one{# ಪಾಸ್ವರ್ಡ್ಗಳು}other{# ಪಾಸ್ವರ್ಡ್ಗಳು}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ಸ್ವಯಂಚಾಲಿತ, ಭರ್ತಿ ಮಾಡುವಿಕೆ, ಸ್ವಯಂ-ಭರ್ತಿಮಾಡುವಿಕೆ, ಪಾಸ್ವರ್ಡ್"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ಆಟೋ, ಫಿಲ್, ಆಟೋಫಿಲ್, ಡೇಟಾ, ಪಾಸ್ಕೀ, ಪಾಸ್ವರ್ಡ್"</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="4951846866327737417">"<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="2642776965060619988">"ಪಾಸ್ವರ್ಡ್ಗಳು, ಪಾಸ್ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳು"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"ಪಾಸ್ವರ್ಡ್ಗಳು, ಪಾಸ್ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳು"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"1$s ಅನ್ನು ಆಫ್ ಮಾಡಬೇಕೆ?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ಈ ಸೇವೆಯನ್ನು ಆಫ್ ಮಾಡಬೇಕೇ?</b> <br/> <br/> ಪಾಸ್ವರ್ಡ್ಗಳು, ಪಾಸ್ಕೀಗಳು, ಪಾವತಿ ವಿಧಾನಗಳಂತಹ ಸೇವ್ ಮಾಡಿದ ಮಾಹಿತಿಯನ್ನು ಮತ್ತು ಇತರ ಮಾಹಿತಿಯನ್ನು ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ ಭರ್ತಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ಸೇವ್ ಮಾಡಿದ ಮಾಹಿತಿಯನ್ನು ಬಳಸಲು, ಪಾಸ್ವರ್ಡ್, ಪಾಸ್ಕೀ ಅಥವಾ ಡೇಟಾ ಸೇವೆಯನ್ನು ಆಯ್ಕೆಮಾಡಿ."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ಬಳಸಬೇಕೇ?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"ಯಾವುದನ್ನು ಆಟೋಫಿಲ್ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು %1$s ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಮೇಲಿರುವುದನ್ನು ಬಳಸುತ್ತದೆ."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"ಪಾಸ್ವರ್ಡ್ಗಳು, ಪಾಸ್ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳ ಮಿತಿ"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"ನೀವು ಒಂದೇ ಸಮಯದಲ್ಲಿ 5 ಪಾಸ್ವರ್ಡ್ಗಳು, ಪಾಸ್ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳನ್ನು ಸಕ್ರಿಯವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಬಹುದು. ಇನ್ನಷ್ಟು ಸೇರಿಸಲು ಸೇವೆಯನ್ನು ಆಫ್ ಮಾಡಿ."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"ಪಾಸ್ವರ್ಡ್ಗಳು, ಪಾಸ್ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳ ಮಿತಿ"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"ನೀವು ಒಂದೇ ಸಮಯದಲ್ಲಿ 5 ಪಾಸ್ವರ್ಡ್ಗಳು, ಪಾಸ್ಕೀಗಳು ಮತ್ತು ಡೇಟಾ ಸೇವೆಗಳನ್ನು ಸಕ್ರಿಯವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಬಹುದು. ಇನ್ನಷ್ಟು ಸೇರಿಸಲು ಸೇವೆಯನ್ನು ಆಫ್ ಮಾಡಿ."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ಆಫ್ ಮಾಡಿ"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ಸ್ವಯಂ ಭರ್ತಿ"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"ಲಾಗಿಂಗ್ ಮಟ್ಟ"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ಹೊಂದಾಣಿಕೆಯಾಗುವ ಮಾಧ್ಯಮಗಳ ಆಡಿಯೋ ಇನ್ನಷ್ಟು ತಲ್ಲೀನವಾಗಿ ಕೇಳಿಸುತ್ತದೆ"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ಹೆಡ್ ಟ್ರ್ಯಾಕಿಂಗ್"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ಆಡಿಯೋ ಇನ್ನಷ್ಟು ನೈಜವಾಗಿ ಕೇಳಿಸಲು ನಿಮ್ಮ ತಲೆಯನ್ನು ಸರಿಸಿದಾಗಲೆಲ್ಲಾ ಆಡಿಯೋ ಬದಲಾಗುತ್ತದೆ"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ಆಡಿಯೋ ಸಾಧನದ ಪ್ರಕಾರ"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ಅಪರಿಚಿತ"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ಸ್ಪೀಕರ್"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ಹೆಡ್ಫೋನ್ಗಳು"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"ಕಾರ್ ಕಿಟ್"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"ಇತರೆ"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ನೆಟ್ವರ್ಕ್ ಡೌನ್ಲೋಡ್ ದರದ ಮಿತಿ"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ಇಂಟರ್ನೆಟ್ ಕನೆಕ್ಟಿವಿಟಿಯನ್ನು ಒದಗಿಸುವ ಎಲ್ಲಾ ನೆಟ್ವರ್ಕ್ಗಳಿಗೆ ಅನ್ವಯಿಸಲಾಗುವ ನೆಟ್ವರ್ಕ್ ಬ್ಯಾಂಡ್ವಿಡ್ತ್ ಪ್ರವೇಶ ದರದ ಮಿತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ನೆಟ್ವರ್ಕ್ ಡೌನ್ಲೋಡ್ ದರದ ಮಿತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ಆ್ಯಪ್ ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ಕಳೆದ # ತಿಂಗಳಲ್ಲಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ ಆ್ಯಪ್ಗಳು}one{ಕಳೆದ # ತಿಂಗಳಲ್ಲಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ ಆ್ಯಪ್ಗಳು}other{ಕಳೆದ # ತಿಂಗಳಲ್ಲಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿದ ಆ್ಯಪ್ಗಳು}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# ತಿಂಗಳ ಹಿಂದೆ ಆ್ಯಪ್ಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ}one{# ತಿಂಗಳುಗಳ ಹಿಂದೆ ಆ್ಯಪ್ಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ}other{# ತಿಂಗಳುಗಳ ಹಿಂದೆ ಆ್ಯಪ್ಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"ದೃಶ್ಯಾನುಪಾತ"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"ಈ ಆ್ಯಪ್ ಅನ್ನು ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸರಿಹೊಂದುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಿರದಿದ್ದರೆ ಇದನ್ನು ವೀಕ್ಷಿಸಲು ದೃಶ್ಯಾನುಪಾತವೊಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ಸೂಚಿಸಿರುವ ಆ್ಯಪ್ಗಳು"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ನೀವು ಅತಿಕ್ರಮಿಸಿರುವ ಆ್ಯಪ್ಗಳು"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ಆ್ಯಪ್ ಡೀಫಾಲ್ಟ್"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ಪೂರ್ಣ ಸ್ಕ್ರೀನ್"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ಅರ್ಧ ಸ್ಕ್ರೀನ್"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ಸಾಧನದ ದೃಶ್ಯಾನುಪಾತ"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ನೀವು ದೃಶ್ಯಾನುಪಾತವನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಆ್ಯಪ್ ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಸೇವ್ ಮಾಡದಿರುವ ಬದಲಾವಣೆಗಳನ್ನು ನೀವು ಕಳೆದುಕೊಳ್ಳಬಹುದು."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"ಫ್ಲಾಶ್ ನೋಟಿಫಿಕೇಶನ್ಗಳು"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"ಫ್ಲ್ಯಾಶ್ ನೋಟಿಫಿಕೇಶನ್ಗಳ ಕುರಿತು"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"ಮಧ್ಯಮ"</string>
<string name="contrast_high" msgid="3988567609694797696">"ಹೆಚ್ಚು"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ಈ ಆ್ಯಪ್ ಅನ್ನು 1 ವಿಂಡೋದಲ್ಲಿ ಮಾತ್ರ ತೆರೆಯಬಹುದು"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"ಸೇವೆ ಆನ್ ಆಗಿದೆ"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"ಸೇವೆ ಆಫ್ ಆಗಿದೆ"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"ಶಾರ್ಟ್ ಕಟ್ ಆಫ್ ಆಗಿದೆ"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ಆನ್ ಆಗಿದೆ"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ಆಫ್ ಆಗಿದೆ"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ಆಫ್ ಆಗಿದೆ"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ಆಫ್"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ಆನ್"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ಆಫ್"</string>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index e8bd555..eb24411 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1분 후"</item>
<item msgid="1574040255478150028">"5분 후"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"밝기 자동 조절을 사용 설정하여 배터리 수명 늘리기"</item>
+ <item msgid="2256666063790193306">"화면 자동 잠금 시간을 줄여 배터리 수명 늘리기"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 4bfc247..f6de9e8 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"지정되지 않음"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"여성"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"남성"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{선택한 언어를 삭제하시겠습니까?}other{선택한 언어를 삭제하시겠습니까?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"텍스트가 다른 언어로 표시됩니다."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"모든 언어를 삭제할 수는 없습니다."</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"얼굴 및 <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"얼굴, 지문, <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"얼굴, 지문, <xliff:g id="WATCH">%s</xliff:g> 추가됨"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"시계 설정하기"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"스마트시계 잠금 해제는 손가락이 젖었거나 얼굴이 인식되지 않을 때 휴대전화를 잠금 해제할 수 있는 또 다른 편리한 방법입니다.\n\n시계를 사용하여 다음과 같은 방법으로 휴대전화를 잠금 해제할 수 있습니다."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"나중에"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"계속"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"더보기"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"작동 원리"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"시계를 손목에 착용하고 있는 상태에서 시계가 잠금 해제되어 있으며 이 휴대전화와 가까이에 있어야 합니다. 손목에 착용하고 있는 상태에서는 시계를 다시 잠금 해제할 필요가 없습니다."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"이 휴대전화가 잠금 해제되면 시계로 알림이 전송됩니다. 의도하지 않았는데 휴대전화 잠금이 해제된 경우 알림을 탭하여 휴대전화를 다시 잠글 수 있습니다."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"직접 관리하기"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"언제든지 설정을 통해 스마트시계 잠금 해제에서 시계를 삭제할 수 있습니다."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"알림 탭하기"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"잠금 화면에서 위로 스와이프"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"시계 선택하기"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"사용 가능한 시계"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"취소"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"확인"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"설정 완료"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"이제 잠금 화면을 위로 스와이프하거나 알림을 탭하면 시계를 사용하여 이 휴대전화의 잠금을 해제할 수 있습니다."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"완료"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"스마트시계 잠금 해제"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"잠금 화면을 위로 스와이프하거나 알림을 탭하면 시계를 사용하여 이 휴대전화의 잠금을 해제할 수 있습니다."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"스마트시계 잠금 해제를 사용하려면 시계를 손목에 착용하고 있는 상태에서 시계가 잠금 해제되어 있으며 이 휴대전화와 연결되어 있어야 합니다. 연결이 중단되면 스마트시계 잠금 해제를 사용하기 전에 휴대전화를 잠금 해제해야 합니다.\n\n주의사항:\n한 번에 하나의 시계만 설정할 수 있습니다. 다른 시계를 추가하려면 먼저 기존 시계를 삭제해야 합니다."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"스마트시계 잠금 해제 자세히 알아보기"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"시계 추가"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"시계 삭제"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"지문 및 얼굴 인식 잠금 해제"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"직장용 얼굴 인식/지문 잠금 해제"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"설정 필요"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"또한 경우에 따라 다른 기기에 이 패스키를 입력해야 합니다."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"통합 세트와의 페어링 확인"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"연락처 및 통화 기록 액세스 허용"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"연락처 및 통화 기록에 대한 액세스도 허용합니다."</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"정보는 전화 알림 등에 사용됩니다."</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에 연결할 수 없습니다."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"사용할 수 있는 기기"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"이 기기와 Wi‑Fi 공유 중…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"연결 중…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"핫스팟 공유"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"본인 인증하기"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"본인 확인"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi 비밀번호: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"핫스팟 비밀번호: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"자동 연결"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"범위 안에 네트워크가 없음"</string>
<string name="wifi_forget" msgid="3485573280364015620">"삭제"</string>
<string name="wifi_modify" msgid="5127926476383659412">"수정"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"네트워크 기록 삭제 실패"</string>
<string name="wifi_save" msgid="2312643132472226807">"저장"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"네트워크 저장 실패"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"취소"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"선호하는 주파수를 사용할 수 없는 경우 핫스팟에서 다른 주파수를 사용할 수 있습니다. 주파수를 변경하면 핫스팟 보안 설정도 변경될 수 있습니다."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6GHz에서 사용할 수 없음"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"핫스팟 주파수를 변경하면 보안 설정도 변경될 수 있습니다."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"핫스팟 켜는 중…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"핫스팟 끄는 중…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"테더링을 사용할 수 없음"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"비밀번호를 잊으셨나요?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"패턴을 잊으셨나요?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN을 잊으셨나요?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"계속하려면 기기 패턴을 사용하세요."</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"계속하려면 기기 PIN을 입력하세요."</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"계속하려면 기기 비밀번호를 입력하세요."</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"계속하려면 직장 패턴을 사용하세요."</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"계속 진행하려면 패턴을 그리세요."</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"계속 진행하려면 PIN을 입력하세요."</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">"계속하려면 직장 PIN을 입력하세요."</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"계속하려면 직장 비밀번호를 입력하세요."</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"보안을 강화하려면 기기 패턴을 사용하세요."</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"제공된 설명이 없습니다."</string>
<string name="settings_button" msgid="2195468788019730377">"설정"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"광과민성, 광선공포증, 어두운 테마, 편두통, 두통, 읽기 모드, 야간 모드, 밝기 낮추기, 화이트 포인트"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"사용 편의성, 접근 편의성, 지원, 보조"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"시각, 청각, 시각장애, 청각장애, 거동, 민첩성, 보조, 도움, 사용 편의성, 접근 편의성, 손, 지원"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"창 돋보기, 확대/축소, 확대, 저시력, 크게, 화면 크게"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"캡션, 폐쇄 자막, CC, 음성 자막 변환, 난청, 청력 손실, CART, 음성 텍스트 변환, 자막"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"색상 대비"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"거동, 마우스"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"보청기, 난청, 청력 상실, 인공 와우, 소리 증폭 기기, 사운드 프로세서"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"거동, 마우스, 외장 마우스, 헤드 마우스, 어댑티브 마우스, 휠체어, 조이스틱"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"보청기, 난청, 청력 상실, 인공 와우, 소리 증폭 기기, 사운드 프로세서, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"난청, 청력 손실, 캡션, 텔레타이프, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"버튼 3개"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"민첩성, 거동, 노인, 관절염, RSI, 뇌졸중, 떨림, 다발성 경화증, 뇌성마비, 경련, 반복성 긴장 장애, 손"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"지연, 민첩성, 노인"</string>
<string name="print_settings" msgid="8519810615863882491">"인쇄"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"사용 안함"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{인쇄 서비스 1개 사용}other{인쇄 서비스 #개 사용}}"</string>
@@ -2774,7 +2811,7 @@
<string name="help_label" msgid="2896538416436125883">"고객센터"</string>
<string name="user_account_title" msgid="6389636876210834864">"콘텐츠용 계정"</string>
<string name="user_picture_title" msgid="7176437495107563321">"사진 ID"</string>
- <string name="extreme_threats_title" msgid="1098958631519213856">"긴급한 위협"</string>
+ <string name="extreme_threats_title" msgid="1098958631519213856">"극심한 위협"</string>
<string name="extreme_threats_summary" msgid="3560742429496902008">"생명과 재산에 대한 긴급한 위협에 대해 알림을 수신합니다."</string>
<string name="severe_threats_title" msgid="8962959394373974324">"심각한 위협"</string>
<string name="severe_threats_summary" msgid="4982256198071601484">"생명 및 재산에 대한 심각한 위협에 대해 알림을 수신합니다."</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"데이터 사용량 경고 한도: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"데이터 사용 한도: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"데이터 사용량 경고 한도: <xliff:g id="ID_1">^1</xliff:g> / 데이터 사용 한도: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"기기에 표시되는 데이터 사용량은 이동통신사에서 산출한 데이터 사용량과 다를 수 있습니다."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"이동통신사 네트워크를 통해 사용된 데이터는 제외됩니다."</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> 사용함"</string>
<string name="set_data_warning" msgid="1685771882794205462">"데이터 경고 설정"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"자동완성 서비스"</string>
<string name="default_autofill_app" msgid="372234803718251606">"기본 자동 완성 서비스"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"비밀번호"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"비밀번호, 패스키, 데이터 서비스"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"비밀번호, 패스키, 데이터 서비스"</string>
<string name="credman_credentials" msgid="4931371941253324143">"추가 제공업체"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{비밀번호 #개}other{비밀번호 #개}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"자동, 채우기, 자동 완성, 비밀번호"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"자동, 완성, 자동 완성, 데이터, 패스키, 비밀번호"</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="4951846866327737417">"<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="2642776965060619988">"비밀번호, 패스키, 데이터 서비스"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"비밀번호, 패스키, 데이터 서비스"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s을(를) 사용 중지하시겠습니까?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>이 서비스를 사용 중지하시겠습니까?</b> <br/> <br/> 로그인해도 비밀번호, 패스키, 결제 수단, 기타 정보와 같은 저장된 정보는 채워지지 않습니다. 저장된 정보를 사용하려면 비밀번호, 패스키 또는 데이터 서비스를 선택하세요."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s을(를) 사용하시겠습니까?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s에서 내 화면에 있는 항목을 사용해 자동 완성 항목을 결정합니다."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"비밀번호, 패스키, 데이터 서비스 한도"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"동시에 최대 5개의 비밀번호, 패스키, 데이터 서비스를 활성화할 수 있습니다. 추가하려면 서비스를 사용 중지하세요."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"비밀번호, 패스키, 데이터 서비스 한도"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"최대 5개의 비밀번호, 패스키, 데이터 서비스를 동시에 활성화할 수 있습니다. 추가하려면 서비스를 사용 중지하세요."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"사용 중지"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"자동 완성"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"로깅 수준"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"호환되는 미디어에서 더 몰입감 넘치는 오디오를 경험할 수 있습니다."</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"머리 추적"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"머리를 움직이면 오디오가 변경되어 더 자연스러운 소리를 들을 수 있습니다."</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"오디오 기기 유형"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"알 수 없음"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"스피커"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"헤드폰"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"차량 키트"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"기타"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"네트워크 다운로드 속도 제한"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"인터넷 연결을 제공하는 모든 네트워크에 적용할 네트워크 대역폭 인그레스 속도 제한을 설정합니다."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"네트워크 다운로드 속도 제한 설정"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"앱 제거"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{지난 #개월 내에 설치된 앱}other{지난 #개월 내에 설치된 앱}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{앱이 설치된 지 #개월 이상 지남}other{앱이 설치된 지 #개월 이상 지남}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"가로세로 비율"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에 맞지 않게 만들어졌다면 이 앱을 볼 가로세로 비율을 선택합니다"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"추천 앱"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"재정의한 앱"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"앱 기본값"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"전체 화면"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"절반 화면"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"기기 가로세로 비율"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"가로세로 비율을 변경하면 앱이 다시 시작됩니다. 저장하지 않은 변경사항은 손실될 수 있습니다."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"지문 센서"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"플래시 알림"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"플래시 알림 정보"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"보통"</string>
<string name="contrast_high" msgid="3988567609694797696">"높음"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"이 앱은 창 1개에서만 열 수 있습니다."</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"서비스 사용"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"서비스 사용 안함"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"단축키 사용 안함"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"사용"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"사용 안함"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"사용 안함"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"사용 안함"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"사용"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"사용 안함"</string>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index 4b19f1d..e2b8dd0 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 мүнөттөн кийин"</item>
<item msgid="1574040255478150028">"5 мүнөттөн кийин"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Батареянын кубатынын мөөнөтүн узартуу үчүн ыңгайлаштырылуучу жарыкты күйгүзүңүз"</item>
+ <item msgid="2256666063790193306">"Батареянын кубатынын мөөнөтүн узартуу үчүн экрандын өчүү убакытын кыскартыңыз"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 74007c4..b7c0514 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Белгиленген эмес"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Аял жак"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Эркек жак"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Тандалган тилди өчүрөсүзбү?}other{Тандалган тилдерди өчүрөсүзбү?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текст башка тилде көрүнөт."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Тилдердин баары алынбайт"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Жүз жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Жүз, манжа издери жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Жүз, манжа издери жана <xliff:g id="WATCH">%s</xliff:g> кошулду"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Саатыңызды тууралап алыңыз"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Кулпуну саат менен ачуу функциясы — манжаларыңыз ным болуп же жүзүңүз таанылбай турганда телефондун кулпусун ачуунун дагы бир ыңгайлуу жолу.\n\nБул телефондун кулпусун ачуу үчүн саатыңызды төмөнкү учурларда колдоно аласыз:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Азыр эмес"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Улантуу"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Дагы"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Ал кантип иштейт"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Саатыңыздын кулпусу ачылып, билегиңизге тагылып жана телефонго жакын болушу керек. Саатыңыз билегиңизде болсо, анын кулпусун кайра ачуунун кереги жок."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Бул телефондун кулпусу ачылганда саатыңызга билдирме аласыз. Эгер телефондун кулпусу кокустан ачылып кетсе, билдирмени таптап, аны кайра кулпулап койсоңуз болот."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Баары өзүңүздүн колуңузда"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Тууралоого өтүп, саатыңызды каалаган убакта кулпуну саат менен ачуу функциясынан алып салсаңыз болот"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Билдирмени таптоо"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Кулпуланган экранды өйдө сүрүңүз"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Саатыңызды тандаңыз"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Жеткиликтүү сааттар"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Жокко чыгаруу"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Ырастоо"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Баары даяр!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Эми кулпуланган экранды өйдө сүрүп же билдирмени таптап, телефонуңуздун кулпусун саатыңыз менен ача аласыз"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Бүттү"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Кулпуну саат менен ачуу"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Кулпуланган экранды өйдө сүрүп же билдирмени таптап, телефонуңуздун кулпусун саатыңыз менен ача аласыз"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Кулпуну саат менен ачуу үчүн саатыңыздын кулпусу ачылып, билегиңизге тагылып жана телефонго туташып турушу керек. Эгер байланыш үзгүлтүккө учураса, кулпуну саат менен ачуу үчүн адегенде телефонуңуздун кулпусун ачышыңыз керек болот.\n\nКөңүл буруңуз:\nБир убакта бир саатты гана тууралай аласыз. Башка саатты кошуу үчүн адегенде учурдагысын өчүрүңүз."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Кулпуну саат менен ачуу тууралуу кеңири маалымат"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Саат кошуу"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Саатты өчүрүү"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Манжа изи жана Жүзүнөн таанып ачуу"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Жумуш профилинде жүз жана манжа изи менен ачуу функциясы"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Коюу керек"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Сиз бул сырсөздү башка түзмөккө дагы киргизишиңиз керек болушу мүмкүн."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Координацияланган топтомго туташуу үчүн ырастаңыз"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Байланыштар менен чалууларды жеткиликтүү кылуу"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Ошондой эле байланыштарга жана чалуу таржымалына кирүүгө уруксат берүү"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Маалымат чалуу тууралуу билдирмелер жана башкалар үчүн колдонулат"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> менен байланыша албай жатат."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Жеткиликтүү түзмөктөр"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi бул түзмөк менен бөлүшүлүүдө…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Туташууда…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Жалпы байланыш түйүнү"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Өзүңүздү ырастаңыз"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Өзүңүздү ырастаңыз"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi сырсөзү: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Байланыш түйүнүнүн сырсөзү: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Авто-туташуу"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Тармак тейлөө аймагында эмес"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Унутулсун"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Өзгөртүү"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Түйүн унутулган жок"</string>
<string name="wifi_save" msgid="2312643132472226807">"Сактоо"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Түйүн сакталган жок"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Жок"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Эгер сиз каалаган жыштык жок болсо, байланыш түйүнүңүз башкасын колдонушу мүмкүн. Жыштыкты өзгөртсөңүз, байланыш түйүнүнүн коопсуздук параметрлери өзгөрүшү мүмкүн."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 ГГц менен жеткиликсиз"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Байланыш түйүнүнүн жыштыгын өзгөртсөңүз, коопсуздук параметрлери өзгөрүшү мүмкүн"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Байланыш түйүнү жандырылууда…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Байланыш түйүнү өчүрүлүүдө…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Байланыш түйүнү жеткиликсиз"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Сырсөзүңүздү унутуп койдуңузбу?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Графикалык ачкычты унутуп койдуңузбу?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN кодуңузду унутуп койдуңузбу?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Улантуу үчүн түзмөгүңүздүн графикалык ачкычын киргизиңиз"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Улантуу үчүн түзмөгүңүздүн PIN кодун киргизиңиз"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Улантуу үчүн түзмөгүңүздүн сырсөзүн киргизиңиз"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Улантуу үчүн жумуш профилиңиздин графикалык ачкычын колдонуңуз"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Улантуу үчүн графикалык ачкычты тартыңыз"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Улантуу үчүн PIN кодуңузду киргизиңиз"</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">"Улантуу үчүн жумуш профилиңиздин PIN кодун киргизиңиз"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Улантуу үчүн жумуш профилиңиздин сырсөзүн киргизиңиз"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Кошумча коопсуздук үчүн түзмөгүңүздүн графикалык ачкычын колдонуңуз"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Эч кандай сүрөттөө берилген эмес."</string>
<string name="settings_button" msgid="2195468788019730377">"Параметрлер"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"жарыкты сезгичтик, фотофобия, караңгы тема, шакый, баш ооруу, окуу режими, түнкү режим, жарыктыгын азайтуу, ак чекит"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Оңой колдонуу, оңой кирүү, жардам, ыңгайлуу"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"көрүү, угуу, сокур, дүлөй, мотор, эптүүлүк, жардамчы, жардам берүү, колдонуу жеңилдиги, жеткиликтүүлүк, кол, жардам"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Терезени чоңойткуч, чоңойтуп/кичирейтүү, чоңойтуу, начар көрүү, жакындатуу, чоңураак кылуу"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Коштомо жазуулар, тике транскрипциялоо, начар угуу, угуу жөндөмүнүн жоголушу, CART, cөздөн текстке, коштомо жазуу"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"түс контрасты"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"кыймылдын бузулушу, чычкан"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"угуу аппараттары, начар угуу, укпай калуу, кохлеардык имплантаттар, үндү күчөтүүчү түзмөктөр, добуш иштеткичтер"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"мотор, чычкан, тышкы чычкан, баш менен көзөмөлдөнгөн чычкан, ыңгайлаштырылуучу чычкан, майыптар арабасы, жойстик"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"угуу аппараттары, начар угуу, укпай калуу, кохлеардык имплантаттар, үндү күчөтүүчү түзмөктөр, добуш иштеткичтер, жеке үн күчөткүч товарлары"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"начар угуу, угуу жөндөмүнүн жоголушу, коштомо жазуулар, телетайп, телетайп түзмөгү"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"үч баскыч"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"эптүүлүк, мотор, улуу, артрит, инсульт, тремор, склероз, церебралдык шал оорусу, титирөө, кайталанма кыймылдан келип чыккан травма, кол"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"кечиктирүү, эптүүлүк, улуу"</string>
<string name="print_settings" msgid="8519810615863882491">"Басып чыгаруу"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Өчүк"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 басып чыгаруу кызматы күйүк}other{# басып чыгаруу кызматы күйүк}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Качан эскертүү берилет: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Трафик чектелген: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Качан эскертүү берилет: <xliff:g id="ID_1">^1</xliff:g> / Трафик чектелген: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Байланыш операторунун статистикасы түзмөгүңүздүн статистикасынан айырмаланышы мүмкүн."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Байланыш операторунун тармактары колдонгон нерселерден тышкары"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> колдонулду"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Трафик тууралуу эскертүү"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Автотолтуруу кызматы"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Демейки автотолтуруу кызматы"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Сырсөздөр"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Сырсөздөр, киргизүүчү ачкычтар жана маалымат кызматтары"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Сырсөздөр, киргизүүчү ачкычтар жана маалымат кызматтары"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Кошумча провайдерлер"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# cырсөз}other{# сырсөз}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"авто, толтуруу, автоматтык түрдө толтуруу, сырсөз"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"авто, толтуруу, автотолтуруу, маалымат, киргизүүчү ачкыч, сырсөз"</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="4951846866327737417">"<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="2642776965060619988">"Сырсөздөр, киргизүүчү ачкычтар жана маалымат кызматтары"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Сырсөздөр, киргизүүчү ачкычтар жана маалымат кызматтары"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s өчүрүлсүнбү?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Бул кызматты өчүрөсүзбү?</b> <br/> <br/> Сырсөздөр, киргизүүчү ачкычтар, төлөм ыкмалары жана башка сакталган маалымат аккаунтка кирип жатканыңызда толтурулбайт. Сакталган маалыматыңызды колдонуу үчүн сырсөздү, киргизүүчү ачкычты же маалымат кызматын тандаңыз."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s колдонулсунбу?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s экрандагы мазмундун кайсы жерлери автоматтык түрдө толтурула тургандыгын аныктайт."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Сырсөздөргө, киргизүүчү ачкычтарга жана маалымат кызматтарына коюлган чек"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Бир эле убакта 5 сырсөзгө, киргизүүчү ачкычка жана маалымат кызматтарына чейин колдоно аласыз. Көбүрөөк кошуу үчүн кызматты өчүрүңүз."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Сырсөздөргө, киргизүүчү ачкычтарга жана маалымат кызматтарына коюлган чек"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Бир эле убакта 5 сырсөзгө, киргизүүчү ачкычка жана маалымат кызматтарына чейин колдоно аласыз. Көбүрөөк кошуу үчүн кызматты өчүрүңүз."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Өчүрүү"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Автотолтуруу"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Кирүү деңгээли"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Шайкеш түзмөктөрдөн чыккан үн таасирдүү угулат"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Баштын кыймылына көз салуу"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Үн табигый угулушу үчүн башыңызды кыймылдатканыңызда аудио өзгөрөт"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Аудио түзмөктүн түрү"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Белгисиз"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Динамик"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Гарнитура"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Автоунаа гарнитурасы"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Башка"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Тармактан жүктөп алуу ылдамдыгынын чеги"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Интернет байланышын камсыздаган бардык тармактарга колдонула турган тармактын өткөрүү жөндөмдүүлүгүнүн кирүү жыштыгынын чегин конфигурациялаңыз."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Тармактан жүктөп алуу ылдамдыгынын чегин конфигурациялаңыз"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Колдонмону чыгарып салуу"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Акыркы # айдын ичинде орнотулган колдонмолор}other{Акыркы # айдын ичинде орнотулган колдонмолор}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# айдан ашуун убакыт мурун орнотулган колдонмолор}other{# айдан ашуун убакыт мурун орнотулган колдонмолор}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Тараптардын катнашы"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Эгер колдонмо <xliff:g id="DEVICE_NAME">%1$s</xliff:g> үчүн түзүлбөгөн болсо, аны көрүү үчүн ылайыктуу тараптардын катнашын тандаңыз"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Сунушталган колдонмолор"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Сиз өзгөртүп койгон колдонмолор"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Колдонмодогу демейки маани"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Толук экран"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Жарым экран"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Түзмөктүн тараптарынын катнашы"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Тараптардын катнашын өзгөрткөндө бул колдонмо өчүп күйөт. Өзгөртүүлөрүңүз сакталбай калышы мүмкүн."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Манжа изинин сенсору"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Жарык менен коштолгон билдирмелер"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Жарык менен коштолгон билдирмелер жөнүндө"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Орточо"</string>
<string name="contrast_high" msgid="3988567609694797696">"Жогору"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Бул колдонмону 1 терезеде гана ачууга болот"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Кызмат күйүк"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Кызмат өчүк"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Ыкчам баскыч өчүк"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Күйүк"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Өчүк"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Өчүк"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Өчүк"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Күйүк"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Өчүк"</string>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index a1b07b9..d3b4fc3 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"ຫຼັງຈາກ 1 ນາທີ"</item>
<item msgid="1574040255478150028">"ຫຼັງຈາກ 5 ນາທີ"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"ເປີດຄຸນສົມບັດປັບຄວາມແຈ້ງອັດຕະໂນມັດເພື່ອຍືດອາຍຸແບັດເຕີຣີ"</item>
+ <item msgid="2256666063790193306">"ຫຼຸດໄລຍະໝົດເວລາໜ້າຈໍເພື່ອຍືດອາຍຸແບັດເຕີຣີ"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index f28b061..79e5c29 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"ບໍ່ລະບຸ"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"ເພດຍິງ"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"ເພດຊາຍ"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ລຶບພາສາທີ່ເລືອກໄວ້ອອກບໍ?}other{ລຶບພາສາທີ່ເລືອກໄວ້ອອກບໍ?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"ຂໍ້ຄວາມຈະຖືກສະແດງໃນພາສາອື່ນ."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ບໍ່ສາມາດລຶບທຸກພາສາອອກໄດ້"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ເພີ່ມໃບໜ້າ ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ເພີ່ມໃບໜ້າ, ລາຍນິ້ວມື ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ເພີ່ມໃບໜ້າ, ລາຍນິ້ວມື ແລະ <xliff:g id="WATCH">%s</xliff:g> ແລ້ວ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ຕັ້ງຄ່າໂມງຂອງທ່ານ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"ການປົດລັອກດ້ວຍໂມງແມ່ນອີກວິທີໜຶ່ງທີ່ສະດວກໃນການປົດລັອກໂທລະສັບເຄື່ອງນີ້ ຕົວຢ່າງ: ເມື່ອນິ້ວຂອງທ່ານປຽກຢູ່ ຫຼື ລະບົບຈື່ໃບໜ້າຂອງທ່ານບໍ່ໄດ້.\n\nທ່ານສາມາດໃຊ້ໂມງຂອງທ່ານເພື່ອປົດລັອກໂທລະສັບເຄື່ອງນີ້ໄດ້ເມື່ອທ່ານ:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ບໍ່ຟ້າວເທື່ອ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"ສືບຕໍ່"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"ເພີ່ມເຕີມ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ມັນເຮັດວຽກແນວໃດ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ຕ້ອງປົດລັອກໂມງຂອງທ່ານໄວ້, ໃສ່ຢູ່ຂໍ້ມືຂອງທ່ານ ແລະ ຢູ່ໃນໄລຍະສັນຍານຂອງໂທລະສັບເຄື່ອງນີ້. ທ່ານບໍ່ຈຳເປັນຕ້ອງປົດລັອກໂມງຂອງທ່ານອີກເທື່ອໜຶ່ງໃນລະຫວ່າງທີ່ໃສ່ຢູ່ຂໍ້ມືຂອງທ່ານ."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ເມື່ອປົດລັອກໂທລະສັບນີ້ແລ້ວ, ທ່ານຈະໄດ້ຮັບການແຈ້ງເຕືອນຢູ່ໂມງຂອງທ່ານ. ຫາກເປັນການປົດລັອກເມື່ອທ່ານບໍ່ໄດ້ຕັ້ງໃຈ, ໃຫ້ແຕະການແຈ້ງເຕືອນເພື່ອລັອກໂທລະສັບອີກເທື່ອໜຶ່ງ."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ທ່ານຄວບຄຸມໄດ້"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ທ່ານສາມາດລຶບໂມງຂອງທ່ານອອກຈາກການປົດລັອກດ້ວຍໂມງຕອນໃດກໍໄດ້ໃນການຕັ້ງຄ່າ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ແຕະການແຈ້ງເຕືອນ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ປັດຂຶ້ນຢູ່ໜ້າຈໍລັອກ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ເລືອກໂມງຂອງທ່ານ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ໂມງທີ່ສາມາດໃຊ້ໄດ້"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ຍົກເລີກ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ຢືນຢັນ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ທ່ານພ້ອມແລ້ວ!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ຕອນນີ້ທ່ານສາມາດໃຊ້ໂມງຂອງທ່ານເພື່ອປົດລັອກໂທລະສັບເຄື່ອງນີ້ ເມື່ອທ່ານປັດຂຶ້ນຢູ່ໜ້າຈໍລັອກ ຫຼື ແຕະການແຈ້ງເຕືອນໄດ້ແລ້ວ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ແລ້ວໆ"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ປົດລັອກດ້ວຍໂມງ"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ທ່ານສາມາດໃຊ້ໂມງຂອງທ່ານເພື່ອປົດລັອກໂທລະສັບເຄື່ອງນີ້ ເມື່ອທ່ານປັດຂຶ້ນຢູ່ໜ້າຈໍລັອກ ຫຼື ແຕະການແຈ້ງເຕືອນ"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ເພື່ອໃຊ້ການປົດລັອກດ້ວຍໂມງ, ຕ້ອງປົດລັອກໂມງຂອງທ່ານໄວ້, ໃສ່ຢູ່ຂໍ້ມືຂອງທ່ານ, ຢູ່ໃນໄລຍະສັນຍານ ແລະ ເຊື່ອມຕໍ່ກັບໂທລະສັບເຄື່ອງນີ້. ຫາກການເຊື່ອມຕໍ່ຖືກຂັດຈັງຫວະ, ທ່ານຈະຕ້ອງປົດລັອກໂທລະສັບກ່ອນທີ່ທ່ານຈະສາມາດໃຊ້ການປົດລັອກດ້ວຍໂມງໄດ້.\n\nຈົງຈື່ໄວ້ວ່າ:\nທ່ານສາມາດຕັ້ງຄ່າໂມງໄດ້ເທື່ອລະໜ່ວຍເທົ່ານັ້ນ. ເພື່ອເພີ່ມໂມງອື່ນ, ໃຫ້ລຶບໂມງປັດຈຸບັນອອກກ່ອນ."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ສຶກສາເພີ່ມເຕີມກ່ຽວກັບການປົດລັອກດ້ວຍໂມງ"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ເພີ່ມໂມງ"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ລຶບໂມງອອກ"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ປົດລັອກດ້ວຍລາຍນິ້ວມື ແລະ ໜ້າ"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ການປົດລັອກດ້ວຍໜ້າ ແລະ ລາຍນິ້ວມືສຳລັບການເຮັດວຽກ"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ຕ້ອງຕັ້ງຄ່າ"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ທ່ານອາດຕ້ອງພິມ passkey ນີ້ໃນອຸປະກອນອື່ນນຳ"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ຢືນຢັນເພື່ອຈັບຄູ່ກັບຊຸດທີ່ປະສານກັນ"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ອະນຸຍາດໃຫ້ເຂົ້າເຖິງລາຍຊື່ຜູ້ຕິດຕໍ່ ແລະ ປະຫວັດການໂທຂອງທ່ານ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"ອະນຸຍາດໃຫ້ເຂົ້າເຖິງລາຍຊື່ຜູ້ຕິດຕໍ່ ແລະ ປະຫວັດການໂທນຳ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ຂໍ້ມູນຈະຖືກໃຊ້ສຳລັບປະກາດການໂທ ແລະ ອື່ນໆ"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ໄດ້."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ອຸປະກອນທີ່ສາມາດໃຊ້ໄດ້"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ກຳລັງແບ່ງປັນ Wi‑Fi ກັບອຸປະກອນນີ້…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"ກຳລັງເຊື່ອມຕໍ່…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ແບ່ງປັນຮັອດສະປອດ"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ຢັ້ງຢືນວ່າແມ່ນທ່ານ"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ຢືນຢັນວ່າແມ່ນທ່ານ"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ລະຫັດຜ່ານ Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ລະຫັດຜ່ານຮັອດສະປອດ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"ເຊື່ອມຕໍ່ອັດຕະໂນມັດ"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ເຄືອຂ່າຍບໍ່ຢູ່ໃນໄລຍະ"</string>
<string name="wifi_forget" msgid="3485573280364015620">"ລືມ"</string>
<string name="wifi_modify" msgid="5127926476383659412">"ແກ້ໄຂ"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ລົ້ມເຫລວໃນການລືມເຄືອຂ່າຍ"</string>
<string name="wifi_save" msgid="2312643132472226807">"ບັນທຶກ"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"ລົ້ມເຫລວໃນການບັນທຶກເຄືອຂ່າຍ"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"ຍົກເລີກ"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"ຫາກບໍ່ມີຄວາມຖີ່ທີ່ທ່ານຕ້ອງການ, ຮັອດສະປອດຂອງທ່ານອາດໃຊ້ຄວາມຖີ່ອື່ນ. ການຕັ້ງຄ່າຄວາມປອດໄພຮັອດສະປອດອາດປ່ຽນແປງຫາກທ່ານປ່ຽນຄວາມຖີ່."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"ບໍ່ສາມາດໃຊ້ໄດ້ກັບ 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"ການຕັ້ງຄ່າຄວາມປອດໄພອາດປ່ຽນ ຫາກທ່ານປ່ຽນຄວາມຖີ່ຂອງຮັອດສະປອດ"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"ກຳລັງເປີດໃຊ້ຮັອດສະປອດ..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"ກຳລັງປິດຮັອດສະປອດ..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ບໍ່ສາມາດໃຊ້ການປ່ອຍສັນຍານໄດ້"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"ລືມລະຫັດຜ່ານຂອງທ່ານບໍ?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ລືມຮູບແບບຂອງທ່ານບໍ?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ລືມ PIN ຂອງທ່ານບໍ?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ໃຊ້ຮູບແບບປົດລັອກອຸປະກອນຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ປ້ອນ PIN ອຸປະກອນຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ປ້ອນລະຫັດຜ່ານອຸປະກອນຂອງທ່ານເພື່ອດຳເນີນການຕໍ່"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ໃຊ້ຮູບແບບປົດລັອກບ່ອນເຮັດວຽກຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ແຕ້ມຮູບແບບຂອງທ່ານເພື່ອສືບຕໍ່"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ໃສ່ PIN ຂອງທ່ານເພື່ອສືບຕໍ່"</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">"ປ້ອນ PIN ບ່ອນເຮັດວຽກຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ປ້ອນລະຫັດຜ່ານບ່ອນເຮັດວຽກຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ເພື່ອເພີ່ມຄວາມປອດໄພ, ໃຫ້ໃຊ້ຮູບແບບປົດລັອກອຸປະກອນຂອງທ່ານ"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ບໍ່ມີລາຍລະອຽດລະບຸໄວ້."</string>
<string name="settings_button" msgid="2195468788019730377">"ການຕັ້ງຄ່າ"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ຄວາມໄວແສງ, ຄວາມຢ້ານແສງ, ຮູບແບບສີສັນມືດ, ໄມເກຣນ, ເຈັບຫົວ, ໂໝດການອ່ານ, ໂໝດກາງຄືນ, ຫຼຸດຄວາມສະຫວ່າງ, ຈຸດສີຂາວ"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ງ່າຍໃນການໃຊ້, ງ່າຍໃນການເຂົ້າເຖິງ, ຄວາມຊ່ວຍເຫຼືອ, ອຳນວຍຄວາມສະດວກ"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"ວິໄສທັດ, ການໄດ້ຍິນ, ຕາບອດ, ຄົນຫູໜວກ, ມໍເຕີ, ຄວາມຊໍານິຊໍານານ, ການຊ່ວຍເຫຼືອ, ການຊ່ວຍເຫຼືອ, ຄວາມສະດວກໃນການນໍາໃຊ້, ຄວາມສະດວກຂອງສິດເຂົ້າເຖິງ, ມື, ການຊ່ວຍເຫຼືອ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ຕົວຂະຫຍາຍໜ້າຈໍ, ຊູມ, ການຂະຫຍາຍ, ເບິ່ງເຫັນຍາກ, ຂະຫຍາຍ, ເຮັດໃຫ້ໃຫຍ່ຂຶ້ນ"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"ຄຳບັນຍາຍ, CC, ການຖອດຂໍ້ຄວາມດ່ວນ, ມີບັນຫາໃນການໄດ້ຍິນ, ສູນເສຍການໄດ້ຍິນ, CART, ການປ່ຽນສຽງເວົ້າເປັນຂໍ້ຄວາມ, ຄຳແປ"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"ຄອນທຣາສຂອງສີ"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"ມໍເຕີ, ເມົ້າ"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"ເຄື່ອງຊ່ວຍຟັງ, ມີບັນຫາໃນການໄດ້ຍິນ, ສູນເສຍການໄດ້ຍິນ, ປະສາດຫູທຽມ, ອຸປະກອນຂະຫຍາຍສຽງ, ຕົວປະມວນຜົນສຽງ"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"ມໍເຕີ, ເມົ້າ, ເມົ້າພາຍນອກ, ຫົວເມົ້າ, ເມົ້າແບບປັບໄດ້, ລໍ້ຍູ້ຄົນເຈັບ, ຈອຍສະຕິກ"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"ເຄື່ອງຊ່ວຍຟັງ, ມີບັນຫາໃນການໄດ້ຍິນ, ສູນເສຍການໄດ້ຍິນ, ປະສາດຫູທຽມ, ອຸປະກອນຂະຫຍາຍສຽງ, ຕົວປະມວນຜົນສຽງ, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"ມີບັນຫາໃນການໄດ້ຍິນ, ສູນເສຍການໄດ້ຍິນ, ຄຳບັນຍາຍ, Teletype, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ສາມປຸ່ມ"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ຄວາມຊໍານິຊໍານານ, ມໍເຕີ, ອາວຸໂສ, ໂລກຂໍ້ອັກເສບ, rsi, ຫຼອດເລືອດ, ອາການສັ່ນ, ຫຼາຍເສັ້ນເລືອດຕີບ, ສະໝອງພິການ, ການສັ່ນ, ການບາດເຈັບເປັນຊ້ຳໆ, ມື"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ຊັກຊ້າ, ຊໍານິຊໍານານ, ອາວຸໂສ"</string>
<string name="print_settings" msgid="8519810615863882491">"ການພິມ"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ປິດ"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{ເປີດ 1 ບໍລິການພິມ}other{ເປີດ # ບໍລິການພິມ}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"ຄຳເຕືອນຂໍ້ມູນ <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"ຈຳກັດຂໍ້ມູນ <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ຄຳເຕືອນຂໍ້ມູນ <xliff:g id="ID_1">^1</xliff:g> / ຈຳກັດຂໍ້ມູນ <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"ການນັບຂໍ້ມູນຈາກຜູ້ໃຫ້ບໍລິການ ອາດມີຄວາມແຕກຕ່າງຈາກການນັບຂອງອຸປະກອນ"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ບໍ່ຮວມປະລິມານຂໍ້ມູນອິນເຕີເນັດທີ່ໃຊ້ໂດຍເຄືອຂ່າຍຜູ້ໃຫ້ບໍລິການ"</string>
<string name="data_used_template" msgid="8229342096562327646">"ໃຊ້ໄປແລ້ວ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ຕັ້ງການເຕືອນຂໍ້ມູນ"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"ບໍລິການຕື່ມຂໍ້ມູນອັດຕະໂນມັດ"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ບໍລິການຕື່ມຂໍ້ມູນອັດຕະໂນມັດຕາມຄ່າເລີ່ມຕົ້ນ"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"ລະຫັດຜ່ານ"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການເຄືອຂ່າຍຂໍ້ມູນ"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນ"</string>
<string name="credman_credentials" msgid="4931371941253324143">"ຜູ້ໃຫ້ບໍລິການເພີ່ມເຕີມ"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# ລະຫັດຜ່ານ}other{# ລະຫັດຜ່ານ}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ອັດຕະໂນມັດ, ຕື່ມຂໍ້ມູນ, ການຕື່ມຂໍ້ມູນອັດຕະໂນມັດ, ລະຫັດຜ່ານ"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ອັດຕະໂນມັດ, ຕື່ມຂໍ້ມູນ, ການຕື່ມຂໍ້ມູນອັດຕະໂນມັດ, ຂໍ້ມູນ, ກະແຈຜ່ານ, ລະຫັດຜ່ານ"</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="4951846866327737417">"<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="2642776965060619988">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນ"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນ"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"ປິດ %1$s ບໍ?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ປິດບໍລິການນີ້ບໍ?</b> <br/> <br/> ຂໍ້ມູນທີ່ບັນທຶກໄວ້ເຊັ່ນ: ລະຫັດຜ່ານ, ກະແຈຜ່ານ, ວິທີການຈ່າຍເງິນ ແລະ ຂໍ້ມູນອື່ນໆຈະບໍ່ຖືກຕື່ມໃສ່ເມື່ອທ່ານເຂົ້າສູ່ລະບົບ. ເພື່ອນຳໃຊ້ຂໍ້ມູນທີ່ບັນທຶກໄວ້, ໃຫ້ເລືອກລະຫັດຜ່ານ, ກະແຈຜ່ານ ຫຼື ບໍລິການຂໍ້ມູນ."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"ໃຊ້ %1$s ບໍ?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ໃຊ້ສິ່ງທີ່ຢູ່ໜ້າຈໍຂອງທ່ານເພື່ອລະບຸສິ່ງທີ່ສາມາດຕື່ມຂໍ້ມູນອັດຕະໂນມັດໄດ້."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນຈຳກັດ"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"ທ່ານສາມາດມີໄດ້ເຖິງ 5 ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ການບໍລິການຂໍ້ມູນທີ່ມີການເຄື່ອນໄຫວໃນເວລາດຽວກັນ. ປິດບໍລິການໃດໜຶ່ງເພື່ອເພີ່ມອີກ."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນຈຳກັດ"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"ທ່ານສາມາດມີໄດ້ເຖິງ 5 ລະຫັດຜ່ານ, ກະແຈຜ່ານ ແລະ ບໍລິການຂໍ້ມູນທີ່ມີການເຄື່ອນໄຫວໃນເວລາດຽວກັນ. ປິດບໍລິການໃດໜຶ່ງເພື່ອເພີ່ມອີກ."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ປິດ"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ຕື່ມຂໍ້ມູນອັດຕະໂນມັດ"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"ລະດັບການບັນທຶກ"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ສຽງຈາກມີເດຍທີ່ເຂົ້າກັນໄດ້ຈະມີຄວາມສົມຈິງຍິ່ງຂຶ້ນ"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ການຕິດຕາມຫົວ"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ສຽງຈະປ່ຽນເມື່ອທ່ານຍັບຫົວຂອງທ່ານເພື່ອໃຫ້ສຽງເປັນທຳມະຊາດຍິ່ງຂຶ້ນ"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ປະເພດເຄື່ອງສຽງ"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ບໍ່ຮູ້ຈັກ"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ລຳໂພງ"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ຫູຟັງ"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"ຊຸດເຄື່ອງມືສຳລັບລົດ"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"ອື່ນໆ"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ຂີດຈຳກັດອັດຕາດາວໂຫຼດເຄືອຂ່າຍ"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ຕັ້ງຄ່າຂີດຈຳກັດອັດຕາການເຂົ້າແບນວິດເຄືອຂ່າຍເຊິ່ງນຳໃຊ້ກັບເຄືອຂ່າຍທັງໝົດທີ່ສະໜອງການເຊື່ອມຕໍ່ອິນເຕີເນັດ."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ຕັ້ງຄ່າຂີດຈຳກັດອັດຕາການດາວໂຫຼດເຄືອຂ່າຍ"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ຖອນການຕິດຕັ້ງແອັບ"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ແອັບທີ່ຕິດຕັ້ງໃນ # ເດືອນທີ່ຜ່ານມາ}other{ແອັບທີ່ຕິດຕັ້ງໃນ # ເດືອນທີ່ຜ່ານມາ}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ແອັບທີ່ຕິດຕັ້ງຫຼາຍກວ່າ # ເດືອນທີ່ຜ່ານມາ}other{ແອັບທີ່ຕິດຕັ້ງຫຼາຍກວ່າ # ເດືອນທີ່ຜ່ານມາ}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"ອັດຕາສ່ວນຮູບ"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"ເລືອກອັດຕາສ່ວນຮູບເພື່ອເບິ່ງແອັບນີ້ຫາກມັນບໍ່ໄດ້ຖືກອອກແບບມາໃຫ້ພໍດີກັບ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ຂອງທ່ານ"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ແອັບແນະນຳ"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ແອັບທີ່ທ່ານໄດ້ຍົກເລີກການຕັ້ງຄ່າ"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ຄ່າເລີ່ມຕົ້ນຂອງແອັບ"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ເຕັມຈໍ"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ເຄິ່ງຈໍ"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ອັດຕາສ່ວນຮູບຂອງອຸປະກອນ"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ແອັບຈະຣີສະຕາດເມື່ອທ່ານປ່ຽນອັດຕາສ່ວນຮູບ. ທ່ານອາດເສຍການປ່ຽນແປງທີ່ຍັງບໍ່ໄດ້ບັນທຶກ."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ເຊັນເຊີລາຍນິ້ວມື"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"ການແຈ້ງເຕືອນດ້ວຍແຟລດ"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"ກ່ຽວກັບການແຈ້ງເຕືອນດ້ວຍແຟລດ"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"ປານກາງ"</string>
<string name="contrast_high" msgid="3988567609694797696">"ສູງ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ແອັບນີ້ສາມາດເປີດໄດ້ໃນ 1 ໜ້າຈໍເທົ່ານັ້ນ"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"ບໍລິການເປີດຢູ່"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"ບໍລິການປິດຢູ່"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"ທາງລັດປິດຢູ່"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ເປີດຢູ່"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ປິດຢູ່"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ປິດຢູ່"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ປິດ"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ເປີດ"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ປິດ"</string>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 9c66346..5eaa696 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Po vienos minutės"</item>
<item msgid="1574040255478150028">"Po penkių minučių"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Įjunkite prisitaikantį šviesumą, kad pailgintumėte akumuliatoriaus veikimo laiką"</item>
+ <item msgid="2256666063790193306">"Sumažinkite ekrano skirtąjį laiką, kad pailgintumėte akumuliatoriaus veikimo laiką"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 239f474..23037c1 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nenurodyta"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Moteriškoji giminė"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Vyriškoji giminė"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Pašalinti pasirinktą kalbą?}one{Pašalinti pasirinktas kalbas?}few{Pašalinti pasirinktas kalbas?}many{Pašalinti pasirinktas kalbas?}other{Pašalinti pasirinktas kalbas?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekstas bus rodomas kita kalba."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Negalima pašalinti visų kalbų"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Pridėti veido ir <xliff:g id="WATCH">%s</xliff:g> duomenys"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Pridėti veido, piršto atspaudo ir <xliff:g id="WATCH">%s</xliff:g> duomenys"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Pridėti veido, piršto atspaudų ir <xliff:g id="WATCH">%s</xliff:g> duomenys"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nustatykite laikrodį"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Laikrodžio atrakinimo funkcija yra dar vienas patogus būdas atrakinti šį telefoną, pvz., kai jūsų pirštai šlapi arba kai nepavyksta atpažinti jūsų veido.\n\nGalite atrakinti šį telefoną naudodami laikrodį, atlikę toliau nurodytus veiksmus."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne dabar"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Tęsti"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Daugiau"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Kaip tai veikia"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Laikrodis turi būti atrakintas, uždėtas ant riešo ir netoli šio telefono. Kol laikrodis bus ant riešo, nereikės jo iš naujo atrakinti."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kai šis telefonas bus atrakintas, gausite pranešimą laikrodyje. Jei telefonas atrakinamas, nors nenorėjote to padaryti, palieskite pranešimą vėl užrakinti telefoną."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Viską valdote jūs"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Galite bet kada atšaukti laikrodžio funkciją „Laikrodžio atrakinimas“ skiltyje „Nustatymai“"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Palieskite pranešimą"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Perbraukite aukštyn užrakinimo ekrane"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Laikrodžio pasirinkimas"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Pasiekiami laikrodžiai"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Atšaukti"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Patvirtinti"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Viskas nustatyta!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Dabar galite atrakinti šį telefoną naudodami laikrodį, perbraukę aukštyn užrakinimo ekrane arba palietę pranešimą"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Atlikta"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Laikrodžio atrakinimas"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Galite atrakinti šį telefoną naudodami laikrodį, perbraukę aukštyn užrakinimo ekrane arba palietę pranešimą"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Kad galėtumėte naudoti Laikrodžio atrakinimo funkciją, laikrodis turi būti atrakintas, uždėtas ant riešo, netoli šio telefono ir prie jo prijungtas. Jei ryšys bus pertrauktas, turėsite atrakinti telefoną, kad galėtumėte naudoti Laikrodžio atrakinimo funkciją.\n\nAtminkite\nVienu metu galite turėti tik vieną susietą laikrodį. Jei norite pridėti kitą laikrodį, pirmiausia pašalinkite esamą."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Sužinokite daugiau apie funkciją „Laikrodžio atrakinimas“"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Pridėti laikrodį"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Pašalinti laikrodį"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Piršto atspaudas ir atrakinimas pagal veidą"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Atrakinimas pagal veidą ir piršto atspaudu darbe"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Reikia nustatyti"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Galbūt reikės šį prieigos raktą įvesti kitame įrenginyje."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Patvirtinkite, kad susietumėte su suderintu rinkiniu"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Leisti pasiekti jūsų kontaktus ir skambučių istoriją"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Taip pat leiskite pasiekti kontaktus ir skambučių istoriją"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informacija bus naudojama skambučių pranešimams ir kt."</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nepavyko prisijungti prie „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Pasiekiami įrenginiai"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Bendrinamas „Wi‑Fi“ su šiuo įrenginiu…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Prisijungiama…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Viešosios interneto prieigos taško bendrinimas"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Patvirtinkite, kad tai jūs"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Savo tapatybės patvirtinimas"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"„Wi-Fi“ slaptažodis: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Viešosios interneto prieigos taško slaptažodis: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatiškai prisijungti"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Tinklas ne diapazone"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Pamiršti"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Keisti"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ištrinant tinklą įvyko klaida."</string>
<string name="wifi_save" msgid="2312643132472226807">"Išsaugoti"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Išsaugant tinklą įvyko klaida."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Atšaukti"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Jei pageidaujamas dažnis nepasiekiamas, viešosios interneto prieigos taškas gali naudoti kitą dažnį. Pakeitus dažnį gali pasikeisti viešosios interneto prieigos taško saugos nustatymai."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nepasiekiama su 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Saugos nustatymai gali pasikeisti, jei pakeisite viešosios interneto prieigos taško dažnį"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Įjungiamas viešosios interneto prieigos taškas…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Išjungiamas viešosios interneto prieigos taškas…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Įrenginio kaip modemo naudojimas nepasiekiamas"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Pamiršote slaptažodį?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Pamiršote atrakinimo piešinį?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Pamiršote PIN kodą?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Jei norite tęsti, naudokite įrenginio atrakinimo piešinį"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Jei norite tęsti, įveskite įrenginio PIN kodą"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Jei norite tęsti, įveskite įrenginio slaptažodį"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Jei norite tęsti, naudokite darbo atrakinimo piešinį"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Tęskite nupiešę atrakinimo piešinį"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Tęskite įvedę PIN kodą"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Tęskite įvedę slaptažodį"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Tęskite nupiešę darbo atrakinimo piešinį"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Jei norite tęsti, įveskite darbo PIN kodą"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Jei norite tęsti, įveskite darbo slaptažodį"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Kad dar labiau apsaugotumėte įrenginį, naudokite įrenginio atrakinimo piešinį"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nepateikta jokių aprašų."</string>
<string name="settings_button" msgid="2195468788019730377">"Nustatymai"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"jautrumas šviesai, fotofobija, tamsioji tema, migrena, galvos skausmas, skaitymo režimas, naktinis režimas, šviesumo mažinimas, baltas taškas"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Lengva naudoti, lengva prieiga, pagalba, pagalbinis"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"regėjimas, klausa, aklasis, kurčias asmuo, motorika, miklumas, pagalbinis, pagalba, paprasta naudoti, paprasta pasiekti, ranka, padėti"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"„Window Magnifier“, mastelio keitimas, didinimas, sutrikusio regėjimo asmuo, padidinti, padaryti didesnį"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Subtitrai, CC, transkripcija realiuoju laiku, neprigirdintis asmuo, klausos sutrikimai, CART, kalba į tekstą, titrai"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"spalvų kontrastas"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, pelė"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"klausos aparatai, neprigirdintis asmuo, klausos praradimas, vidinės ausies implantai, garso stiprinimo įrenginiai, garso apdorojimo priemonės"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, pelė, išorinė pelė, pelė ant galvos, prisitaikanti pelė, neįgaliųjų vežimėlis, vairasvirtė"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"klausos aparatai, neprigirdintis asmuo, klausos praradimas, vidinės ausies implantai, garso stiprinimo įrenginiai, garso apdorojimo priemonės, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"neprigirdintis asmuo, klausos sutrikimai, subtitrai, teletaipas, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"trys mygtukai"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"miklumas, motorika, vyresnis, artritas, RSI, priepuolis, tremoras, išsėtinė sklerozė, cerebrinis paralyžius, drebulys, pakartotinis patempimas, ranka"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"delsa, miklumas, vyresnis"</string>
<string name="print_settings" msgid="8519810615863882491">"Spausdinimas"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Išjungta"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Įjungta 1 spausdinimo paslauga}one{Įjungta # spausdinimo paslauga}few{Įjungtos # spausdinimo paslaugos}many{Įjungta # spausdinimo paslaugos}other{Įjungta # spausdinimo paslaugų}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> duomenų įspėjimas"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> duomenų apribojimas"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> duomenų įspėjimas / <xliff:g id="ID_2">^2</xliff:g> duomenų apribojimas"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operatoriaus duomenų apskaita gali skirtis nuo įrenginio duomenų apskaitos"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Išskiriami duomenys, kuriuos naudoja operatorių tinklai"</string>
<string name="data_used_template" msgid="8229342096562327646">"Išnaudota <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Nustatyti duomenų įspėjimą"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Aut. pildymo paslauga"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Numatytoji automatinio pildymo paslauga"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Slaptažodžiai"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Slaptažodžiai, prieigos raktai ir duomenų paslaugos"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Slaptažodžiai, prieigos raktai ir duomenų paslaugos"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Papildomi teikėjai"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# slaptažodis}one{# slaptažodis}few{# slaptažodžiai}many{# slaptažodžio}other{# slaptažodžių}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatinis, užpildyti, automatinis pildymas, slaptažodis"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatinis, užpildyti, automatinis pildymas, duomenys, prieigos raktas, slaptažodis"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Įsitikinkite, kad pasitikite šia programa</b> <br/> <br/> <xliff:g id=app_name example=„Google“ automatinis pildymas>%1$s</xliff:g> naudodamas informaciją ekrane nustato, ką gali užpildyti automatiškai."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Naudoti „<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>“ naudoja ekrane esančią informaciją, kad nustatytų, ką galima automatiškai užpildyti. Nuo šiol čia išsaugomi nauji slaptažodžiai, prieigos raktai ir kita informacija."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Slaptažodžiai, prieigos raktai ir duomenų paslaugos"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Slaptažodžiai, prieigos raktai ir duomenų paslaugos"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Išjungti „%1$s“?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Išjungti šį įrenginį?</b> <br/> <br/> Išsaugota informacija, pvz., slaptažodžiai, prieigos raktai, mokėjimo metodai ir kita informacija, nebus užpildyta prisijungiant. Jei norite naudoti išsaugotą informaciją, pasirinkite slaptažodį, prieigos raktą arba duomenų paslaugą."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Naudoti „%1$s“?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"„%1$s“ naudoja ekrane esančią informaciją siekdama nustatyti, ką galima automatiškai užpildyti."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Slaptažodžių, prieigos raktų ir duomenų paslaugų apribojimas"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Vienu metu galite turėti daugiausia penkis aktyvius slaptažodžius, prieigos raktus ir duomenų paslaugas. Norėdami pridėti daugiau, išjunkite paslaugą."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Slaptažodžių, prieigos raktų ir duomenų paslaugų apribojimas"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Vienu metu galite turėti daugiausia penkis aktyvius slaptažodžius, prieigos raktus ir duomenų paslaugas. Norėdami pridėti daugiau, išjunkite paslaugą."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Išjungti"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automatinis pildymas"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Registr. į žurnalą lygis"</string>
@@ -4674,6 +4710,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Kokybiškesnis suderinamos medijos garsas"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Galvos stebėjimas"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Garso pakeitimai, kad garsas skambėtų natūraliau judinant galvą"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Garso įrenginio tipas"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nežinoma"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Garsiakalbis"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Ausinės"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Automobilinė įranga"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Kita"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Tinklo atsisiuntimo rodiklio apribojimas"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigūruokite tinklo pralaidumo įvesties rodiklio apribojimą, kuris taikomas visiems tinklams, teikiantiems interneto ryšį."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigūruokite tinklo atsisiuntimo rodiklio apribojimą"</string>
@@ -4752,10 +4796,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Vidutinis"</string>
<string name="contrast_high" msgid="3988567609694797696">"Aukštas"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Šią programą galima atidaryti tik viename lange"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Paslauga įjungta"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Paslauga išjungta"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Šaukinys išjungtas"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Įjungta"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Išjungta"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Išjungta"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Išjungta"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Įjungta"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Išjungta"</string>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index fdd5bf8..c4e83a3 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Pēc 1 minūtes"</item>
<item msgid="1574040255478150028">"Pēc 5 minūtēm"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Lai paildzinātu akumulatora darbību, ieslēdziet adaptīvo spilgtumu"</item>
+ <item msgid="2256666063790193306">"Lai paildzinātu akumulatora darbību, samaziniet ekrāna noildzes laiku"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 5864ec7..fc2d743 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nav norādīts"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Sieviešu dzimte"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Vīriešu dzimte"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vai noņemt atlasīto valodu?}zero{Vai noņemt atlasītās valodas?}one{Vai noņemt atlasītās valodas?}other{Vai noņemt atlasītās valodas?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teksts tiks rādīts citā valodā."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nevar noņemt visas valodas"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Pievienota seja un pulkstenis <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Pievienota seja, pirksta nospiedums un pulkstenis <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Pievienota seja, pirkstu nospiedumi un pulkstenis <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Pulksteņa iestatīšana"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Atbloķēšana ar pulksteni ir vēl viens ērts tālruņa atbloķēšanas veids. Piemēram, kad ir pirksti ir mitri vai seja netiek atpazīta.\n\nVarat izmantot pulksteni, lai atbloķētu tālruni tālāk norādītajos veidos."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Vēlāk"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Turpināt"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Vairāk"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Darbības principi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Pulkstenim jābūt atbloķētam, apliktam ap plaukstas locītavu un jāatrodas tālruņa tuvumā. Kamēr pulkstenis būs aplikts ap plaukstas locītavu, to nevajadzēs atbloķēt."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kad tālrunis tiks atbloķēts, pulkstenī saņemsiet paziņojumu. Ja tālrunis tika atbloķēts nejauši, pieskarieties paziņojumam, lai bloķētu tālruni."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Jūs visu kontrolējat"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Jebkurā laikā iestatījumu sadaļā varat noņemt pulksteni no funkcijas Atbloķēšana ar pulksteni"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Pieskarieties paziņojumam"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Bloķēšanas ekrānā velciet uz augšu"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Pulksteņa izvēle"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Pieejamie pulksteņi"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Atcelt"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Apstiprināt"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Gatavs!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Tagad varat izmantot pulksteni, lai atbloķētu šo tālruni, bloķēšanas ekrānā velkot augšup vai pieskaroties paziņojumam"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gatavs"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Atbloķēšana ar pulksteni"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Varat izmantot pulksteni, lai atbloķētu šo tālruni, bloķēšanas ekrānā velkot augšup vai pieskaroties paziņojumam."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Lai varētu izmantot atbloķēšanu ar pulksteni, pulkstenim jābūt atbloķētam, apliktam ap plaukstas locītavu, savienotam ar šo tālruni un jāatrodas tā tuvumā. Ja savienojums ir pārtraukts, tālrunis būs jāatbloķē, lai varētu izmantot funkciju “Atbloķēšana ar pulksteni”.\n\nŅemiet vērā:\nvienlaikus var būt iestatīts tikai viens pulkstenis. Lai pievienotu citu pulksteni, vispirms noņemiet jau iestatīto pulksteni."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Uzzināt vairāk par funkciju “Atbloķēšana ar pulksteni”"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Pievienot pulksteni"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Noņemt pulksteni"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Autorizācija ar pirksta nospiedumu un pēc sejas"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Autorizācija pēc sejas un pirksta nospieduma darba profilam"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Nepieciešama iestatīšana"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Iespējams, šī ieejas atslēga būs jāievada arī otrā ierīcē."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Apstipriniet, lai savienotu pārī ar koordinēto kopu."</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Atļaut piekļuvi jūsu kontaktpersonām un zvanu vēsturei"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Atļaujiet arī piekļuvi kontaktpersonām un zvanu vēsturei"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informācija tiks izmantota paziņojumiem par zvaniem un citām funkcijām"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nevarēja izveidot savienojumu ar ierīci <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Pieejamās ierīces"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Notiek Wi‑Fi kopīgošana ar šo ierīci…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Notiek savienojuma izveide…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Tīklāja kopīgošana"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Identitātes apstiprināšana"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Apstipriniet, ka tas esat jūs"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi tīkla parole: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Tīklāja parole: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automātiski izveidot savienojumu"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Neesat tīkla sasniedzamības zonā"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Neiegaumēt"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Mainīt"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Neizdevās aizmirst tīklu."</string>
<string name="wifi_save" msgid="2312643132472226807">"Saglabāt"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Neizdevās saglabāt tīklu."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Atcelt"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ja vēlamā frekvence nav pieejama, tīklājā varat izmantot citu frekvenci. Ja mainīsiet frekvenci, var tikt mainīti tīklāja drošības iestatījumi."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nav pieejama, izmantojot šādu frekvenci: 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Ja mainīsiet tīklāja frekvenci, var tikt mainīti drošības iestatījumi."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Notiek tīklāja ieslēgšana…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Notiek tīklāja izslēgšana…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Piesaiste nav pieejama"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Vai aizmirsāt paroli?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Vai aizmirsāt kombināciju?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Vai aizmirsāt PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Lai turpinātu, izmantojiet ierīces kombināciju."</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Lai turpinātu, ievadiet ierīces PIN kodu."</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Lai turpinātu, ievadiet savas ierīces paroli."</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Lai turpinātu, izmantojiet darba profila kombināciju."</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Zīmējiet kombināciju, lai turpinātu"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Ievadiet PIN, lai turpinātu"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Ievadiet paroli, lai turpinātu"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Zīmējiet darba kombināciju, lai turpinātu"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Lai turpinātu, ievadiet darba profila PIN kodu."</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Lai turpinātu, ievadiet darba profila paroli."</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Papildu drošībai izmantojiet ierīces kombināciju."</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Apraksts nav sniegts."</string>
<string name="settings_button" msgid="2195468788019730377">"Iestatījumi"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"jutīgums pret gaismu, fotofobija, tumšais motīvs, migrēna, galvassāpes, lasīšanas režīms, nakts režīms, samazināt spilgtumu, baltais punkts"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ērta lietošana, ērta piekļuve, atbalsts, papildu darbības"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"redze, dzirde, akls, nedzirdīgs, motorika, roku koordinācija, papildu darbības, atbalsts, ērta lietošana, ērta piekļuve, roka, palīdzība"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Loga palielināšana, tālummaiņa, palielinājums, vājredzība, palielināt, padarīt lielāku"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Titri, slēptie subtitri, subtitri, tieša transkripcija, vājdzirdība, nedzirdība, stenogrāfija reāllaikā, runas pārvēršana tekstā, runas teksts"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"krāsu kontrasts"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorika, pele"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"dzirdes aparāti, vājdzirdība, nedzirdība, kohleārie implanti, skaņas pastiprināšanas ierīces, skaņu apstrādātāji"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, pele, ārējā pele, galvas pele, adaptīvā pele, ratiņkrēsls, kursorsvira"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"dzirdes aparāti, vājdzirdība, nedzirdība, kohleārie implanti, skaņas pastiprināšanas ierīces, skaņu apstrādātāji, personīgie skaņas pastiprināšanas produkti"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"vājdzirdība, nedzirdība, subtitri, teletaips, teksta tālrunis"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"trīs pogas"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"roku koordinācija, motorika, seniors, artrīts, insults, roku trīce, multiplā skleroze, cerebrālā trieka, trīce, atkārtotas slodzes traumas, roka"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"aizkave, roku koordinācija, seniors"</string>
<string name="print_settings" msgid="8519810615863882491">"Drukāšana"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Izslēgts"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Ieslēgts 1 drukāšanas pakalpojums}zero{Ieslēgti # drukāšanas pakalpojumi}one{Ieslēgts # drukāšanas pakalpojums}other{Ieslēgti # drukāšanas pakalpojumi}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Datu brīdinājums: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Datu ierobežojums: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Datu brīdinājums: <xliff:g id="ID_1">^1</xliff:g>, datu ierobežojums: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Mobilo sakaru operatora datu uzskaite var atšķirties no datu uzskaites ierīcē"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Neietver datu lietojumu mobilo sakaru operatoru tīklos."</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> izmantoti"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Ieslēgt brīdinājumu par datiem"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Automātiskā aizpilde"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Noklusējuma automātiskās aizpildes pakalpojums"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Paroles"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Paroles, piekļuves atslēgas un datu pakalpojumi"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Paroles, piekļuves atslēgas un datu pakalpojumi"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Papildu pakalpojumu sniedzēji"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# parole}zero{# paroļu}one{# parole}other{# paroles}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automātiskā aizpilde, automātiski aizpildīt, parole"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automātiskā aizpilde, automātiski aizpildīt, dati, piekļuves atslēga, parole"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Pārliecinieties, ka šī lietotne ir uzticama</b> <br/> <br/> <xliff:g id=app_name example=Google automātiskā aizpilde>%1$s</xliff:g> izmanto ekrānā redzamo, lai noteiktu, kādu informāciju aizpildīt automātiski."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Izmantojiet lietotni <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> Lietotne <xliff:g id=app_name example=Provider>%1$s</xliff:g> izmanto ekrānā redzamo saturu, lai noteiktu, kādu informāciju var aizpildīt automātiski. Turpmāk jaunās paroles, piekļuves atslēgas un cita informācija tiks saglabāta šeit."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Paroles, piekļuves atslēgas un datu pakalpojumi"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Paroles, piekļuves atslēgas un datu pakalpojumi"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vai izslēgt pakalpojumu %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Vai izslēgt šo pakalpojumu?</b> <br/> <br/> Pierakstoties netiks aizpildīta saglabātā informācija, piemēram, paroles, piekļuves atslēgas, maksājumu veidi un cita informācija. Lai izmantotu saglabāto informāciju, izvēlieties paroli, piekļuves atslēgu vai datu pakalpojumu."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Vai izmantot %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s izmanto ekrānā pieejamos datus, lai noteiktu, kādu informāciju var aizpildīt automātiski."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Paroļu, piekļuves atslēgu un datu pakalpojumu ierobežojums"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Vienlaikus jums var būt aktīvas ne vairāk kā 5 paroles, piekļuves atslēgas un datu pakalpojumi. Lai pievienotu vēl kādu pakalpojumu, izslēdziet kādu no pašreizējiem."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Paroļu, piekļuves atslēgu un datu pakalpojumu ierobežojums"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Vienlaikus jums var būt aktīvas ne vairāk kā 5 paroles, piekļuves atslēgas un datu pakalpojumi. Lai pievienotu vēl kādu pakalpojumu, izslēdziet kādu no pašreizējiem."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Izslēgt"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automātiskā aizpilde"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Pieteikšanās līmenis"</string>
@@ -4673,6 +4709,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio no saderīga multivides satura kļūst iekļaujošāks"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Galvas izsekošana"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Kustinot galvu, audio mainīsies, lai izklausītos dabiskāk"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio ierīces veids"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nezināma ierīce"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Skaļrunis"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Austiņas"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Automašīnas komplekts"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Cita veida ierīce"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Tīkla lejupielādes ātruma ierobežojums"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Varat konfigurēt tīkla joslas platuma ātruma ierobežojumu ienākošajiem datiem. Tas tiks piemērots visiem tīkliem, kas nodrošina interneta savienojumu."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Tīkla lejupielādes ātruma ierobežojuma konfigurēšana"</string>
@@ -4705,24 +4749,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Atinstalēt lietotni"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Pēdējā # mēneša laikā instalētās lietotnes}zero{Pēdējo # mēnešu laikā instalētās lietotnes}one{Pēdējā # mēneša laikā instalētās lietotnes}other{Pēdējo # mēnešu laikā instalētās lietotnes}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Pirms vairāk nekā # mēneša instalētās lietotnes}zero{Pirms vairāk nekā # mēnešiem instalētās lietotnes}one{Pirms vairāk nekā # mēneša instalētās lietotnes}other{Pirms vairāk nekā # mēnešiem instalētās lietotnes}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Malu attiecība"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Ja šīs lietotnes noformējums neatbilst jūsu ierīces (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) izmēriem, izvēlieties malu attiecību, lai skatītu šo lietotni."</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ieteiktās lietotnes"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Jūsu ignorētās lietotnes"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Lietotnes noklusējums"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pilnekrāna režīms"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Puse ekrāna"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Ierīces malu attiecība"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Mainot malu attiecību, lietotne tiks restartēta. Iespējams, zaudēsiet nesaglabātas izmaiņas."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Pirksta nospieduma sensors"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Zibpaziņojumi"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Par zibpaziņojumiem"</string>
@@ -4757,10 +4795,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Vidējs"</string>
<string name="contrast_high" msgid="3988567609694797696">"Augsts"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Šo lietotni var atvērt tikai vienā logā"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Pakalpojums ieslēgts"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Pakalpojums izslēgts"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Saīsne izslēgta"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Ieslēgta"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Izslēgta"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Izslēgts"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Izslēgta"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Ieslēgts"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Izslēgts"</string>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 25a86b2..5e8fa7c 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"По 1 минута"</item>
<item msgid="1574040255478150028">"По 5 минути"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Вклучете ја адаптивната осветленост за да го продолжите траењето на батеријата"</item>
+ <item msgid="2256666063790193306">"Намалете го исклучувањето на екранот за да го продолжите траењето на батеријата"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 98eadc4..c54100f 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не е наведено"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Женски род"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Машки род"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Да се отстрани избраниот јазик?}one{Да се отстранат избраните јазици?}other{Да се отстранат избраните јазици?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текстот ќе се прикажува на друг јазик."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Не може да се отстранат сите јазици"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додадени се лик и <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додадени се лик, отпечаток и <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додадени се лик, отпечатоци и <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Поставете го часовникот"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"„Отклучување со часовник“ е уште еден практичен начин на отклучување на телефонов, на пример, кога прстите ви се влажни или не може да ви се препознае ликот.\n\nЧасовникот може да го користите за да го отклучите телефонов во следниве случаи:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Не сега"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Продолжи"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Повеќе"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Како функционира"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Часовникот мора да биде отклучен, на вашиот зглоб и во близина на телефонов. Нема да треба да го отклучувате часовникот повторно додека е на вашиот зглоб."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Кога ќе се отклучи телефонов, ќе добиете известување на часовникот. Ако го отклучите ненамерно, допрете го известувањето за да го заклучите телефонот повторно."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Вие сте главни"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Може да го отстраните часовникот од „Отклучување со часовник“ во „Поставки“ во секое време"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Допрете известување"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Повлечете нагоре на заклучениот екран"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Изберете го вашиот часовник"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Достапни часовници"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Откажи"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Потврди"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Подготвени сте!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Сега може да го користите часовникот за да го отклучите телефонов кога ќе повлечете нагоре на заклучениот екран или ќе допрете известување"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Отклучување со часовник"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Може да го користите часовникот за да го отклучите телефонов кога ќе повлечете нагоре на заклучениот екран или ќе допрете известување"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"За да ја користите функцијата „Отклучување со часовник“, вашиот часовник мора да биде отклучен, на вашиот зглоб, во близина и поврзан со телефонов. Ако се прекине врската, ќе треба да го отклучите телефонот за да може да ја користите функцијата „Отклучување со часовник“.\n\nЗабелешка:\nможе да поставите само еден часовник истовремено. За да додадете друг часовник, прво отстранете го тековниот."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Дознајте повеќе за „Отклучување со часовник“"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Додај часовник"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Отстрани часовник"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отклучување со отпечаток и лик"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Отклучување со лик и отпечаток за работа"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Потребно е поставување"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Може ќе треба да ја внесете лозинката и на другиот уред."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Потврдете за спарување со координираниот комплет"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Дозволете пристап до вашите контакти и историјата на повици"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Дозволете и пристап до контактите и историјата на повици"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Податоците ќе се користат за известувања за повици и друго"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не може да се поврзе со <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Достапни уреди"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Се споделува Wi‑Fi со уредов…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Се поврзува…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Споделете точка на пристап"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Потврдете дека сте вие"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Потврдете дека сте вие"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Лозинка за Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Лозинка за точката на пристап: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автоматско поврзување"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Мрежата не е во опсег"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Заборави"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Измени"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Не успеа да се заборави мрежата"</string>
<string name="wifi_save" msgid="2312643132472226807">"Зачувај"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Не успеа да се зачува мрежата"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Откажи"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ако вашата претпочитана фреквенција не е достапна, вашата точка на пристап може да користи друга. Поставките за безбедност на точка на пристап може да се променат ако ја промените фреквенцијата."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Не е достапно со 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Поставките за безбедност може да се променат ако ја промените фреквенцијата на точката за пристап"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Вклучување точка на пристап..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Исклучување точка на пристап..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Интернет преку мобилен не е достапен"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ја заборавивте лозинката?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ја заборавивте шемата?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Го заборавивте PIN-кодот?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Внесете ја шемата за уредот за да продолжите"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Внесете го PIN-кодот на уредот за да продолжите"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Внесете ја лозинката за уредот за да продолжите"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Користете ја шемата на работниот профил за да продолжите"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"За да продолжите, внесете ја вашата шема"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"За да продолжите, внесете го вашиот PIN"</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">"Внесете го PIN-кодот на работниот профил за да продолжите"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Внесете ја лозинката на работниот профил за да продолжите"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"За дополнителна безбедност, користете ја шемата на уредот"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Не е обезбеден опис."</string>
<string name="settings_button" msgid="2195468788019730377">"Поставки"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"чувствителност на светлина, фотофобија, темна тема, мигрена, главоболка, режим за читање, ноќен режим, намалување осветленост, бела точка"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Едноставно користење, лесен пристап, помош, помошен"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"вид, слух, слеп, глув, подвижност, умешност, помошен, помош, едноставно користење, лесен пристап, дланка, помош"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Лупа за прозорци, зумирање, лупа, слаб вид, зголеми, направи поголемо"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Титлови, затворени титлови, CC, Транскрипција во живо, нарушување на слух, загуба на слух, CART, од говор во текст"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"контраст на бојата"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"моторна, глувче"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"слушни помагала, оштетен слух, губење на слухот, кохлеарни импланти, уреди за засилување, процесори на звук"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"подвижност, глувче, надворешно глувче, специјално глувче, адаптивно глувче, инвалидска количка, џојстик"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"слушни помагала, оштетен слух, губење на слухот, кохлеарни импланти, уреди за засилување, процесори на звук, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"нарушување на слух, загуба на слух, титлови, Teletype, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"три копчиња"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"попреченост, подвижност, пензионер, артритис, rsi, мозочен удар, тремор, мултиплекс склероза, церебрална парализа, тресење, повторлива повреда од истегнување, дланка"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"одложување, умешност, пензионер"</string>
<string name="print_settings" msgid="8519810615863882491">"Печатење"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Исклучено"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Вклучена е 1 услуга за печатење}one{Вклучени се # услуга за печатење}other{Вклучени се # услуги за печатење}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Предупредување за потрошен интернет: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Ограничување за интернет: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Предупредување за потрошен интернет: <xliff:g id="ID_1">^1</xliff:g>/Ограничување за интернет: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Пресметаниот сообраќај на операторот може да се разликува од пресметаниот сообраќај на вашиот уред"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Не го опфаќа интернетот што го користат мрежите на мобилните оператори"</string>
<string name="data_used_template" msgid="8229342096562327646">"Потрошено: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Предупр. за потрошен интернет"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Автоматско пополнување"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Стандардна услуга за автоматско пополнување"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Лозинки"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Услуги за лозинки, криптографски клучеви и податоци"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Услуги за лозинки, криптографски клучеви и податоци"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Дополнителни даватели"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# лозинка}one{# лозинка}other{# лозинки}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"автоматско, пополнување, автоматско пополнување, лозинка"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"автоматски, пополнување, автоматско пополнување, податоци, криптографски клуч, лозинка"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Проверете дали е ова апликација на која ѝ верувате</b> <br/> <br/> <xliff:g id=app_name example=„Автоматско пополнување на Google“>%1$s</xliff:g> го користи она што е на екранот за да утврди што може автоматски да се пополни."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"Услуги за лозинки, криптографски клучеви и податоци"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Услуги за лозинки, криптографски клучеви и податоци"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Да се исклучи %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Да се исклучи оваа услуга?</b> <br/> <br/> Зачуваните податоци како лозинки, криптографски клучеви, начини на плаќање и друго, нема да се пополнат кога ќе се најавите. За да ги користите зачуваните податоци, изберете лозинка, криптографски клуч или услуга за податоци."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Да се користи %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s го користи она што е на вашиот екран за да одреди што може автоматски да се пополни."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Ограничување за услуги за лозинки, криптографски клучеви и податоци"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Истовремено може да имате најмногу 5 активни услуги за лозинки, криптографски клучеви и податоци. Исклучете услуга за да додадете повеќе."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Ограничување за услуги за лозинки, криптографски клучеви и податоци"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Истовремено може да имате најмногу 5 активни услуги за лозинки, криптографски клучеви и податоци. Исклучете некоја од услугите за да додадете повеќе."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Исклучи"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Автоматско пополнување"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Степен на евиденција"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звукот од компатибилните аудиовизуелни содржини е пореалистичен"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Следење на главата"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звукот се менува како што ја движите главата за да звучи поприродно"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудиоуред"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Непознато"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Звучник"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Слушалки"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Комплет за автомобил"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Друго"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ограничување за мрежна брзина на преземање"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Конфигурирајте го ограничувањето за брзина на пристап до мрежата што ќе се примени на сите мрежи што овозможуваат поврзување на интернет."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Конфигурирајте го ограничувањето за мрежна брзина на преземање"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Деинсталирај ја апликацијата"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Апликации инсталирани во минатиот # месец}one{Апликации инсталирани во минатите # месец}other{Апликации инсталирани во минатите # месеци}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Апликации инсталирани пред повеќе од # месец}one{Апликации инсталирани пред повеќе од # месец}other{Апликации инсталирани пред повеќе од # месеци}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Сооднос"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Изберете сооднос за да ја видите апликацијава ако не е дизајнирана да одговара на вашиот уред <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Предложени апликации"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Апликации што сте ги отфрлиле"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Стандардно за апликацијата"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Цел екран"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Половина екран"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Сооднос на уредот"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Апликацијата ќе се рестартира кога ќе го промените соодносот. Може да ги изгубите незачуваните промени."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сензор за отпечатоци"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Известувања со блиц"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"За известувањата со блиц"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Среден"</string>
<string name="contrast_high" msgid="3988567609694797696">"Висок"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Апликацијава може да се отвори само во еден прозорец"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Услугата е вклучена"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Услугата е исклучена"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Кратенката е исклучена"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Вклучено"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Исклучено"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Исклучено"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Исклучено"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Вклучено"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Исклучено"</string>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index b233808..0dadd1c 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"ഒരു മിനിറ്റിന് ശേഷം"</item>
<item msgid="1574040255478150028">"5 മിനിറ്റിന് ശേഷം"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"ബാറ്ററി ലെെഫ് വർദ്ധിപ്പിക്കുന്നതിന് അനുയോജ്യമായ തെളിച്ചം ഓണാക്കുക"</item>
+ <item msgid="2256666063790193306">"ബാറ്ററി ലൈഫ് വർദ്ധിപ്പിക്കുന്നതിന് സ്ക്രീനിന്റെ സമയപരിധി കുറയ്ക്കുക"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 2a803e2..f13d4f9 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"വ്യക്തമാക്കിയിട്ടില്ലാത്തവ"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"സ്ത്രീകൾക്കുള്ളത്"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"പുരുഷന്മാർക്കുള്ളത്"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{തിരഞ്ഞെടുത്ത ഭാഷ നീക്കം ചെയ്യണോ?}other{തിരഞ്ഞെടുത്ത ഭാഷകൾ നീക്കം ചെയ്യണോ?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"മറ്റൊരു ഭാഷയിൽ ടെക്സ്റ്റ് കാണിക്കും."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"എല്ലാ ഭാഷകളും നീക്കം ചെയ്യാനാവില്ല"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"മുഖവും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"മുഖവും ഫിംഗർപ്രിന്റും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"മുഖവും ഫിംഗർപ്രിന്റുകളും <xliff:g id="WATCH">%s</xliff:g> എന്നതും ചേർത്തു"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"നിങ്ങളുടെ വാച്ച് സജ്ജീകരിക്കൂ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"ഈ ഫോൺ അൺലോക്ക് ചെയ്യുന്നതിന് മറ്റൊരു സൗകര്യപ്രദമായൊരു വഴി, വാച്ച് അൺലോക്ക് ചെയ്യൽ ആണ്, ഉദാഹരണത്തിന്, നിങ്ങളുടെ വിരലുകൾ നനഞ്ഞിരിക്കുമ്പോഴോ മുഖം തിരിച്ചറിയാതിരിക്കുമ്പോഴോ.\n\nഇനിപ്പറയുന്ന സാഹചര്യത്തിൽ ഈ ഫോൺ അൺലോക്ക് ചെയ്യാൻ നിങ്ങൾക്ക് വാച്ച് ഉപയോഗിക്കാം:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ഇപ്പോൾ വേണ്ട"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"തുടരുക"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"കൂടുതൽ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ഇതെങ്ങനെ പ്രവർത്തിക്കുന്നു"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"നിങ്ങളുടെ വാച്ച്, കൈത്തണ്ടയിൽ ഉള്ളപ്പോഴും ഈ ഫോൺ കൈയ്യെത്തും ദൂരത്ത് ഉള്ളപ്പോഴും അൺലോക്ക് ചെയ്തിരിക്കണം. നിങ്ങളുടെ വാച്ച്, കൈത്തണ്ടയിൽ ഉള്ളപ്പോൾ അത് വീണ്ടും അൺലോക്ക് ചെയ്യേണ്ടതില്ല."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ഈ ഫോൺ അൺലോക്ക് ചെയ്താൽ നിങ്ങളുടെ വാച്ചിൽ അറിയിപ്പ് ലഭിക്കും. നിങ്ങൾ ഉദ്ദേശിക്കാത്തപ്പോൾ ഇത് അൺലോക്ക് ചെയ്തെങ്കിൽ, ഫോൺ വീണ്ടും ലോക്ക് ചെയ്യുന്നതിനായി അറിയിപ്പ് ടാപ്പ് ചെയ്യുക."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"നിയന്ത്രണം നിങ്ങൾക്കാണ്"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ക്രമീകരണത്തിൽ നിങ്ങൾക്ക് ഏതുസമയത്തും വാച്ച് അൺലോക്ക് ഫീച്ചറിൽ നിന്ന് വാച്ച് നീക്കം ചെയ്യാം"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"അറിയിപ്പ് ടാപ്പ് ചെയ്യുക"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ലോക്ക് സ്ക്രീനിൽ മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുക"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"നിങ്ങളുടെ വാച്ച് തിരഞ്ഞെടുക്കുക"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ലഭ്യമായ വാച്ചുകൾ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"റദ്ദാക്കുക"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"സ്ഥിരീകരിക്കുക"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"നിങ്ങൾ തയ്യാറായിക്കഴിഞ്ഞു!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ലോക്ക് സ്ക്രീനിൽ മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്തോ അറിയിപ്പിൽ ടാപ്പ് ചെയ്തോ, നിങ്ങൾക്ക് ഇപ്പോൾ വാച്ച് ഉപയോഗിച്ച് ഈ ഫോൺ അൺലോക്ക് ചെയ്യാം"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"പൂർത്തിയായി"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"വാച്ച് അൺലോക്ക്"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ലോക്ക് സ്ക്രീനിൽ മുകളിലേക്ക് സ്വൈപ്പ് ചെയ്യുമ്പോഴോ അറിയിപ്പിൽ ടാപ്പ് ചെയ്യുമ്പോഴോ ഈ ഫോൺ അൺലോക്ക് ചെയ്യാൻ നിങ്ങൾക്ക് വാച്ച് ഉപയോഗിക്കാം"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"വാച്ച് അൺലോക്ക് ഉപയോഗിക്കുന്നതിന്, വാച്ച് അൺലോക്ക് ചെയ്തിരിക്കണം, അത് നിങ്ങളുടെ കൈത്തണ്ടയിൽ ആയിരിക്കണം, കൈയ്യെത്തും ദൂരത്തായിരിക്കണം, ഈ ഫോണുമായി കണക്റ്റ് ചെയ്തിരിക്കുകയും വേണം. കണക്ഷൻ തടസ്സപ്പെടുകയാണെങ്കിൽ, വാച്ച് അൺലോക്ക് ഉപയോഗിക്കുന്നതിന് മുമ്പ് നിങ്ങൾ ഫോൺ അൺലോക്ക് ചെയ്യേണ്ടതുണ്ട്.\n\nഓർമ്മിക്കുക:\nഒരു സമയം ഒരൊറ്റ വാച്ച് മാത്രമേ നിങ്ങൾക്ക് സജ്ജീകരിക്കാനാകൂ. മറ്റൊരു വാച്ച് ചേർക്കാൻ ആദ്യം നിലവിലെ വാച്ച് നീക്കം ചെയ്യുക."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"വാച്ച് അൺലോക്കിനെ കുറിച്ച് കൂടുതലറിയുക"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"വാച്ച് ചേർക്കുക"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"വാച്ച് നീക്കം ചെയ്യുക"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ഫിംഗർപ്രിന്റ് & ഫേസ് അൺലോക്ക്"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ഔദ്യോഗികാവശ്യത്തിനുള്ള ഫെയ്സ്, ഫിംഗർപ്രിന്റ് അൺലോക്ക്"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"സജ്ജീകരിക്കേണ്ടതുണ്ട്"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"മറ്റൊരു ഉപകരണത്തിൽ നിങ്ങൾ ഈ പാസ്കീ നൽകേണ്ടതായും വരാം."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"കോർഡിനേറ്റഡ് സെറ്റുമായി ജോടിയാക്കാൻ സ്ഥിരീകരിക്കുക"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"കോൺടാക്റ്റുകളിലേക്കും കോൾ ചരിത്രത്തിലേക്കും ആക്സസ് അനുവദിക്കുക"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"കോൺടാക്റ്റുകളിലേക്കും കോൾ ചരിത്രത്തിലേക്കും ആക്സസ് അനുവദിക്കുകയും ചെയ്യുക"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"വിവരങ്ങൾ, കോൾ അറിയിപ്പുകൾക്കും മറ്റും ഉപയോഗിക്കും"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> എന്നതിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ലഭ്യമായ ഉപകരണങ്ങൾ"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ഈ ഉപകരണവുമായി Wi‑Fi പങ്കിടുന്നു…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"കണക്റ്റ് ചെയ്യുന്നു…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ഹോട്ട്സ്പോട്ട് പങ്കിടുക"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ഇത് നിങ്ങളാണെന്ന് പരിശോധിച്ചുറപ്പിക്കൂ"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ഇത് നിങ്ങളാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"വൈഫൈ പാസ്വേഡ്: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ഹോട്ട്സ്പോട്ടിന്റെ പാസ്വേഡ്: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"സ്വയമേവ കണക്റ്റ് ചെയ്യുക"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"നെറ്റ്വർക്ക് പരിധിയിലില്ല"</string>
<string name="wifi_forget" msgid="3485573280364015620">"മറക്കുക"</string>
<string name="wifi_modify" msgid="5127926476383659412">"പരിഷ്ക്കരിക്കുക"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"നെറ്റ്വർക്ക് നിരസിക്കുന്നതിൽ പരാജയപ്പെട്ടു"</string>
<string name="wifi_save" msgid="2312643132472226807">"സംരക്ഷിക്കുക"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"നെറ്റ്വർക്ക് സംരക്ഷിക്കുന്നതിൽ പരാജയപ്പെട്ടു"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"റദ്ദാക്കുക"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"മുൻഗണന നൽകുന്ന ഫ്രീക്വൻസി ലഭ്യമല്ലെങ്കിൽ, നിങ്ങളുടെ ഹോട്ട്സ്പോട്ട് മറ്റൊരെണ്ണം ഉപയോഗിച്ചേക്കാം. നിങ്ങൾ ഫ്രീക്വൻസി മാറ്റിയാൽ, ഹോട്ട്സ്പോട്ട് സുരക്ഷാ ക്രമീകരണം മാറിയേക്കാം."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz-ൽ ലഭ്യമല്ല"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"നിങ്ങൾ ഹോട്ട്സ്പോട്ടിന്റ് ഫ്രീക്വൻസി മാറ്റിയാൽ സുരക്ഷാ ക്രമീകരണം മാറിയേക്കാം"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"ഹോട്ട്സ്പോട്ട് ഓണാക്കുന്നു…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"ഹോട്ട്സ്പോട്ട് ഓഫാക്കുന്നു…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ടെതറിംഗ് ലഭ്യമല്ല"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"പാസ്വേഡ് മറന്നോ?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"പാറ്റേൺ മറന്നോ?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"പിൻ മറന്നോ?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"തുടരാൻ നിങ്ങളുടെ ഉപകരണ പാറ്റേൺ ഉപയോഗിക്കുക"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"തുടരാൻ ഉപകരണ പിൻ നൽകുക"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"തുടരാൻ നിങ്ങളുടെ ഉപകരണ പാസ്വേഡ് നൽകുക"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"തുടരാൻ നിങ്ങളുടെ ഔദ്യോഗിക പാറ്റേൺ ഉപയോഗിക്കുക"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"തുടരാൻ നിങ്ങളുടെ പാറ്റേൺ വരയ്ക്കുക"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"അധിക സുരക്ഷയ്ക്ക്, നിങ്ങളുടെ ഉപകരണത്തിന്റെ പാറ്റേൺ ഉപയോഗിക്കുക"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"വിവരണമൊന്നും നൽകിയിട്ടില്ല."</string>
<string name="settings_button" msgid="2195468788019730377">"ക്രമീകരണം"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"പ്രകാശ സെൻസിറ്റിവിറ്റി, ഫോട്ടോഫോബിയ, ഡാർക്ക് തീം, ചെന്നിക്കുത്ത്, തലവേദന, വായനാ മോഡ്, നൈറ്റ് മോഡ്, തെളിച്ചം കുറയ്ക്കുക, വൈറ്റ് പോയിന്റ്"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ലളിതമായ ഉപയോഗം, എളുപ്പത്തിലുള്ള ആക്സസ്, സഹായം, സഹായകരം"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"കാഴ്ച, കേൾവി, കാഴ്ചാ വൈകല്യം, കേൾവിക്കുറവ്, ചലനശേഷി, കഴിവ്, സഹായകരമായത്, സഹായം, ഉപയോഗിക്കാനുള്ള എളുപ്പം, ആക്സസ് ചെയ്യാനുള്ള എളുപ്പം, കൈ, സഹായം"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"വിൻഡോ മാഗ്നിഫയർ, സൂം, മാഗ്നിഫിക്കേഷൻ, കുറഞ്ഞ കാഴ്ച, വലുതാക്കുക, വലുപ്പം കൂട്ടുക"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"അടിക്കുറിപ്പുകൾ, സബ്ടൈറ്റിലുകൾ, CC, Live Transcribe, കേൾവിക്ക് പ്രശ്നം, കേൾവിക്കുറവ്, CART, സ്പീച്ച് ടു ടെക്സ്റ്റ്, സബ്ടൈറ്റിൽ"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"കളർ കോൺട്രാസ്റ്റ്"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"ചലനക്ഷമത, മൗസ്"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"ശ്രവണ സഹായികൾ, കേൾവിക്കുറവ്, കേൾവി നഷ്ടമാകൽ, കോക്ലിയർ ഇംപ്ലാന്റുകൾ, ആംപ്ലിഫിക്കേഷൻ ഉപകരണങ്ങൾ, സൗണ്ട് പ്രോസസറുകൾ"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"ചലനശേഷി, മൗസ്, എക്സ്റ്റേണൽ മൗസ്, ഹെഡ് മൗസ്, അഡാപ്റ്റീവ് മൗസ്, വീൽചെയർ, ജോയ്സ്റ്റിക്ക്"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"ശ്രവണ സഹായികൾ, കേൾവിക്ക് തകരാർ, കേൾവി നഷ്ടമാകൽ, കോക്ലിയർ ഇംപ്ലാന്റുകൾ, ആംപ്ലിഫിക്കേഷൻ ഉപകരണങ്ങൾ, ശബ്ദ പ്രോസസറുകൾ, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"കേൾവിക്ക് തകരാർ, കേൾവിക്കുറവ്, അടിക്കുറിപ്പുകൾ ടെലിടൈപ്പ്, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"മൂന്ന് ബട്ടണുകൾ"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"കഴിവ്, ചലനശേഷി, മുതിർന്നവർ, സന്ധിവാതം, rsi, പക്ഷാഘാതം, തുടിപ്പ്, മൾട്ടിപ്പിൾ സ്ക്ലീറോസിസ്, സെറിബ്രൽ പാൾസി, വിറയൽ, ആവർത്തിച്ചുള്ള സ്ട്രെയിൻ പരുക്ക്, കൈ"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"കാലതാമസം, കഴിവ്, മുതിർന്നവർ"</string>
<string name="print_settings" msgid="8519810615863882491">"പ്രിന്റിംഗ്"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ഓഫ്"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{ഒരു പ്രിന്റ് സേവനം ഓണാണ്}other{# പ്രിന്റ് സേവനങ്ങൾ ഓണാണ്}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ഡാറ്റാ മുന്നറിയിപ്പ്"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ഡാറ്റാ പരിധി"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ഡാറ്റാ മുന്നറിയിപ്പ് / <xliff:g id="ID_2">^2</xliff:g> ഡാറ്റാ പരിധി"</string>
- <string name="operator_warning" msgid="5672761970087591211">"ഉപകരണം കണക്കാക്കുന്നതിൽ നിന്നും വ്യത്യസ്തമായിട്ടായിരിക്കാം സേവനദാതാക്കള് കണക്കാക്കുന്നത്"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"കാരിയർ നെറ്റ്വർക്കുകൾ ഉപയോഗിക്കുന്ന ഡാറ്റ ഒഴികെയുള്ളവ"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ഉപയോഗിച്ചു"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ഡാറ്റാ മുന്നറിയിപ്പ് സജ്ജീകരിക്കുക"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"സ്വയം പൂരിപ്പിക്കൽ സേവനം"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ഡിഫോൾട്ട് സ്വയമേവ പൂരിപ്പിക്കൽ സേവനം"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"പാസ്വേഡുകൾ"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"പാസ്വേഡുകൾ, പാസ്കീകൾ, ഡാറ്റാ സേവനങ്ങൾ"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"പാസ്വേഡുകൾ, പാസ്കീകൾ, ഡാറ്റാ സേവനങ്ങൾ എന്നിവ"</string>
<string name="credman_credentials" msgid="4931371941253324143">"കൂടുതൽ ക്രെഡൻഷ്യൽ ദാതാക്കൾ"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# പാസ്വേഡ്}other{# പാസ്വേഡുകൾ}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"സ്വയമേവ, പൂരിപ്പിക്കൽ, സ്വയമേവ പൂരിപ്പിക്കൽ, പാസ്വേഡ്"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"സ്വയമേവ, പൂരിപ്പിക്കുക, സ്വയമേവ പൂരിപ്പിക്കൽ, ഡാറ്റ, പാസ്കീ, പാസ്വേഡ്"</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="4951846866327737417">"<b&gt <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="2642776965060619988">"പാസ്വേഡുകൾ, പാസ്കീകൾ, ഡാറ്റാ സേവനങ്ങൾ"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"പാസ്വേഡുകൾ, പാസ്കീകൾ, ഡാറ്റാ സേവനങ്ങൾ എന്നിവ"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s ഓഫാക്കണോ?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ഈ സേവനം ഓഫാക്കണോ?</b> <br/> <br/> സൈൻ ഇൻ ചെയ്യുമ്പോൾ പാസ്വേഡുകൾ, പാസ്കീകൾ, പേയ്മെന്റ് രീതികൾ എന്നിവ പോലുള്ള സംരക്ഷിച്ച വിവരങ്ങൾ പൂരിപ്പിക്കില്ല. നിങ്ങളുടെ സംരക്ഷിച്ച വിവരങ്ങൾ ഉപയോഗിക്കാൻ, ഒരു പാസ്വേഡോ പാസ്കീയോ ഡാറ്റാ സേവനമോ തിരഞ്ഞെടുക്കുക."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ഉപയോഗിക്കണോ?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"എന്താണ് സ്വയമേവ പൂരിപ്പിക്കേണ്ടത് എന്ന് നിർണ്ണയിക്കാൻ നിങ്ങളുടെ സ്ക്രീനിലുള്ളത് %1$s ഉപയോഗിക്കുന്നു."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"പാസ്വേഡുകൾ, പാസ്കീകൾ, ഡാറ്റാ സേവനങ്ങൾ എന്നിവയുടെ പരിധി"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"നിങ്ങൾക്ക് ഒരേ സമയം 5 പാസ്വേഡുകളും പാസ്കീകളും ഡാറ്റാ സേവനങ്ങളും വരെ സജീവമായി നിലനിർത്താം. കൂടുതൽ ചേർക്കണമെങ്കിൽ, ഒരു സേവനം ഓഫാക്കുക."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"പാസ്വേഡുകൾ, പാസ്കീകൾ, ഡാറ്റാ സേവനങ്ങൾ എന്നിവയുടെ പരിധി"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"നിങ്ങൾക്ക് ഒരേ സമയം 5 പാസ്വേഡുകളും പാസ്കീകളും ഡാറ്റ സേവനങ്ങളും വരെ സജീവമായി നിലനിർത്താം. കൂടുതൽ ചേർക്കണമെങ്കിൽ, ഒരു സേവനം ഓഫാക്കുക."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ഓഫാക്കുക"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"സ്വയമേവ പൂരിപ്പിക്കൽ"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"ലോഗിംഗ് ലെവൽ"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"അനുയോജ്യമായ മീഡിയയിൽ നിന്നുള്ള ഓഡിയോ കൂടുതൽ മുഴുകിപ്പിക്കുന്നതാക്കുന്നു"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ഹെഡ് ട്രാക്കിംഗ്"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"കൂടുതൽ സ്വാഭാവികമായി തോന്നാൻ, നിങ്ങൾ തല ചലിപ്പിക്കുന്നതിനോടൊപ്പം ഓഡിയോ മാറുന്നു"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ഓഡിയോ ഉപകരണ തരം"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"അജ്ഞാതം"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"സ്പീക്കർ"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ഹെഡ്ഫോണുകൾ"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"കാർ കിറ്റ്"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"മറ്റുള്ളവ"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"നെറ്റ്വർക്ക് ഡൗൺലോഡ് നിരക്ക് പരിധി"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ഇന്റർനെറ്റ് കണക്റ്റിവിറ്റി നൽകുന്ന എല്ലാ നെറ്റ്വർക്കുകൾക്കും ബാധകമായ നെറ്റ്വർക്ക് ബാൻഡ്വിഡ്ത് ഇൻഗ്രസ് നിരക്ക് പരിധി കോൺഫിഗർ ചെയ്യുക."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"നെറ്റ്വർക്ക് ഡൗൺലോഡ് നിരക്ക് പരിധി കോൺഫിഗർ ചെയ്യുക"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"ഇടത്തരം"</string>
<string name="contrast_high" msgid="3988567609694797696">"കൂടുതൽ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ഈ ആപ്പ് ഒരു വിൻഡോയിൽ മാത്രമേ തുറക്കാനാകൂ"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"സേവനം ഓണാണ്"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"സേവനം ഓഫാണ്"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"കുറുക്കുവഴി ഓഫാണ്"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ഓണാണ്"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ഓഫാണ്"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ഓഫാണ്"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ഓഫാണ്"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ഓണാണ്"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ഓഫാണ്"</string>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 77912e9..bfab784 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 минутын дараа"</item>
<item msgid="1574040255478150028">"5 минутын дараа"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Батарейн ажиллах хугацааг уртасгахын тулд орчинтой зохицох гэрэлтүүлгийг асаах"</item>
+ <item msgid="2256666063790193306">"Батарейн ажиллах хугацааг уртасгахын тулд дэлгэцийн хугацааг багасгах"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 07c0a1e..4cec05b 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Заагаагүй"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Эм үг"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Эр үг"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Сонгосон хэлийг хасах уу?}other{Сонгосон хэлнүүдийг хасах уу?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текстийг өөр хэлээр харуулах болно."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Бүх хэлийг устгах боломжгүй"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Царай болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Царай, хурууны хээ болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Царай, хурууны хээ болон <xliff:g id="WATCH">%s</xliff:g>-г нэмсэн"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Цагаа тохируулна уу"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Утасны түгжээг цагаараа тайлах нь таны хуруу нойтон байх эсвэл царайг тань таниагүй зэрэг үед энэ утасны түгжээг тайлах өөр нэг хялбар арга юм.\n\nТа дараах тохиолдолд цагаа энэ утасны түгжээг тайлахад ашиглах боломжтой:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Одоо биш"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Үргэлжлүүлэх"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Бусад"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Энэ хэрхэн ажилладаг вэ?"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Та цагныхаа түгжээг тайлсан, бугуйндаа зүүсэн бөгөөд энэ утастай ойр байлгах ёстой. Та цагаа бугуйндаа зүүсэн үед түгжээг нь дахин тайлах шаардлагагүй болно."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Энэ утасны түгжээ тайлагдсан үед та цаган дээрээ мэдэгдэл авна. Хэрэв таныг хүсээгүй үед үүний түгжээг тайлсан бол утсыг дахин түгжихийн тулд мэдэгдлийг товшино уу."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Хяналт таны гарт"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Та цагаа Тохиргоо хэсэгт Утасны түгжээг цагаараа тайлах онцлогоос хүссэн үедээ хасах боломжтой"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Мэдэгдлийг товшоорой"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Түгжээтэй дэлгэцэд дээш шудрах"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Цагаа сонгоно уу"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Боломжтой цагнууд"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Цуцлах"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Баталгаажуулах"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Тохируулж дууслаа!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Та одоо түгжээтэй дэлгэцэд дээш шудрах эсвэл мэдэгдлийг товших үед энэ утасны түгжээг тайлахад цагаа ашиглах боломжтой"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Болсон"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Утасны түгжээг цагаараа тайлах"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Та түгжээтэй дэлгэцэд дээш шудрах эсвэл мэдэгдлийг товших үед энэ утасны түгжээг тайлахад цагаа ашиглах боломжтой"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Утасны түгжээг цагаараа тайлахыг ашиглахын тулд та цагныхаа түгжээг тайлсан, цагаа бугуйндаа зүүсэн, ойр байлгаж байгаа бөгөөд энэ утастай холбосон байх ёстой. Хэрэв холболт тасалдсан бол та Утасны түгжээг цагаараа тайлахыг ашиглах боломжтой болохоосоо өмнө утасны түгжээг тайлсан байх шаардлагатай.\n\nСанамж:\nТа нэг удаад зөвхөн нэг цаг тохируулсан байх боломжтой. Өөр цаг нэмэхийн тулд эхлээд одоо байгаа цагийг хасна уу."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Утасны түгжээг цагаараа тайлах онцлогийн талаар нэмэлт мэдээлэл авах"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Цаг нэмэх"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Цагийг хасах"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Хурууны хээ болон Царайгаар түгжээ тайлах"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ажилд зориулсан Царай, хурууны хээгээр түгжээ тайлах"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Тохируулга шаардлагатай"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Та мөн энэ түлхүүрийг нөгөө төхөөрөмж дээр оруулах хэрэгтэй болж магадгүй."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Зохицсон багцтай хослуулахыг баталгаажуулна уу"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Харилцагч болон дуудлагын түүхийн хандалтыг зөвшөөрөх"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Мөн харилцагчид болон дуудлагын түүхэд хандахыг зөвшөөрнө үү"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Мэдээллийг дуудлагын мэдэгдэл болон бусад зүйлд ашиглана"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-д холбогдож чадсангүй."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Боломжтой төхөөрөмжүүд"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi-г энэ төхөөрөмжтэй хуваалцаж байна…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Холбогдож байна…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Сүлжээний цэгийг хуваалцах"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Та мөн болохоо бататгана уу"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Өөрийгөө мөн гэдгийг баталгаажуулаарай"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi-н нууц үг: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Сүлжээний цэгийн нууц үг: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автомат холболт"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Сүлжээ хүрээнд алга"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Мартах"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Өөрчлөх"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Сүлжээг мартаж чадсангүй"</string>
<string name="wifi_save" msgid="2312643132472226807">"Хадгалах"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Сүлжээг хадгалж чадсангүй"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Цуцлах"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Хэрэв таны сонгосон давтамж боломжгүй бол таны сүлжээний цэг өөрийг ашиглаж магадгүй. Хэрэв та давтамжийг өөрчилбөл сүлжээний цэгийн аюулгүй байдлын тохиргоо өөрчлөгдөж магадгүй."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 ГГц-ээр боломжгүй"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Хэрэв та сүлжээний цэгийн давтамжийг өөрчилбөл аюулгүй байдлын тохиргоо өөрчлөгдөж магадгүй"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Сүлжээний цэгийг асааж байна…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Сүлжээний цэгийг унтрааж байна…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Модем хийх боломжгүй байна"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Нууц үгээ мартсан уу?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Хээгээ мартсан уу?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ПИН-ээ мартсан уу?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Үргэлжлүүлэхийн тулд төхөөрөмжийнхөө хээн түгжээг оруулна уу"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Үргэлжлүүлэхийн тулд төхөөрөмжийнхөө ПИН кодыг оруулна уу"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Үргэлжлүүлэхийн тулд төхөөрөмжийн нууц үгээ оруулна уу"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Үргэлжлүүлэхийн тулд ажлын зурган түгжээг оруулна уу"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Үргэлжлүүлэхийн тулд хээгээ зурна уу"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"Хамгаалалтыг сайжруулахын тулд төхөөрөмжийнхөө зурган түгжээг ашиглана уу"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Тайлбар байхгүй."</string>
<string name="settings_button" msgid="2195468788019730377">"Тохиргоо"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"гэрэлд мэдрэмтгий байдал, фотофрофи, бараан загвар, мигрень, толгой өвдөх, унших горим, шөнийн горим, гэрэлтүүлгийг багасгах, цагаан цэг"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ашиглахад хялбар, хандахад хялбар, тусламж, туслах"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"хараа, сонсгол, хараагүй, сонсголгүй, хөдөлгөөн, эв дүй, туслах, тусламж, ашиглахад хялбар, хандахад хялбар, гар, тусламж"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Цонх томруулагч, Томруулалт, Томруулах, Сул хараа, Томруулах, том болгох"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Тайлбарууд, хаалттай тайлбарууд, Хаалттай тайлбар, Шууд бичвэр болгон сийрүүлэх, сонсголын бэрхшээл, сонсголын алдагдал, CART, яриаг бичвэрт буулгах, хадмал"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"өнгөний ялгарал"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"мотор, хулгана"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"сонсголын төхөөрөмж, сонсголын бэрхшээл, сонсголын алдагдал, дунгийн суулгац, өсгөх төхөөрөмжүүд, дуу чимээ боловсруулагч"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"хөдөлгөөн, хулгана, гадны хулгана, толгойд зүүдэг хулгана, дасан зохицох хулгана, тэргэнцэр, залуур"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"сонсголын төхөөрөмж, сонсголын бэрхшээл, сонсголын алдагдал, дунгийн суулгац, өсгөх төхөөрөмжүүд, дуу чимээ боловсруулагч, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"сонсголын бэрхшээл, сонсголын алдагдал, тайлбарууд, Tелетайп, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"гурван товчлуур"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"эв дүй, хөдөлгөөн, ахмад, үе мөчний үрэвсэл, rsi, цус харвалт, салгалах, түгээмэл хатуурал, тархины саажилт, чичрэх, олон дахих шөрмөсний гэмтэл, гар"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"саатал, эв дүй, ахмад"</string>
<string name="print_settings" msgid="8519810615863882491">"Хэвлэлт"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Идэвхгүй"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 хэвлэх үйлчилгээ асаалттай}other{# хэвлэх үйлчилгээ асаалттай}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> дата хэрэглээний сануулга"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> дата хэрэглээний хязгаар"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> дата хэрэглээний сануулга / <xliff:g id="ID_2">^2</xliff:g> дата хэрэглээний хязгаар"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Оператор компанийн дата тооцоололт нь төхөөрөмжийн тооцоололтоос өөр байж болно"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Оператор компанийн сүлжээгээр ашигласан датаг оруулдаггүй"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ашигласан"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Датаны сануулгыг тохируулах"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Автоматаар бөглөх үйлчилгээ"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Автоматаар бөглөх хэсгийн өгөгдмөл үйлчилгээ"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Нууц үг"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээнүүд"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээнүүд"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Нэмэлт үйлчилгээ үзүүлэгчид"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# нууц үг}other{# нууц үг}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"автомат, бөглөх, автоматаар бөглөх хэсэг, нууц үг"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"автомат, бөглөх, автоматаар бөглөх хэсэг, өгөгдөл, нэвтрэх түлхүүр, нууц үг"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Энэ апп-д итгэдэг эсэхээ шалгана уу</b> <br/> <br/> <xliff:g id=app_name example=Google автоматаар бөглөх>%1$s</xliff:g> таны дэлгэцэд автоматаар бөглөх зүйлийг илрүүлэхийн тулд ашигладаг."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"Нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээнүүд"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээнүүд"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s-г унтраах уу?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Энэ үйлчилгээг унтраах уу?</b> <br/> <br/> Нууц үг, нэвтрэх түлхүүр, төлбөрийн хэрэгсэл болон бусад хадгалсан мэдээллийг таныг нэвтрэх үед бөглөхгүй. Хадгалсан мэдээллээ ашиглахын тулд нууц үг, нэвтрэх түлхүүр эсвэл өгөгдлийн үйлчилгээ сонгоно уу."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s-г ашиглах уу?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s таны дэлгэцэд байгаа зүйлийг ашиглан юуг автоматаар бөглөж болохыг тодорхойлдог."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Нууц үг, нэвтрэх түлхүүр, өгөгдлийн үйлчилгээний хязгаарлалт"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Та 5 хүртэлх нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээг нэгэн зэрэг идэвхжүүлж болно. Илүү ихийг нэмэхийн тулд аль нэг үйлчилгээг унтраана уу."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Нууц үг, нэвтрэх түлхүүр, өгөгдлийн үйлчилгээнүүдийн хязгаарлалт"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Та 5 хүртэлх нууц үг, нэвтрэх түлхүүр болон өгөгдлийн үйлчилгээг зэрэг идэвхжүүлж болно. Илүү ихийг нэмэхийн тулд аль нэг үйлчилгээг унтраана уу."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Унтраах"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Автоматаар бөглөх хэсэг"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Нэвтрэх түвшин"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Тохиромжтой медианы аудио илүү гайхалтай болно"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Толгой хянах"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Таныг толгойгоо хөдөлгөх үед илүү бодит мэт сонсогдохын тулд аудио өөрчлөгдөнө"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Аудио төхөөрөмжийн төрөл"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Тодорхойгүй"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Чанга яригч"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Чихэвч"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Автомашины хэрэгсэл"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Бусад"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Сүлжээг татаж авах үнэлгээний хязгаар"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Интернэт холболтоор хангадаг бүх сүлжээнд хэрэглэх сүлжээний зурвасын өргөн нэвтрэх хурдны хязгаарыг тохируулна уу."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Тохируулах сүлжээг татаж авах үнэлгээний хязгаар"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Аппыг устгах"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Сүүлийн # сард суулгасан аппууд}other{Сүүлийн # сард суулгасан аппууд}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# сар гаруйн өмнө суулгасан аппууд}other{# сар гаруйн өмнө суулгасан аппууд}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Харьцаа"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Хэрэв энэ аппыг таны <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-д таарахаар бүтээгээгүй бол үүнийг харахын тулд харьцаагаа сонгоно уу"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Санал болгосон аппууд"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Таны дарсан аппууд"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Аппын өгөгдмөл"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Бүтэн дэлгэц"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Хагас дэлгэц"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Төхөөрөмжийн харьцаа"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Таныг харьцааг өөрчлөх үед апп дахин эхэлнэ. Та хадгалаагүй өөрчлөлтөө алдаж магадгүй."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Хурууны хээ мэдрэгч"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Гэрэл анивчдаг мэдэгдэл"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Гэрэл анивчдаг мэдэгдлийн тухай"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Дунд зэрэг"</string>
<string name="contrast_high" msgid="3988567609694797696">"Өндөр"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Энэ аппыг зөвхөн 1 цонхонд нээх боломжтой"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Үйлчилгээ асаалттай"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Үйлчилгээ унтраалттай"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Товчлол унтраалттай"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Асаалттай"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Унтраалттай"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Унтраалттай"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Унтраалттай"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Асаалттай"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Унтраалттай"</string>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index b83f493..f51c0fa 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"एका मिनिटानंतर"</item>
<item msgid="1574040255478150028">"पाच मिनिटांनंतर"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"बॅटरी लाइफ वाढवण्यासाठी अडॅप्टिव्ह ब्राइटनेस सुरू करा"</item>
+ <item msgid="2256666063790193306">"बॅटरी लाइफ वाढवण्यासाठी स्क्रीन टाइमआउट कमी करा"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 1a039ed..9f610c3 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"नमूद केलेले नाही"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"स्त्रीलिंगी"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"पुल्लिंगी"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{निवडलेली भाषा काढून टाकायची का?}other{निवडलेल्या भाषा काढून टाकायच्या का?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"मजकूर दुसऱ्या भाषेत डिस्प्ले केला जाईल."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"सर्व भाषा काढू शकत नाही"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"चेहरा आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"चेहरा, फिंगरप्रिंट आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"चेहरा, फिंगरप्रिंट आणि <xliff:g id="WATCH">%s</xliff:g> जोडले"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"तुमचे वॉच सेट करा"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"हा फोन अनलॉक करण्यासाठी वॉच अनलॉक हा दुसरा सुलभ मार्ग आहे, उदाहरणार्थ, तुमची बोटे ओली असल्यास किंवा तुमचा चेहरा ओळखला जात नसल्यास.\n\nतुम्ही पुढील बाबतींमध्ये तुमचा फोन अनलॉक करण्यासाठी तुमचे वॉच वापरू शकता:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"आता नको"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"पुढे सुरू ठेवा"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"आणखी"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"हे कसे काम करते"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"तुमचे वॉच हे अनलॉक केलेले असणे, तुमच्या मनगटावर असणे आणि या फोनच्या जवळ असणे आवश्यक आहे. वॉच तुमच्या मनगटावर असताना तुम्हाला ते पुन्हा अनलॉक करावे लागणार नाही."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"हा फोन अनलॉक केल्यावर, तुम्हाला तुमच्या वॉचवर सूचित केले जाईल. तुम्हाला अनलॉक करायचा नसतानाही फोन अनलॉक झाल्यास, फोन पुन्हा लॉक करण्यासाठी सूचनेवर टॅप करा."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"तुम्ही नियंत्रक आहात"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"तुम्ही सेटिंग्ज मध्ये कधीही वॉच अनलॉक मधून तुमचे वॉच काढून टाकू शकता"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"सूचनेवर टॅप करा"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"लॉक स्क्रीनवर वरती स्वाइप करा"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"तुमचे वॉच निवडा"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"उपलब्ध असलेली वॉच"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"रद्द करा"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"कंफर्म करा"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"तुम्ही पूर्णपणे तयार आहात!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"तुम्ही आता तुमच्या लॉक स्क्रीनवर वरती स्वाइप करून किंवा सूचनेवर टॅप करून हा फोन अनलॉक करण्यासाठी तुमचे वॉच वापरू शकता"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"पूर्ण झाले"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"वॉच अनलॉक"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"तुम्ही तुमच्या लॉक स्क्रीनवर वरती स्वाइप करता किंवा सूचनेवर टॅप करता, तेव्हा हा फोन अनलॉक करण्यासाठी तुम्ही तुमचे वॉच वापरू शकता"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"वॉच अनलॉक वापरण्यासाठी, तुमचे वॉच हे अनलॉक केलेले असणे, तुमच्या मनगटावर असणे, जवळ असणे आणि या फोनशी कनेक्ट केलेले असणे आवश्यक आहे. कनेक्शनमध्ये व्यत्यय आल्यास, तुम्ही वॉच अनलॉक वापरण्यापूर्वी, तुम्हाला तुमचा फोन अनलॉक करणे आवश्यक असेल.\n\nलक्षात ठेवा:\nतुमच्याकडे एका वेळी फक्त एक वॉच सेट केलेले असू शकते. दुसरे वॉच जोडण्यासाठी, आधी सध्याचे वॉच काढून टाका."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"वॉच अनलॉक बद्दल अधिक जाणून घ्या"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"वॉच जोडा"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"वॉच काढून टाका"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"फिंगरप्रिंट आणि फेस अनलॉक"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"कार्य प्रोफाइलसाठी फेस आणि फिंगरप्रिंट अनलॉक"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"सेटअप आवश्यक आहे"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"तुम्हाला इतर डिव्हाइसवर देखील ही पासकी टाईप करण्याची आवश्यकता असू शकते."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"समन्वित सेटशी पेअर करण्याचे कंफर्म करा"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"तुमच्या संपर्क आणि कॉल इतिहासातील अॅक्सेसची अनुमती द्या"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"संपर्क आणि कॉल इतिहासाच्या अॅक्सेसचीदेखील अनुमती द्या"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"कॉल घोषणा आणि आणखी बऱ्याच गोष्टींसाठी माहिती वापरली जाईल"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> सह कनेक्ट करणे शक्य झाले नाही."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"उपलब्ध डिव्हाइस"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"या डिव्हाइससह वाय‑फाय शेअर करत आहे…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"कनेक्ट करत आहे…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"हॉटस्पॉट शेअर करा"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"हे तुम्ही असल्याची खात्री करा"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ते तुम्हीच आहात याची पडताळणी करा"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"वाय-फाय पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"हॉटस्पॉट पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"आपोआप कनेक्ट करा"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"नेटवर्क रेंजमध्ये नाही"</string>
<string name="wifi_forget" msgid="3485573280364015620">"विसरा"</string>
<string name="wifi_modify" msgid="5127926476383659412">"बदल करा"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"नेटवर्क विसरण्यात अयशस्वी"</string>
<string name="wifi_save" msgid="2312643132472226807">"सेव्ह करा"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"नेटवर्क सेव्ह करण्यात अयशस्वी"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"रद्द करा"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"तुमची प्राधान्य असलेली वारंवारता उपलब्ध नसल्यास, तुमचे हॉटस्पॉट वेगळी वारंवारता वापरू शकते. तुम्ही वारंवारता बदलल्यास हॉटस्पॉट सुरक्षा सेटिंग्ज बदलू शकतात."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz सह उपलब्ध नाही"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"तुम्ही हॉटस्पॉटची वारंवारता बदलल्यास सुरक्षा सेटिंग्ज बदलू शकतात"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"हॉटस्पॉट सुरू करत आहे…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"हॉटस्पॉट बंद करत आहे…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"टेदरिंग उपलब्ध नाही"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"तुमचा पासवर्ड विसरलात का?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"तुमचा पॅटर्न विसरलात का?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"तुमचा पिन विसरलात का?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"सुरू ठेवण्यासाठी तुमच्या डिव्हाइस पॅटर्नचा वापर करा"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"सुरू ठेवण्यासाठी तुमचे डिव्हाइस पिन एंटर करा"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"सुरू ठेवण्यासाठी तुमचे डिव्हाइस पासवर्ड एंटर करा"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"सुरू ठेवण्यासाठी आपल्या कार्य नमुन्याचा वापर करा"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"पुढे सुरू ठेवण्यासाठी तुमचा पॅटर्न ड्रॉ करा"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"वाढीव सुरक्षिततेसाठी, तुमच्या डीव्हाइसचा पॅटर्न वापरा"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"वर्णन प्रदान केले नाही."</string>
<string name="settings_button" msgid="2195468788019730377">"सेटिंग्ज"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"प्रकाशाची संवेदनशीलता, फोटोफोबिया, गडद थीम, मायग्रेन, डोकेदुखी, रिडींग मोड, नाइट मोड, ब्राइटनेस कमी करा, व्हाइट पॉइंट"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"वापरण्यातील सुलभता, अॅक्सेस, साहाय्य, साहाय्यकारी यांसाठी सुलभ"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"दृष्टी, श्रवण, दृष्टी-भिन्नक्षम, श्रवणदृष्ट्या भिन्नक्षम, मोटर, कौशल्य, साहाय्यकारी, साहाय्य, वापरण्यामधील सहजता, अॅक्सेसमधील सहजता, हात, मदत"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Window Magnifier, Zoom, मॅग्निफिकेशन, कमी दृश्यमानता, मोठे करा, आणखी मोठे करा"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"कॅप्शन, सबटायटल, सबटायटल, Live Transcribe, कमी ऐकू येणे, ऐकू न येणे, CART, स्पीच टू टेक्स्ट, सबटायटल"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"रंग कॉंट्रास्ट"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"मोटर, माउस"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"श्रवणयंत्रे, श्रवणदोष, ऐकू न येणे, कॉक्लियर इंप्लांट, अँप्लिफिकेशन डिव्हाइस, आवाज प्रोसेसर"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"मोटर, माउस, वायर्ड माउस, डोक्याला लावायचा माउस, अडॅप्टिव्ह माउस, व्हिलचेअर, जॉयस्टिक"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"श्रवणयंत्रे, श्रवणदोष, ऐकू येण्याची क्षमता गमवणे, कॉक्लियर इंप्लांट, अँप्लिफिकेशन डिव्हाइस, आवाज प्रोसेसर, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"कमी ऐकू येणे, ऐकू न येणे, कॅप्शन, टेलीटाइप, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"तीन बटण"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"कौशल्य, मोटर, सिनियर, संधिवात, rsi, स्ट्रोक, कंपन, मल्टीपल स्क्लेरोसिस, सेरेब्रल पाल्सी, थरथर, रिपेटेटिव्ह स्ट्रेन इंज्युरी, हात"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"डिले, डेक्सेरिटी, सिनियर"</string>
<string name="print_settings" msgid="8519810615863882491">"प्रिंट"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"बंद"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{एक प्रिंट सेवा सुरू}other{# प्रिंट सेवा सुरू}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> डेटा चेतावणी"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> डेटा मर्यादा"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> डेटा चेतावणी / <xliff:g id="ID_2">^2</xliff:g> डेटा मर्यादा"</string>
- <string name="operator_warning" msgid="5672761970087591211">"वाहक डेटा गणना तुमच्या डिव्हाइसपेक्षा भिन्न असू शकते"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"वाहक नेटवर्कनी वापरलेला डेटा वगळते"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> वापरला"</string>
<string name="set_data_warning" msgid="1685771882794205462">"डेटा चेतावणी सेट करा"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"ऑटोफिल सेवा"</string>
<string name="default_autofill_app" msgid="372234803718251606">"डीफॉल्ट ऑटोफिल सेवा"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"पासवर्ड"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"पासवर्ड, पासकी आणि डेटा सेवा"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"पासवर्ड, पासकी आणि डेटा सेवा"</string>
<string name="credman_credentials" msgid="4931371941253324143">"अतिरिक्त पुरवठादार"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# पासवर्ड}other{# पासवर्ड}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ऑटो, फिल, ऑटोफिल, पासवर्ड"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ऑटो, भरा, ऑटोफिल, डेटा, पासकी, पासवर्ड"</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="4951846866327737417">"<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="2642776965060619988">"पासवर्ड, पासकी आणि डेटा सेवा"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"पासवर्ड, पासकी आणि डेटा सेवा"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s बंद करायचे का?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ही सेवा बंद करायची आहे का?</b> <br/> <br/> पासवर्ड, पासकी, पेमेंट पद्धती आणि इतर माहिती यांसारखी सेव्ह केलेली माहिती तुम्ही साइन इन करता, तेव्हा भरली जाणार नाही. तुमची सेव्ह केलेली माहिती वापरण्यासाठी, पासवर्ड, पासकी किंवा डेटा सेवा निवडा."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s वापरायचे आहे का?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"कोणत्या गोष्टी ऑटोफिल करता येतील हे निश्चित करण्यासाठी %1$s हे तुमच्या स्क्रीनवर काय आहे ते वापरते."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"पासवर्ड, पासकी आणि डेटा सेवा मर्यादा"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"तुम्ही एकाचवेळी कमाल पाच पासवर्ड, पासकी आणि डेटा सेवा ठेवू शकता. आणखी जोडण्यासाठी एखादी सेवा बंद करा."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"पासवर्ड, पासकी आणि डेटा सेवा मर्यादा"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"तुमच्याकडे एकाचवेळी कमाल ५ पासवर्ड, पासकी आणि डेटा सेवा अॅक्टिव्ह असू शकतात. आणखी जोडण्यासाठी एखादी सेवा बंद करा."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"बंद करा"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ऑटोफिल"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"लॉगिंग पातळी"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"कंपॅटिबल मीडियामधील ऑडिओ हा आणखी वेधक होतो"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"हेड ट्रॅकिंग"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"अधिक नैसर्गिक वाटावे यासाठी, तुम्ही डोके हलवता तसा आवाज बदलतो"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ऑडिओ डिव्हाइस प्रकार"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"अज्ञात"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"स्पीकर"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"हेडफोन"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"कार किट"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"इतर"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"नेटवर्कच्या डाउनलोड रेटची मर्यादा"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"इंटरनेट कनेक्टिव्हिटी पुरवणाऱ्या सर्व नेटवर्कना लागू होणारी नेटवर्क बँडविड्थ प्रवेश रेट मर्यादा कॉंफिगर करा."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"नेटवर्कच्या डाउनलोड रेटची मर्यादा कॉंफिगर करा"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"अॅप अनइंस्टॉल करा"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{मागच्या # महिन्यामध्ये इंस्टॉल केलेली अॅप्स}other{मागच्या # महिन्यांमध्ये इंस्टॉल केलेली अॅप्स}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{किमान # महिन्यापूर्वी अॅप इंस्टॉल केले}other{किमान # ममहिन्यांपूर्वी अॅप इंस्टॉल केले}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"आस्पेक्ट रेशो"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"हे ॲप तुमच्या <xliff:g id="DEVICE_NAME">%1$s</xliff:g> मध्ये फिट होण्यासाठी डिझाइन केलेले नसल्यास, ते पाहण्यासाठी आस्पेक्ट रेशो निवडा"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"सुचवलेली अॅप्स"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"तुम्ही ओव्हरराइड केलेली अॅप्स"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"अॅप डीफॉल्ट"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"फुल स्क्रीन"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"अर्धी स्क्रीन"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"डिव्हाइस आस्पेक्ट रेशो"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"४:३"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"तुम्ही आस्पेक्ट रेशो बदलता, तेव्हा ॲप रीस्टार्ट होईल. तुम्ही सेव्ह न केलेले बदल गमावू शकता."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"फिंगरप्रिंट सेन्सर"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"फ्लॅश सूचना"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"फ्लॅश सूचनांबद्दल"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"मध्यम"</string>
<string name="contrast_high" msgid="3988567609694797696">"उच्च"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"हे अॅप फक्त एका विंडोमध्ये उघडले जाऊ शकते"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"सेवा सुरू आहे"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"सेवा बंद आहे"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"शॉर्टकट बंद आहे"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"सुरू आहे"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"बंद आहे"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"बंद आहे"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"बंद आहे"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"सुरू आहे"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"बंद आहे"</string>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index eff1ab3..ab33086 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Selepas 1 minit"</item>
<item msgid="1574040255478150028">"Selepas 5 minit"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Hidupkan kecerahan boleh suai untuk melanjutkan hayat bateri"</item>
+ <item msgid="2256666063790193306">"Kurangkan tamat masa skrin untuk melanjutkan hayat bateri"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index a942ca4..3bf9a39 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Tidak dinyatakan"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminin"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulin"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Alih keluar bahasa yang dipilih?}other{Alih keluar bahasa yang dipilih?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teks akan dipaparkan dalam bahasa lain."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Tidak boleh mengalih keluar semua bahasa"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Wajah dan <xliff:g id="WATCH">%s</xliff:g> ditambah"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Wajah, cap jari dan <xliff:g id="WATCH">%s</xliff:g> ditambah"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Wajah, cap jari dan <xliff:g id="WATCH">%s</xliff:g> ditambah"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Sediakan jam tangan anda"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Buka Kunci Jam Tangan merupakan satu cara mudah yang lain untuk membuka kunci telefon ini, sebagai contoh, apabila jari anda basah atau wajah anda tidak dapat dicam.\n\nAnda boleh menggunakan jam tangan anda untuk membuka kunci telefon ini apabila anda:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Bukan sekarang"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Teruskan"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Lagi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cara ciri ini berfungsi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Jam tangan anda mestilah tidak berkunci, berada pada pergelangan tangan anda dan berada berdekatan telefon ini. Anda tidak perlu membuka kunci jam tangan anda lagi ketika jam tangan berada pada pergelangan tangan anda."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Apabila telefon ini tidak berkunci, anda akan mendapat pemberitahuan pada jam tangan anda. Jika telefon tidak berkunci apabila anda tidak bermaksud untuk berbuat demikian, ketik pemberitahuan untuk mengunci telefon sekali lagi."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kawalan di tangan anda"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Anda boleh mengalih keluar jam tangan anda daripada Buka Kunci Jam Tangan pada bila-bila masa dalam Tetapan"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Ketik pemberitahuan"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Leret ke atas pada skrin kunci"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Pilih jam tangan anda"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Jam tangan yang tersedia"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Batal"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Sahkan"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Anda sudah sedia!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Kini anda boleh menggunakan jam tangan anda untuk membuka kunci telefon ini apabila anda meleret ke atas pada skrin kunci atau mengetik pemberitahuan"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Selesai"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Buka Kunci Jam Tangan"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Anda boleh menggunakan jam tangan anda untuk membuka kunci telefon ini apabila anda meleret ke atas pada skrin kunci atau mengetik pemberitahuan"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Untuk menggunakan Buka Kunci Jam Tangan, jam tangan anda mestilah tidak berkunci, berada pada pergelangan tangan anda, berada berdekatan dan disambungkan kepada telefon ini. Jika sambungan terganggu, anda perlu membuka kunci telefon sebelum anda boleh menggunakan Buka Kunci Jam Tangan.\n\nSentiasa ingat:\nAnda hanya boleh menyediakan satu jam tangan pada satu-satu masa. Untuk menambahkan jam tangan yang lain, alih keluar jam tangan semasa dahulu."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Ketahui lebih lanjut tentang Buka Kunci Jam Tangan"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Tambahkan jam tangan"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Alih keluar jam tangan"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Buka kunci cap jari & wajah"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Buka Kunci Wajah & Cap Jari untuk kerja"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Persediaan diperlukan"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Anda juga mungkin perlu memasukkan kunci laluan ini pada peranti satu lagi."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Sahkan untuk bergandingan dengan set yang diselaraskan"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Benarkan akses kepada kenalan dan sejarah panggilan anda"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Benarkan juga akses kepada kenalan dan sejarah panggilan"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Maklumat akan digunakan untuk pengumuman panggilan dan pelbagai lagi"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Tidak dapat menyambung ke <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Peranti yang tersedia"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Berkongsi Wi‑Fi dengan peranti ini…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Menyambung…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Kongsi tempat liputan"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Sahkan diri anda"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Sahkan diri anda"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Kata laluan Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Kata laluan tempat liputan: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Autosambung"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rangkaian di luar liputan"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Lupakan"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Ubah suai"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Gagal melupakan rangkaian"</string>
<string name="wifi_save" msgid="2312643132472226807">"Simpan"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Gagal menyimpan rangkaian"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Batal"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Jika frekuensi pilihan anda tidak tersedia, tempat liputan anda boleh menggunakan frekuensi lain. Tetapan keselamatan tempat liputan mungkin berubah jika anda mengubah frekuensi."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Tidak tersedia dengan 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Tetapan keselamatan mungkin berubah jika anda menukar kekerapan tempat liputan"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Menghidupkan tempat liputan..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Mematikan tempat liputan..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Penambatan tidak tersedia"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Terlupa kata laluan anda?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Terlupa corak anda?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Terlupa nombor PIN anda?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gunakan corak peranti anda untuk meneruskan"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Masukkan PIN peranti anda untuk meneruskan"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Masukkan kata laluan peranti anda untuk meneruskan"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gunakan corak kerja anda untuk meneruskan"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Lukis corak anda untuk teruskan"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Masukkan PIN anda untuk teruskan"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Masukkan kata laluan anda untuk teruskan"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Lukis corak kerja anda untuk teruskan"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Masukkan PIN kerja anda untuk meneruskan"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Masukkan kata laluan kerja anda untuk meneruskan"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Untuk keselamatan tambahan, gunakan corak peranti anda"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Tiada keterangan disediakan."</string>
<string name="settings_button" msgid="2195468788019730377">"Tetapan"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"kepekaan cahaya, fotofobia, tema gelap, migrain, sakit kepala, mod membaca, mod malam, kurangkan kecerahan, titik putih"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Kemudahan penggunaan, kemudahan akses, bantuan, bantu"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"penglihatan, pendengaran, buta, pekak, motor, kecekatan, bantu, bantuan, kemudahan penggunaan, kemudahan pengaksesan, tangan, tolong"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Pembesar Tetingkap, Zum, Pembesaran, Rabun, Besarkan, jadikan lebih besar"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Sari kata, SK, Transkripsi Segera, pekak labang, kehilangan pendengaran, CART, pertuturan kepada teks, sari kata"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kontras warna"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, tetikus"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"alat bantu pendengaran, pekak labang, kehilangan pendengaran, implan koklea, peranti penguatan, pemproses bunyi"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motor, tetikus, tetikus luaran, kepala tetikus, tetikus boleh suai, kerusi roda, kayu bedik"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"alat bantu pendengaran, pekak labang, kehilangan pendengaran, implan koklea, peranti penguatan, pemproses bunyi, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"pekak labang, kehilangan pendengaran, sari kata, Teletaip, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tiga butang"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"kecekatan, motor, warga emas, artritis, rsi, strok, geletar, berbilang sklerosis, palsi serebrum, gigil, kecederaan tegang berulang, tangan"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"kelewatan, kecekatan, warga emas"</string>
<string name="print_settings" msgid="8519810615863882491">"Pencetakan"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Mati"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 perkhidmatan cetak dihidupkan}other{# perkhidmatan cetak dihidupkan}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Amaran data <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Had data <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Amaran data <xliff:g id="ID_1">^1</xliff:g>/Had data <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Cara pengiraan data pembawa mungkin berbeza daripada pengiraan peranti"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Kecualikan data yang digunakan oleh rangkaian pembawa"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> digunakan"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Tetapkan amaran data"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Perkhidmatan autolengkap"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Perkhidmatan autolengkap lalai"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Kata laluan"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Kata laluan, kunci laluan dan perkhidmatan data"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Kata laluan, kunci laluan dan perkhidmatan data"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Penyedia tambahan"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# kata laluan}other{# kata laluan}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"auto, isi, autolengkap, kata laluan"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatik, isi, autolengkap, data, kunci laluan, kata laluan"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Pastikan anda mempercayai apl ini</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> menggunakan item yang terdapat pada skrin anda untuk menentukan perkara yang boleh dilengkapkan secara automatik."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Gunakan <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> menggunakan maklumat pada skrin untuk menentukan pengisian data automatik. Kata laluan baharu, kunci laluan dan maklumat lain akan disimpan di sini mulai sekarang."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Kata laluan, kunci laluan dan perkhidmatan data"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Kata laluan, kunci laluan dan perkhidmatan data"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Matikan %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Matikan perkhidmatan ini?</b> <br/> <br/> Maklumat yang disimpan seperti kata laluan, kunci laluan, kaedah pembayaran dan maklumat lain tidak akan diisikan apabila anda log masuk. Untuk menggunakan maklumat anda yang disimpan, pilih kata laluan, kunci laluan atau perkhidmatan data."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Gunakan %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s menggunakan maklumat pada skrin anda untuk menentukan pengisian data automatik."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Had kata laluan, kunci laluan dan perkhidmatan data"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Anda boleh mempunyai hingga 5 kata laluan, kunci laluan dan perkhidmatan data yang aktif pada masa yang sama. Matikan perkhidmatan untuk menambahkan lagi."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Had kata laluan, kunci laluan dan perkhidmatan data"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Anda boleh mempunyai hingga 5 kata laluan, kunci laluan dan perkhidmatan data yang aktif pada masa yang sama. Matikan perkhidmatan untuk menambahkan lagi."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Matikan"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autolengkap"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Tahap pengelogan"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio daripada media yang serasi kedengaran lebih mengasyikkan"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Penjejakan kepala"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio berubah apabila anda menggerakkan kepala anda untuk kedengaran lebih semula jadi"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Jenis Peranti Audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Tidak diketahui"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Pembesar suara"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Fon kepala"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit Kereta"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Lain-lain"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Had kadar muat turun rangkaian"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurasikan had kadar kemasukan lebar jalur rangkaian yang digunakan pada semua rangkaian yang menyediakan kesambungan Internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurasikan had kadar muat turun rangkaian"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Sederhana"</string>
<string name="contrast_high" msgid="3988567609694797696">"Tinggi"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Apl ini hanya boleh dibuka dalam 1 tetingkap"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Perkhidmatan dihidupkan"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Perkhidmatan dimatikan"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Pintasan dimatikan"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Hidup"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Mati"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Mati"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Mati"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Hidup"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Mati"</string>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index f400fc3..53420f0 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"၁ မိနစ်နောက်ပိုင်း"</item>
<item msgid="1574040255478150028">"၅ မိနစ်နောက်ပိုင်း"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"ဘက်ထရီ သက်တမ်းရှည်စေရန် အလိုက်သင့် တောက်ပမှုကို ဖွင့်ပါ"</item>
+ <item msgid="2256666063790193306">"ဘက်ထရီ သက်တမ်းရှည်စေရန် ဖန်သားပြင် အချိန်ကုန်သွားခြင်းကို လျှော့ပါ"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index f35a68e..e057e00 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"သတ်မှတ်မထားပါ"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"ဣတ္ထိလိင်"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"ပုလ္လိင်"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ရွေးထားသည့် ဘာသာစကားကို ဖယ်ရှားမလား။}other{ရွေးထားသည့် ဘာသာစကားများကို ဖယ်ရှားမလား။}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"စာသားများကို အခြားဘာသာစကားဖြင့်ပြပါလိမ့်မည်။"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ဘာသာစကားများ အားလုံးကိုဖယ်ရှား၍မရပါ"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"မျက်နှာနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"မျက်နှာ၊ လက်ဗွေနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"မျက်နှာ၊ လက်ဗွေများနှင့် <xliff:g id="WATCH">%s</xliff:g> ကို ထည့်လိုက်ပါပြီ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"လက်ပတ်နာရီ စနစ်ထည့်သွင်းခြင်း"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"‘နာရီဖြင့်ဖွင့်ခြင်း’ သည် ဤဖုန်းဖွင့်ရန် အဆင်ပြေသည့် နည်းလမ်းနောက်တစ်ခု ဖြစ်သည်။ ဥပမာ သင့်လက်ချောင်းများ ရေစိုနေချိန် (သို့) မျက်နှာကို မမှတ်မိသောအချိန်။\n\nအောက်ပါတို့လုပ်သောအခါ ဤဖုန်းဖွင့်ရန် သင့်နာရီကို သုံးနိုင်သည်-"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ယခုမလုပ်ပါ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"ရှေ့ဆက်ရန်"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"နောက်ထပ်"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"အလုပ်လုပ်ပုံ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"နာရီပွင့်နေကာ လက်တွင်ပတ်ထားပြီး ဤဖုန်း၏ လက်လှမ်းမီသည့် နေရာတွင်ရှိရမည်။ လက်တွင်ပတ်ထားစဉ် သင့်နာရီကို ထပ်ဖွင့်စရာ မလိုပါ။"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ဤဖုန်းပွင့်သွားသည့်အခါ သင့်ကို နာရီတွင် အကြောင်းကြားမည်။ သင်မရည်ရွယ်သည့်အချိန်တွင် ဖုန်းပွင့်နေပါက ၎င်းအားလော့ခ်ထပ်ချရန် အကြောင်းကြားချက်ကို တို့နိုင်သည်။"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"သင့်ထိန်းချုပ်မှုအောက်တွင် ရှိပါသည်"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ဆက်တင်များတွင် ‘နာရီဖြင့်ဖွင့်ခြင်း’ မှ သင့်နာရီကို အချိန်မရွေး ဖယ်ရှားနိုင်သည်"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"အကြောင်းကြားချက်ကို တို့ပါ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"လော့ခ်မျက်နှာပြင်တွင် အပေါ်သို့ပွတ်ဆွဲပါ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"သင့်လက်ပတ်နာရီ ရွေးရန်"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ရနိုင်သော လက်ပတ်နာရီများ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"မလုပ်တော့"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"အတည်ပြုရန်"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"အားလုံးအဆင်သင့်ပါ။"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"လော့ခ်မျက်နှာပြင်ပေါ်တွင် ပွတ်ဆွဲသောအခါ (သို့) အကြောင်းကြားချက်ကို တို့သောအခါ ဤဖုန်းအားဖွင့်ရန် သင့်နာရီကို ယခု သုံးနိုင်သည်"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ပြီးပြီ"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"နာရီဖြင့်ဖွင့်ခြင်း"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"လော့ခ်မျက်နှာပြင်ပေါ်တွင် ပွတ်ဆွဲသောအခါ (သို့) အကြောင်းကြားချက်ကို တို့သောအခါ ဤဖုန်းအားဖွင့်ရန် သင့်နာရီကို သုံးနိုင်သည်"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"‘နာရီဖြင့်ဖွင့်ခြင်း’ သုံးရန် နာရီပွင့်နေကာ လက်တွင်ပတ်ထားပြီး ဤဖုန်း၏ လက်လှမ်းမီသည့် နေရာတွင်ရှိ၍ ၎င်းကို ချိတ်ဆက်ထားရမည်။ ချိတ်ဆက်မှု ပြတ်တောက်သွားပါက ‘နာရီဖြင့်ဖွင့်ခြင်း’ မသုံးမီ ဖုန်းကိုဖွင့်ရပါမည်။\n\nသတိပြုရန်-\nတစ်ကြိမ်လျှင် နာရီတစ်လုံးသာ စနစ်ထည့်သွင်းနိုင်သည်။ နာရီနောက်တစ်လုံးထည့်ရန် လက်ရှိတစ်လုံးကို ဦးစွာဖယ်ရှားရမည်။"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"‘နာရီဖြင့်ဖွင့်ခြင်း’ အကြောင်း ပိုမိုလေ့လာရန်"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"နာရီထည့်ရန်"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"နာရီ ဖယ်ရှားရန်"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"လက်ဗွေနှင့် မျက်နှာပြ လော့ခ်ဖွင့်ခြင်း"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"အလုပ်အတွက် ‘မျက်နှာပြနှင့် လက်ဗွေသုံး လော့ခ်ဖွင့်ခြင်း’"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"စနစ်ထည့်သွင်းရန် လိုအပ်သည်"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ဤ ဖြတ်သန်းခွင့်ကုဒ်ကို အခြား စက်ပစ္စည်းတွင်လည်း ရိုက်ထည့်ရန် လိုအပ်နိုင်သည်။"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ချိတ်ဆက်ထားသည့်အစီအစဉ်အတိုင်း တွဲချိတ်ရန်အတည်ပြုပါ"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"သင်၏ အဆက်အသွယ်များနှင့် ခေါ်ဆိုမှုမှတ်တမ်းကို ကြည့်ခွင့်ပြုသည်"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"အဆက်အသွယ်များနှင့် ခေါ်ဆိုမှုမှတ်တမ်းကိုလည်း သုံးခွင့်ပေးသည်"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"အချက်အလက်ကို ဖုန်းခေါ်ဆိုမှု ကြေညာချက်နှင့် အခြားအရာများအတွက် သုံးမည်"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ကို ချိတ်ဆက်မရပါ။"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ရနိုင်သည့် စက်များ"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi ကို ဤစက်အား မျှဝေနေသည်…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"ချိတ်ဆက်နေသည်…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ဟော့စပေါ့ မျှဝေရန်"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"သင်ဖြစ်ကြောင်း အတည်ပြုပါ"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"သင်ဖြစ်ကြောင်း အတည်ပြုပါ"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi စကားဝှက်− <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ဟော့စပေါ့စကားဝှက်− <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"အလိုအလျောက် ချိတ်ဆက်မှု"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ကွန်ရက်သည် ရနိုင်သောအကွာအဝေးတွင် မရှိပါ"</string>
<string name="wifi_forget" msgid="3485573280364015620">"မေ့ပစ်ရန်"</string>
<string name="wifi_modify" msgid="5127926476383659412">"ပြင်ဆင်ရန်"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ကွန်ရက် မေ့ပစ်ရန် မအောင်မြင်ခဲ့ပါ"</string>
<string name="wifi_save" msgid="2312643132472226807">"သိမ်းရန်"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"ကွန်ရက်ကို မှတ်သားရန် မအောင်မြင်ခဲ့ပါ"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"မလုပ်တော့"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"သင်၏ ဦးစားပေးကြိမ်နှုန်း မရနိုင်ပါက ဟော့စပေါ့သည် အခြားတစ်ခုကို သုံးနိုင်သည်။ ကြိမ်နှုန်းပြောင်းပါက ဟော့စပေါ့လုံခြုံရေးဆက်တင်များ ပြောင်းနိုင်သည်။"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz ဖြင့် မရနိုင်ပါ"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"ဟော့စပေါ့၏ကြိမ်နှုန်းကို ပြောင်းပါက လုံခြုံရေးဆက်တင်များ ပြောင်းနိုင်သည်"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"ဟော့စပေါ့ ဖွင့်နေသည် …"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"ဟော့စပေါ့ ပိတ်နေသည် …"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"မိုဘိုင်းသုံး၍ ချိတ်ဆက်ခြင်း မရနိုင်ပါ"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"စကားဝှက် မေ့နေပါလား။"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ပုံစံ မေ့နေပါသလား။"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ပင်နံပါတ် မေ့နေပါသလား။"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ရှေ့ဆက်ရန် သင့်စက်၏ ပုံစံကို အသုံးပြုပါ"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ဆက်လုပ်ရန် သင့်စက်ပစ္စည်း၏ ပင်နံပါတ်ကို ထည့်ပါ။"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ရှေ့ဆက်ရန် သင့်ကိရိယာစကားဝှက်ကို ရိုက်ထည့်ပါ"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ဆက်လက်လုပ်ဆောင်ရန် သင်၏အလုပ်ပုံစံကို သုံးပါ"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ရှေ့ဆက်ရန် ပုံဖော်ရေးဆွဲပါ"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"လုံခြုံရေး ပိုကောင်းစေရန် သင်၏ စက်ပစ္စည်းပုံစံကို သုံးပါ"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"မည်သည့်အကြောင်းအရာမှမရှိပါ"</string>
<string name="settings_button" msgid="2195468788019730377">"ဆက်တင်များ"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"အလင်းသိမ်မွေ့မှု၊ အလင်းကြောက်ခြင်း၊ အမှောင်နောက်ခံ၊ ခေါင်းတစ်ခြမ်းကိုက်ခြင်း၊ ခေါင်းကိုက်ခြင်း၊ စာဖတ်မုဒ်၊ ညသုံးမုဒ်၊ တောက်ပမှုကို လျှော့ခြင်း၊ အဖြူရောင်အမှတ်"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"အသုံးပြုရလွယ်ခြင်း၊ သုံးလွယ်ခြင်း၊ အကူအညီ၊ ကူညီပေးသော"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"အမြင်၊ အကြား၊ မျက်မမြင်၊ နားမကြား၊ မော်တာ၊ ကျွမ်းကျင်မှု၊ ထောက်ပံ့မှု၊ အကူအညီ၊ သုံးရလွယ်၊ ဝင်ရလွယ်၊ လက်၊ အကူအညီ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ဝင်းဒိုးမှန်ဘီလူး၊ ဇူးမ်၊ ချဲ့ခြင်း၊ အမြင်အာရုံချို့တဲ့ခြင်း၊ ပုံကြီးချဲ့ခြင်း၊ ပိုကြီးအောင်လုပ်ခြင်း"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"စာတန်းများ၊ စာတန်းများ၊ CC၊ Live Transcribe၊ နားလေးခြင်း၊ အကြားအာရုံဆုံးရှုံးခြင်း၊ CART၊ စကားမှ စာသို့၊ စာတန်းထိုးများ"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"အရောင် အလင်းအမှောင်"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"မော်တာ၊ မောက်စ်"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"နားကြားကိရိယာ၊ အကြားအာရုံ ချို့တဲ့ခြင်း၊ နားမကြားခြင်း၊ cochlear ထည့်သွင်းမှုများ၊ အသံချဲ့သည့်စက်ပစ္စည်းများ၊ အသံစက်များ"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"မော်တာ၊ မောက်စ်၊ ပြင်ပမောက်စ်၊ ခေါင်းတပ်မောက်စ်၊ ပြောင်းပြင်လွယ်မောက်စ်၊ ဘီးတပ်ကုလားထိုင်၊ ဂိမ်းခလုတ်"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"နားကြားကိရိယာ၊ နားလေးခြင်း၊ နားမကြားခြင်း၊ cochlear ထည့်သွင်းမှုများ၊ အသံချဲ့သည့်စက်ပစ္စည်းများ၊ အသံစက်များ၊ PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"နားလေးခြင်း၊ အကြားအာရုံဆုံးရှုံးခြင်း၊ စာတန်းများ၊ ကြေးနန်းရိုက်ခြင်း၊ tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ခလုတ်သုံးခု"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ကျွမ်းကျင်မှု၊ မော်တာ၊ စီနီယာ၊ အဆစ်ရောင်နာ၊ rsi, လေဖြတ်၊ ရင်တုန်ခြင်း၊ မာလ်တီပယ် စကယ်လရိုးဆစ်၊ ဦးနှောက်အကြောသေရောဂါ၊ တုန်ခြင်း၊ ကြွက်သားနာကျင်ရောင်ရမ်းခြင်း၊ လက်"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"နှောင့်နှေး၊ ကျွမ်းကျင်မှု၊ စီနီယာ"</string>
<string name="print_settings" msgid="8519810615863882491">"ပုံနှိပ်ခြင်း"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ပိတ်"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{ပရင့် ဝန်ဆောင်မှု ၁ ခုဖွင့်ထားသည်}other{ပရင့် ဝန်ဆောင်မှု # ခုဖွင့်ထားသည်}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"ဒေတာသတိပေးချက် <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"ဒေတာကန့်သတ်ချက် <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"ဒေတာသတိပေးချက် <xliff:g id="ID_1">^1</xliff:g> / ဒေတာကန့်သတ်ချက် <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"ဝန်ဆောင်မှုပေးသူ၏ ဒေတာအသုံးပြုမှု တွက်ချက်ခြင်းသည် စက်ပစ္စည်း၏ တွက်ချက်ခြင်းနှင့် ကွဲပြားနိုင်သည်"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ဝန်ဆောင်မှုပေးသူ၏ကွန်ရက်များက အသုံးပြုသော ဒေတာများ မပါဝင်ပါ"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> အသုံးပြုထားသည်"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ဒေတာသတိပေးချက် သတ်မှတ်ရန်"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"အော်တိုဖြည့် ဝန်ဆောင်မှု"</string>
<string name="default_autofill_app" msgid="372234803718251606">"မူရင်း အော်တိုဖြည့်ဝန်ဆောင်မှု"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"စကားဝှက်များ"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ"</string>
<string name="credman_credentials" msgid="4931371941253324143">"နောက်ထပ် ဝန်ဆောင်မှုပေးသူများ"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{စကားဝှက် # ခု}other{စကားဝှက် # ခု}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"အော်တို၊ ဖြည့်၊ အော်တိုဖြည့်၊ စကားဝှက်"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"အလိုအလျောက်၊ ဖြည့်ခြင်း၊ အလိုအလျောက်ဖြည့်ခြင်း၊ ဒေတာ၊ လျှို့ဝှက်ကီး၊ စကားဝှက်"</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="4951846866327737417">"<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="2642776965060619988">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s ကို ပိတ်မလား။"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ဤစက်ကို ပိတ်မလား။</b> <br/> <br/> လက်မှတ်ထိုးဝင်သောအခါ စကားဝှက်၊ လျှို့ဝှက်ကီးများ၊ ငွေပေးချေနည်းလမ်းနှင့် အခြားအချက်အလက်ကဲ့သို့ သိမ်းထားသောအချက်အလက်များကို ဖြည့်မည်မဟုတ်ပါ။ သိမ်းထားသောအချက်အလက် သုံးရန် စကားဝှက်၊ လျှို့ဝှက်ကီး (သို့) ဒေတာဝန်ဆောင်မှု ရွေးပါ။"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s သုံးမလား။"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s သည် အော်တိုဖြည့်နိုင်သည်များကို သိရှိရန် သင့်စခရင်ပေါ်ရှိ အရာများကို အသုံးပြုသည်။"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ ကန့်သတ်ချက်"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"တစ်ချိန်တည်းတွင် စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှု ၅ ခုအထိ ထားရှိနိုင်သည်။ ထပ်ထည့်ရန် ဝန်ဆောင်မှုတစ်ခုကို ပိတ်ပါ။"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှုများ ကန့်သတ်ချက်"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"တစ်ချိန်တည်းတွင် စကားဝှက်၊ လျှို့ဝှက်ကီးနှင့် ဒေတာဝန်ဆောင်မှု ၅ ခုအထိ ထားရှိနိုင်သည်။ ထပ်ထည့်ရန် ဝန်ဆောင်မှုတစ်ခုကို ပိတ်ပါ။"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ပိတ်ရန်"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"အလိုအလျောက်ဖြည့်ရန်"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"မှတ်တမ်းတင်မှု အဆင့်"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"တွဲသုံးနိုင်သောမီဒီယာမှ အသံသည် ပို၍နှစ်သက်ဖွယ်ကောင်းသည်"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ဦးခေါင်းလှုပ်ရှားမှု စောင့်ကြည့်ခြင်း"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ပိုမိုသဘာဝဆန်စေရန် ဦးခေါင်းလှုပ်ရှားမှုအလိုက် အသံပြောင်းလဲသည်"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"အသံစက်ပစ္စည်း အမျိုးအစား"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"မသိ"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"စပီကာ"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"နားကြပ်"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"ကားပစ္စည်းအစုံ"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"အခြား"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ကွန်ရက်ဒေါင်းလုဒ်လုပ်နှုန်း ကန့်သတ်ချက်"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"အင်တာနက်ချိတ်ဆက်မှုပေးသော ကွန်ရက်အားလုံးတွင် သက်ရောက်သည့် အဝင်ကွန်ရက်မြန်နှုန်း (ပမာဏ) စီစဉ်သတ်မှတ်နိုင်သည်။"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ကွန်ရက်ဒေါင်းလုဒ်လုပ်နှုန်း ကန့်သတ်ချက် စီစဉ်သတ်မှတ်ရန်"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"အက်ပ်ကို ဖယ်ရှားရန်"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ပြီးခဲ့သော # လအတွင်း ထည့်သွင်းထားသည့် အက်ပ်များ}other{ပြီးခဲ့သော # လအတွင်း ထည့်သွင်းထားသည့် အက်ပ်များ}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ပြီးခဲ့သော # လကျော်က ထည့်သွင်းထားသည့် အက်ပ်များ}other{ပြီးခဲ့သော # လကျော်က ထည့်သွင်းထားသည့် အက်ပ်များ}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"အချိုးအစား"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"ဤအက်ပ်ကို သင့် <xliff:g id="DEVICE_NAME">%1$s</xliff:g> နှင့် အံကိုက်ဖြစ်အောင် ရေးဆွဲမထားပါက ၎င်းကိုကြည့်ရန် အချိုးအစား ရွေးနိုင်သည်"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"အကြံပြုထားသော အက်ပ်များ"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"အစားထိုးထားသော အက်ပ်များ"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"အက်ပ် မူရင်း"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ဖန်သားပြင်အပြည့်"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ဖန်သားပြင်တစ်ဝက်"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"စက်၏အချိုးအစား"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"အချိုးအစား ပြောင်းလိုက်သောအခါ အက်ပ်ပြန်စပါမည်။ သိမ်းမထားသော အပြောင်းအလဲများ ဆုံးရှုံးနိုင်သည်။"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"လက်ဗွေ အာရုံခံကိရိယာ"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"အလင်းရောင်ဖြင့် အကြောင်းကြားချက်"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"အလင်းရောင်ဖြင့် အကြောင်းကြားချက်များအကြောင်း"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"အသင့်အတင့်"</string>
<string name="contrast_high" msgid="3988567609694797696">"များ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ဤအက်ပ်ကို ဝင်းဒိုး ၁ ခုတွင်သာ ဖွင့်နိုင်သည်"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"ဝန်ဆောင်မှု ဖွင့်ထားသည်"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"ဝန်ဆောင်မှု ပိတ်ထားသည်"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"ဖြတ်လမ်းလင့်ခ် ပိတ်ထားသည်"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ဖွင့်"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ပိတ်"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ပိတ်"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ပိတ်"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ဖွင့်"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ပိတ်"</string>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 8e35bb7..3e0b122 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Etter 1 minutt"</item>
<item msgid="1574040255478150028">"Etter 5 minutter"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Slå på tilpasset lysstyrke for å forlenge batterilevetiden"</item>
+ <item msgid="2256666063790193306">"Reduser tiden for skjermspareren for å forlenge batterilevetiden"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 9dd1806..a8cfc52 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -122,7 +122,7 @@
<string name="stylus_default_notes_app" msgid="4165657465911764628">"Trykk på bakre knapp"</string>
<string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (jobbprofil)"</string>
<string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Skriv i tekstfelt"</string>
- <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer alle knappetrykk med pekepenn"</string>
+ <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer alle knappetrykk på pekepennen"</string>
<string name="stylus_connected_devices_title" msgid="2823967577941359812">"Pekepenn"</string>
<string name="date_and_time" msgid="1788358029823431692">"Dato og klokkeslett"</string>
<string name="proxy_settings_title" msgid="4201866858226087066">"Proxy-tjener"</string>
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ikke angitt"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminin"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulin"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vil du fjerne det valgte språket?}other{Vil du fjerne de valgte språkene?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Da vises tekst på et annet språk."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Du kan ikke fjerne alle språkene"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ansiktet og <xliff:g id="WATCH">%s</xliff:g> er lagt til"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ansiktet, fingeravtrykket og <xliff:g id="WATCH">%s</xliff:g> er lagt til"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ansiktet, fingeravtrykkene og <xliff:g id="WATCH">%s</xliff:g> er lagt til"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfigurer klokken"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Klokkelåsen er en annen praktisk løsning for å låse opp denne telefonen – for eksempel når du har våte fingre eller ansiktet ditt ikke gjenkjennes.\n\nDu kan låse opp telefonen med klokken når du"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ikke nå"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Fortsett"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mer"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Slik fungerer det"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Klokken må være låst opp, på håndleddet ditt og innenfor rekkevidde for denne telefonen. Du trenger ikke å låse opp klokken igjen så lenge du har den på håndleddet."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Når denne telefonen låses opp, varsles du på klokken. Hvis telefonen låses opp ved et uhell, kan du trykke på varselet for å låse den igjen."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Du har kontrollen"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Du kan fjerne klokken fra klokkelåsen når som helst i innstillingene"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"trykker på et varsel"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"sveiper opp på låseskjermen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Velg klokken din"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Tilgjengelige klokker"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Avbryt"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bekreft"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Det var det!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Nå kan du låse opp denne telefonen med klokken når du sveiper opp på låseskjermen eller trykker på et varsel"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Ferdig"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Klokkelås"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Du kan låse opp denne telefonen med klokken når du sveiper opp på låseskjermen eller trykker på et varsel"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"For å bruke klokkelåsen må klokken være låst opp, på håndleddet ditt, innenfor rekkevidde og koblet til denne telefonen. Hvis tilkoblingen blir brutt, må du låse opp telefonen før du kan bruke klokkelåsen.\n\nHusk:\nDu kan bare ha én klokke konfigurert om gangen. Du må fjerne den aktive klokken før du kan legge til en ny."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Finn ut mer om klokkelåsen"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Legg til en klokke"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Fjern klokken"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Opplåsing med fingeravtrykk og ansiktslås"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ansiktslås og opplåsing med fingeravtrykk for jobb"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfigurering kreves"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Det er mulig at du må oppgi dette passordet også på den andre enheten."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bekreft for å koble til det koordinerte settet"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Gi tilgang til kontaktene dine og anropsloggen din"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Gi også tilgang til kontakter og anropsloggen"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informasjonen brukes for anropskunngjøringer med mer"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Kunne ikke koble til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Tilgjengelige enheter"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deler Wifi med denne enheten …"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Kobler til …"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Del wifi-sone"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Bekreft at det er deg"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Bekreft at det er deg"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wifi-passord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Passord for wifi-sone: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatisk tilkobling"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Nettverket er ikke innen rekkevidde"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Glem"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Endre"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Kunne ikke slette nettverket"</string>
<string name="wifi_save" msgid="2312643132472226807">"Lagre"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Kunne ikke lagre nettverket"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Avbryt"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Hvis frekvensen du foretrekker, ikke er tilgjengelig, kan wifi-sonen bruke en annen. Sikkerhetsinnstillingene for wifi-sonen kan endres hvis du bytter frekvensen."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Ikke tilgjengelig med 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Sikkerhetsinnstillingene kan endres hvis du forandrer frekvensen for wifi-sonen"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Slår på wifi-sone …"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Slår av trådløs sone …"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Internettdeling er utilgjengelig"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Har du glemt passordet ditt?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Har du glemt mønsteret ditt?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Har du glemt PIN-koden din?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Tegn mønsteret ditt for å fortsette"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Skriv inn PIN-koden til enheten din for å fortsette"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Skriv inn enhetspassordet ditt for å fortsette"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Bruk jobbmønsteret ditt for å fortsette"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Tegn mønsteret ditt for å fortsette"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Oppgi PIN-koden din for å fortsette"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Oppgi passordet ditt for å fortsette"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Tegn jobbmønsteret ditt for å fortsette"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Skriv inn jobb-PIN-koden din for å fortsette"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Skriv inn jobbpassordet ditt for å fortsette"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Bruk enhetsmønsteret ditt for bedre beskyttelse"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Beskrivelse ble ikke oppgitt."</string>
<string name="settings_button" msgid="2195468788019730377">"Innstillinger"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"lyssensitivitet, fotofobi, mørkt tema, migrene, hodepine, lesemodus, nattmodus, reduser lysstyrke, hvitpunkt"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Brukervennlighet, enkel tilgang, assistanse, assisterende"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"syn, hørsel, blind, døv, motorikk, førlighet, assisterende, assistanse, brukervennlighet, tilgjengelighet, hånd, hjelp"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Vindusforstørrer, zoom, forstørring, nedsatt synsevne, forstørr, gjør større"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Teksting, teksting for hørselshemmede, CC, Transkribering, hørselshemmet, hørselstap, CART, tale til tekst, undertekst"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"fargekontrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mus"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"høreapparater, hørselshemmet, hørselstap, cochlea-implantater, enheter for lydforsterkning, lydbehandlere"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorikk, mus, ekstern mus, hodemus, adaptiv mus, rullestol, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"høreapparater, hørselshemmet, hørselstap, cochlea-implantater, enheter for lydforsterkning, lydbehandlere, nødsentral"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"hørselshemmet, hørselstap, teksting, fjernskriver, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tre knapper"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"førlighet, motorikk, eldre, artritt, musesyke, slag, risting, multippel sklerose, cerebral parese, skjelving, hånd"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"forsinkelse, førlighet, eldre"</string>
<string name="print_settings" msgid="8519810615863882491">"Utskrift"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Av"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 utskriftstjeneste er på}other{# utskriftstjenester er på}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Advarsel for databruk: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> datagrense"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Advarsel for databruk: <xliff:g id="ID_1">^1</xliff:g> brukt, <xliff:g id="ID_2">^2</xliff:g> datagrense"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operatørens måling av databruk samsvarer ikke nødvendigvis med enhetens måling."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Inkluderer ikke data brukt av operatørnettverk"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> er brukt"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Angi varsel om databruk"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Autofylltjeneste"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Standard autofylltjeneste"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Passord"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Passord, passnøkler og datatjenester"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Passord, passnøkler og datatjenester"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Andre leverandører"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# passord}other{# passord}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"auto, fyll, autofyll, passord"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fyll, autofyll, data, passnøkkel, passord"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Stoler du på denne appen?</b> <br/> <br/> <xliff:g id=app_name example=Google autofyll>%1$s</xliff:g> bruker det som er på skjermen, til å fastslå hva som kan fylles ut automatisk."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Vil du bruke <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> bruker det som er på skjermen din, til å avgjøre hva som kan autofylles. Nye passord, passnøkler og annen informasjon lagres her fra nå av."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Passord, passnøkler og datatjenester"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Passord, passnøkler og datatjenester"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vil du slå av %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Vil du slå av denne tjenesten?</b> <br/> <br/> Lagret informasjon som passord, passnøkler, betalingsmåter og andre ting fylles ikke ut når du logger på. For å bruke informasjonen du har lagret, velg et passord, en passnøkkel eller en datatjeneste."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Vil du bruke %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s bruker det som er på skjermen din, for å avgjøre hva som kan autofylles."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Grense for passord, passnøkler og datatjenester"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Du kan ha opptil 5 passord, passnøkler og datatjenester aktive samtidig. Slå av en tjeneste for å legge til flere."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Grense for passord, passnøkler og datatjenester"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Du kan ha opptil 5 passord, passnøkler og datatjenester aktive samtidig. Slå av en tjeneste for å legge til flere."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Slå av"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autofyll"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Loggføringsnivå"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Lyd fra kompatible enheter blir mer omsluttende"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Hodesporing"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Lyden endres når du beveger hodet, slik at den høres mer naturlig ut"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type lydenhet"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Ukjent"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Høyttaler"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Hodetelefoner"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Bilsett"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Annet"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Grense for nedlastingshastighet for nettverket"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurer grensen for innkommende båndbredde i nettverket, som benyttes for alle nettverk som gir internettilkobling."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurer grensen for nedlastingshastighet for nettverket"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Avinstaller app"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Apper installert den siste måneden}other{Apper installert de siste # månedene}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Apper installert for mer enn # måned siden}other{Apper installert for mer enn # måneder siden}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Høyde/bredde-forhold"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Velg et høyde/bredde-forhold for denne appen hvis den ikke er laget for å passe til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Foreslåtte apper"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Apper du har overstyrt"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Appstandard"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Fullskjerm"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halv skjerm"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Høyde/bredde-forhold for enheten"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Appen starter på nytt når du endrer høyde/bredde-forholdet. Du kan miste ulagrede endringer."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingeravtrykkssensor"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Blitsvarsler"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Om blitsvarsler"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Middels"</string>
<string name="contrast_high" msgid="3988567609694797696">"Høy"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Denne appen kan bare åpnes i ett vindu"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Tjenesten er på"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Tjenesten er av"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Snarveien er av"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"På"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Av"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Av"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Av"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"På"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Av"</string>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index c37cd09..bacfaf4 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"१ मिनेटपछि"</item>
<item msgid="1574040255478150028">"५ मिनेटपछि"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"ब्याट्रीको आयु बढाउन अनुकूलनयोग्य चमक अन गर्नुहोस्"</item>
+ <item msgid="2256666063790193306">"ब्याट्रीको आयु बढाउन स्क्रिन टाइमआउट घटाउनुहोस्"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 9f82a3b..3b5699f 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"नतोकिएको"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"स्त्रीलिङ्ग"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"पुलिङ्ग"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{चयन गरिएको भाषा हटाउने हो?}other{चयन गरिएका भाषा हटाउने हो?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"पाठ अर्को भाषामा प्रदर्शन हुनेछ।"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"सबै भाषाहरूलाई हटाउन सक्दैन"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"अनुहार र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरियो"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"अनुहार, फिंगरप्रिन्ट र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरियो"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"अनुहार, फिंगरप्रिन्टहरू र <xliff:g id="WATCH">%s</xliff:g> दर्ता गरिए"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"आफ्नो स्मार्ट वाच सेटअप गर्नुहोस्"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"तपाईंका औँलाहरू ओसिला भएका बेला वा तपाईंको अनुहार पहिचान गर्न नसकिएका खण्डमा तपाईं स्मार्ट वाच अनलक गर्ने सुविधा प्रयोग गरेर यो फोन अनलक गर्न सक्नुहुन्छ।\n\nनिम्न अवस्थामा तपाईं आफ्नो स्मार्ट वाच प्रयोग गरेर यो फोन अनलक गर्न सक्नुहुन्छ:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"अहिले होइन"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"जारी राख्नुहोस्"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"थप"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"यसले काम गर्ने तरिका"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"तपाईंको स्मार्ट वाच अनिवार्य रूपमा अनलक गरिएको हुनु पर्छ, तपाईंको नाडीमा बाँधिएको हुनु पर्छ र यो फोनको नजिकै हुनु पर्छ। तपाईंको स्मार्ट वाच तपाईंको नाडीमा हुँदा तपाईंले उक्त स्मार्ट वाच फेरि अनलक गर्नु पर्दैन।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"यो फोन अनलक हुँदा तपाईंको स्मार्ट वाचमा सूचना पठाइने छ। तपाईंले नचाहेका बेला यो फोन अनलक भएका खण्डमा सूचनामा ट्याप गरेर यो फोन फेरि लक गर्नुहोस्।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"यो कुरा तपाईंको नियन्त्रणमा हुन्छ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"तपाईं जुनसुकै बेला सेटिङमा गई \"स्मार्ट वाच अनलक गर्ने सुविधा\" बाट आफ्नो स्मार्ट वाच हटाउन सक्नुहुन्छ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"कुनै एक सूचनामा ट्याप गर्नुहोस्"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"लक स्क्रिनमा माथितिर स्वाइप गर्नुहोस्"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"आफ्नो स्मार्ट वाच छनौट गर्नुहोस्"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"उपलब्ध स्मार्ट वाचहरू"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"रद्द गर्नुहोस्"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"पुष्टि गर्नुहोस्"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"तपाईं अब पूर्ण रूपमा तयार हुनुहुन्छ!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"तपाईं अब आफ्नो स्मार्ट वाच प्रयोग गरी लक स्क्रिनदेखि माथितिर स्वाइप गरेर वा सूचनामा ट्याप गरेर यो फोन अनलक गर्न सक्नुहुन्छ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"पूरा भयो"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"स्मार्ट वाच अनलक गर्ने सुविधा"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"तपाईं आफ्नो स्मार्ट वाच प्रयोग गरी लक स्क्रिनदेखि माथितिर स्वाइप गरेर वा सूचनामा ट्याप गरेर यो फोन अनलक गर्न सक्नुहुन्छ"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"स्मार्ट वाच अनलक गर्ने सुविधा प्रयोग गर्न तपाईंको स्मार्ट वाच अनिवार्य रूपमा अनलक गरिएको हुनु पर्छ, तपाईंको नाडीमा बाँधिएको हुनु पर्छ र यो फोनमा कनेक्ट हुनु पर्छ। कनेक्सन अवरुद्ध भयो भने तपाईं फोन अनलक गरेपछि मात्र स्मार्ट वाच अनलक गर्ने सुविधा प्रयोग गर्न सक्नुहुन्छ।\n\nयाद राख्नुहोस्:\nतपाईं एक पटकमा एउटा मात्र स्मार्ट वाच सेटअप गर्न सक्नुहुन्छ। अर्को स्मार्ट वाच कनेक्ट गर्न सर्वप्रथम अहिले कनेक्ट भइरहेको स्मार्ट वाच डिस्कनेक्ट गर्नुहोस्।"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"स्मार्ट वाच अनलक गर्ने सुविधाका बारेमा थप जान्नुहोस्"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"स्मार्ट वाच कनेक्ट गर्नुहोस्"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"स्मार्ट वाच डिस्कनेक्ट गर्नुहोस्"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"फिंगरप्रिन्ट तथा फेस अनलक"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"कार्य प्रोफाइलका लागि फेस र फिंगरप्रिन्ट अनलक"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"सेटअप गर्नु पर्ने हुन्छ"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"तपाईँले सायद यो पासकि अन्य उपकरणमा पनि टाइप गर्नुपर्छ।"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"समायोजित सेटमा कनेक्ट गर्न पुष्टि गर्नुहोस्"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"आफ्ना कन्ट्याक्ट र कल हिष्ट्री हेर्ने अनुमति दिनुहोस्"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"कन्ट्याक्ट र कल हिस्ट्री हेर्ने र प्रयोग गर्ने अनुमति पनि दिइयोस्"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"यो जानकारीको प्रयोग कल आएको जानकारी दिने लगायतका कुराका लागि प्रयोग गरिने छ"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> उपकरणसँग जडान गर्न सकेन।"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"उपलब्ध डिभाइस"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"यो सेवामार्फत Wi‑Fi आदान प्रदान गर्दै…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"जडान गर्दै…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"हटस्पट सेयर गर्नुहोस्"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"तपाईं नै हुनुहुन्छ भन्ने पुष्टि गर्नुहोस्"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"यो तपाईं नै हो भन्ने पुष्टि गर्नुहोस्"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi को पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"हटस्पटको पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"स्वतः जडान"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"नेटवर्क दायरामा छैन"</string>
<string name="wifi_forget" msgid="3485573280364015620">"बिर्सनुहोस्"</string>
<string name="wifi_modify" msgid="5127926476383659412">"परिमार्जन गर्नुहोस्"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"सञ्जाल बिर्सन विफल"</string>
<string name="wifi_save" msgid="2312643132472226807">"सेभ गर्नुहोस्"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"सञ्जाल बचत गर्न विफल"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"रद्द गर्नुहोस्"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"तपाईंको रोजाइको फ्रिक्वेन्सी उपलब्ध छैन भने हटस्पटले अर्कै फ्रिक्वेन्सी प्रयोग गर्न सक्छ। तपाईंले फ्रिक्वेन्सी परिवर्तन गर्नुभयो भने हटस्पटको सुरक्षासम्बन्धी सेटिङ पनि परिवर्तन हुन सक्छ।"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"६ GHz मा उपलब्ध छैन"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"तपाईंले हटस्पटको फ्रिक्वेन्सी बदल्नुभयो भने सुरक्षासम्बन्धी सेटिङ पनि बदलिन सक्छ"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"हटस्पट खुल्दै..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"हटस्पट बन्द गरिँदै..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"टेदरिङ उपलब्ध छैन"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"आफ्नो पासवर्ड बिर्सनुभयो?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"आफ्नो ढाँचा बिर्सनुभयो?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"आफ्नो PIN बिर्सनुभयो?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"जारी राख्नका लागि आफ्नो डिभाइसको ढाँचा प्रयोग गर्नुहोस्"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"जारी राख्न आफ्नो डिभाइसको PIN हाल्नुहोस्"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"जारी राख्नका लागि आफ्नो डिभाइसको पासवर्ड प्रविष्टि गर्नुहोस्"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"जारी राख्नका लागि आफ्नो कार्य प्रोफाइलको ढाँचा प्रयोग गर्नुहोस्"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"जारी राख्न आफ्नो प्याटर्न बनाउनुहोस्"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"जारी राख्न आफ्नो PIN हाल्नुहोस्"</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">"जारी राख्नका लागि आफ्नो कार्य प्रोफाइलको PIN हाल्नुहोस्"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"जारी राख्नका लागि आफ्नो कार्य प्रोफाइलको पासवर्ड प्रविष्टि गर्नुहोस्"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"थप सुरक्षाका लागि आफ्नो डिभाइसको ढाँचा प्रयोग गर्नुहोस्"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"वर्णन प्रदान गरिएको छैन।"</string>
<string name="settings_button" msgid="2195468788019730377">"सेटिङहरू"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"प्रकाशको संवेदनशीलता, फोटोफोबिया, अँध्यारो थिम, माइग्रेन, टाउको दुख्नु, रिडिङ मोड, रात्रि मोड, चमक घटाउनुहोस्, ह्वाइट पोइन्ट"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"प्रयोग गर्न सजिलो, पहुँच राख्न सजिलो, सहायता, सहायक"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"दृश्य, श्रवण शक्ति, दृष्टिविहीन, मोटर, निपुणता, सहायक, सहायता, प्रयोग गर्न सजिलो, एक्सेस गर्न सजिलो, हात, मद्दत"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"विन्डो म्याग्निफायर, जुम, जुम इन, कमजोर दृष्टि, ठुलो पार्नुहोस्, अझ ठुलो पार्नुहोस्"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"क्याप्सन, क्लोज्ड क्याप्सन, CC, लाइभ ट्रान्स्क्राइब, कमजोर श्रवण शक्ति, कान राम्रोसँग नसुन्ने समस्या, CART, स्पिच-टू-टेक्स्ट, सबटाइटल"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"कलर कन्ट्रास्ट"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"मांसपेशीको चाल, माउस"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"श्रवण यन्त्र, कमजोर श्रवण शक्ति, कान राम्रोसँग नसुन्ने समस्या, कक्लियर इम्प्लान्ट, एम्प्लिफिकेसन डिभाइस, साउन्ड प्रोसेसर"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"मोटर, माउस, बाह्य माउस, हेड माउस, एड्याप्टिभ माउस, ह्विलचेयर, जोयस्टिक"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"श्रवण यन्त्र, कमजोर श्रवण शक्ति, कान राम्रोसँग नसुन्ने समस्या, कक्लियर इम्प्लान्ट, एम्प्लिफिकेसन डिभाइस, साउन्ड प्रोसेसर, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"कमजोर श्रवण शक्ति, कान राम्रोसँग नसुन्ने समस्या, क्याप्सन, टेलिटाइप, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"तीन बटन"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"निपुणता, मोटर, ज्येष्ठ नागरिक, अर्थोटिक्स, rsi, स्टरोक, ट्रेमर, मल्टीपल स्क्लेरोसिस, सेरेब्रल पाल्सी, काम्ने रोग, शरिरका अङ्ग बारम्बार गल्ने रोग, हात"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ढिलाइ, निपुणता, ज्येष्ठ नागरिक"</string>
<string name="print_settings" msgid="8519810615863882491">"प्रिन्टिङ"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"निष्क्रिय छ"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{प्रिन्टसम्बन्धी एउटा सेवा अन छ}other{प्रिन्टसम्बन्धी # वटा सेवा अन छन्}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"डेटाको खपतसम्बन्धी चेतावनी: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"डेटाको सीमा: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"डेटाको खपतसम्बन्धी चेतावनी: <xliff:g id="ID_1">^1</xliff:g> / डेटाको सीमा: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"तपाईंको वाहकले तपाईंको डिभाइसभन्दा फरक तरिकाले डेटाको गणना गर्न सक्छ"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"मोबाइल सेवा प्रदायकको नेटवर्कले प्रयोग गरेको डेटा समावेश गरिएको छैन"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> प्रयोग गरियो"</string>
<string name="set_data_warning" msgid="1685771882794205462">"डेटाको खपतसम्बन्धी चेतावनी दिइयोस्"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"अटोफिल सेवा"</string>
<string name="default_autofill_app" msgid="372234803718251606">"डिफल्ट अटोफिल सेवा"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"पासवर्डहरू"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"पासवर्ड, पासकी र डेटासम्बन्धी सेवा"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"पासवर्ड, पासकी र डेटासम्बन्धी सेवा"</string>
<string name="credman_credentials" msgid="4931371941253324143">"थप प्रदायकहरू"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# पासवर्ड}other{# वटा पासवर्ड}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"स्वतः, भर्नुहोस्, अटोफिल, पासवर्ड"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"अटो, फिल, अटोफिल, डेटा, पासकी, पासवर्ड"</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="4951846866327737417">"<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="2642776965060619988">"पासवर्ड, पासकी र डेटासम्बन्धी सेवा"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"पासवर्ड, पासकी र डेटासम्बन्धी सेवा"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s अफ गर्ने हो?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>यो सेवा अफ गर्ने हो?</b> <br/> <br/> तपाईंले साइन इन गर्दा सेभ गरिएका पासवर्ड, पासकी, भुक्तानी विधिलगायतका अन्य जानकारी अटोफिल हुने छैनन्। सेभ गरिएका जानकारी प्रयोग गर्न पासवर्ड, पासकी वा डेटा छनौट गर्नुहोस्।"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s प्रयोग गर्ने हो?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ले के-कस्ता जानकारी स्वतः भर्न सकिन्छ भन्ने कुरा निर्धारण गर्न तपाईंको स्क्रिनमा भएका कुराहरू प्रयोग गर्छ।"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"पासवर्ड, पासकी र डेटासम्बन्धी सेवाहरूको सीमा"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"तपाईं उही समयमा बढीमा ५ वटा पासवर्ड, पासकी तथा डेटासम्बन्धी सेवा प्रयोग गर्न सक्नुहुन्छ। थप सेवा हाल्न हाल प्रयोगमा रहेको कुनै सेवा अफ गर्नुहोस्।"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"पासवर्ड, पासकी र डेटासम्बन्धी सेवाहरूको सीमा"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"तपाईं एक पटकमा बढीमा ५ वटा पासवर्ड, पासकी र डेटासम्बन्धी सेवा चयन गर्न सक्नुहुन्छ। थप सेवा चयन गर्न हाल प्रयोगमा रहेको कुनै सेवा अफ गर्नुहोस्।"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"अफ गर्नुहोस्"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"स्वतः भरण"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"लगिङ लेभल"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"कम्प्याटिबल मिडियाको अडियो अझै इमर्सिभ हुन्छ"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"हेड ट्र्याकिङ"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"तपाईंले थप स्वाभाविक देखिनका लागि टाउको हल्लाउँदा अडियो बदलिन्छ"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"अडियो डिभाइसको प्रकार"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"अज्ञात"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"स्पिकर"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"हेडफोनहरू"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"कार किट"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"अन्य"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"इन्टरनेटबाट सामग्री डाउनलोड गर्ने स्पिडको सीमा"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"इन्टरनेटबाट सामग्री डाउनलोड गर्ने स्पिडको सीमा तोक्नुहोस्। इन्टरनेट सेवा प्रदान गर्ने जुनसुकै सेवाहरूमा यस्तो सीमा तोक्न सकिन्छ।"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"इन्टरनेटबाट सामग्री डाउनलोड गर्ने स्पिडको सीमा तोक्नुहोस्"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"मध्यम"</string>
<string name="contrast_high" msgid="3988567609694797696">"उच्च"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"यो एप एउटा विन्डोमा मात्र खोल्न मिल्छ"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"सेवा अन छ"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"सेवा अफ छ"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"सर्टकट अफ छ"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"अन छ"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"अफ छ"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"अफ छ"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"अफ छ"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"अन छ"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"अफ छ"</string>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index 6e2ca64..a4c7290 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Na 1 minuut"</item>
<item msgid="1574040255478150028">"Na 5 minuten"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Aanpasbare helderheid aanzetten om de batterijduur te verlengen"</item>
+ <item msgid="2256666063790193306">"Time-out voor scherm beperken om de batterijduur te verlengen"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 8f2d975..74968c3 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -122,7 +122,7 @@
<string name="stylus_default_notes_app" msgid="4165657465911764628">"Knop bovenop indrukken"</string>
<string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (werkprofiel)"</string>
<string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Schrijven in tekstvelden"</string>
- <string name="stylus_ignore_button" msgid="7734540973145241391">"Alle drukken op knoppen met stylus negeren"</string>
+ <string name="stylus_ignore_button" msgid="7734540973145241391">"Indrukken van stylusknop negeren"</string>
<string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
<string name="date_and_time" msgid="1788358029823431692">"Datum en tijd"</string>
<string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Niet opgegeven"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Vrouw"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Man"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Geselecteerde taal verwijderen?}other{Geselecteerde talen verwijderen?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst wordt getoond in een andere taal."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Kan niet alle talen verwijderen"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Gezicht en <xliff:g id="WATCH">%s</xliff:g> toegevoegd"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gezicht, vingerafdruk en <xliff:g id="WATCH">%s</xliff:g> toegevoegd"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gezicht, vingerafdrukken en <xliff:g id="WATCH">%s</xliff:g> toegevoegd"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Je smartwatch instellen"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Ontgrendelen via smartwatch is een handige manier om deze telefoon te ontgrendelen, bijvoorbeeld als je handen nat zijn of je gezicht niet wordt herkend.\n\nJe kunt deze telefoon in de volgende situaties ontgrendelen met je smartwatch:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Niet nu"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Doorgaan"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Meer"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Hoe het werkt"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Je smartwatch moet ontgrendeld zijn, om je pols zitten en in de buurt van deze telefoon zijn. Zolang je je smartwatch om je pols draagt, hoef je deze niet opnieuw te ontgrendelen."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Als deze telefoon wordt ontgrendeld, krijg je een melding op je smartwatch. Als de ontgrendeling per ongeluk was, tik je op de melding om de telefoon weer te vergrendelen."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Jij hebt het voor het zeggen"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Je kunt je smartwatch op elk moment uit Ontgrendelen via smartwatch verwijderen in Instellingen"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Tik op een melding"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swipe omhoog op het vergrendelscherm"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Je smartwatch kiezen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Beschikbare smartwatches"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Annuleren"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bevestigen"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Dat is alles."</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Je kunt je smartwatch nu gebruiken om deze telefoon te ontgrendelen als je op het vergrendelscherm omhoog swipet of op een melding tikt"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Klaar"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Ontgrendelen via smartwatch"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Je kunt je smartwatch gebruiken om deze telefoon te ontgrendelen als je op het vergrendelscherm omhoog swipet of op een melding tikt"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Voor gebruik van Ontgrendelen via smartwatch moet je smartwatch zijn ontgrendeld, om je pols zitten, binnen bereik zijn en zijn gekoppeld aan deze telefoon. Als de verbinding wordt verstoord, moet je de telefoon ontgrendelen voordat je Ontgrendelen via smartwatch kunt gebruiken.\n\nOnthoud het volgende:\nEr kan maar één smartwatch tegelijk zijn ingesteld. Als je nog een smartwatch wilt toevoegen, verwijder je de huidige."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Meer informatie over Ontgrendelen via smartwatch"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Smartwatch toevoegen"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Smartwatch verwijderen"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Ontgrendelen via vingerafdruk en gezicht"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ontgrendelen via gezichtsherkenning en vingerafdruk voor werk"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Instellen nodig"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Je moet deze toegangscode wellicht ook opgeven op het andere apparaat."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bevestigen om te koppelen met de gecoördineerde set"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Toegang geven tot je contacten en gespreksgeschiedenis"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Ook toegang geven tot contacten en gespreksgeschiedenis"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"De informatie wordt onder andere gebruikt voor gespreksaankondigingen"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Kan geen verbinding maken met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Beschikbare apparaten"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wifi delen met dit apparaat…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Verbinden…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot delen"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifiëren dat jij het bent"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Bevestig dat jij het bent"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wifi-wachtwoord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Wachtwoord hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatisch verbinding maken"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Netwerk is niet binnen bereik"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Vergeten"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Aanpassen"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Vergeten van netwerk is mislukt"</string>
<string name="wifi_save" msgid="2312643132472226807">"Opslaan"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Opslaan van netwerk is mislukt"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Annuleren"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Als je voorkeursfrequentie niet beschikbaar is, kan je hotspot een andere gebruiken. Als je de frequentie wijzigt, kunnen de hotspot-beveiligingsinstellingen veranderen."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Niet beschikbaar met 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Als je de frequentie van de hotspot wijzigt, kunnen de beveiligingsinstellingen veranderen"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Hotspot aanzetten…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Hotspot uitzetten…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering niet beschikbaar"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Je wachtwoord vergeten?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Je patroon vergeten?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Je pincode vergeten?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Teken het patroon van je apparaat om door te gaan"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Voer de pincode van het apparaat in om door te gaan"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Geef het wachtwoord van je apparaat op om door te gaan"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Geef het patroon van je werkprofiel op om door te gaan"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Teken je patroon om door te gaan"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Voer je pincode in om door te gaan"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Voer je wachtwoord in om door te gaan"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Teken je werkpatroon om door te gaan"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Geef de pincode van je werkprofiel op om door te gaan"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Geef het wachtwoord van je werkprofiel op om door te gaan"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Geef voor extra veiligheid je apparaatpatroon op"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Geen beschrijving opgegeven."</string>
<string name="settings_button" msgid="2195468788019730377">"Instellingen"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"lichtgevoeligheid, fotofobie, donker thema, migraine, hoofdpijn, leesstand, nachtstand, helderheid verlagen, witpunt"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"gebruiksgemak, makkelijke toegang, ondersteuning, ondersteunend"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"zicht, gehoor, blind, doof, motoriek, mobiliteit, ondersteunend, ondersteuning, gebruiksgemak, toegankelijkheid, hand, hulp"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"venstervergroting, zoom, vergroting, slechtziend, vergroten, groter maken"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"ondertiteling, ondertiteling voor doven en slechthorenden, CC, Live transcriptie, slechthorend, gehoorverlies, CART, spraak naar tekst, ondertitels"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kleurcontrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorisch, muis"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"hoortoestellen, slechthorend, gehoorverlies, cochleaire implantaten, versterkingsapparaten, geluidsprocessors"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motoriek, muis, externe muis, hoofdmuis, aanpasbare muis, rolstoel, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"hoortoestellen, slechthorend, gehoorverlies, cochleaire implantaten, versterkingsapparaten, geluidsprocessors, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"slechthorend, gehoorverlies, ondertiteling, teletype, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"3 knoppen"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"mobiliteit, motoriek, senior, artritis, rsi, beroerte, tremor, multiple sclerosis, hersenverlamming, trillen, repetitive strain injury, hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"vertraging, mobiliteit, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Afdrukken"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Uit"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 afdrukservice aan}other{# afdrukservices aan}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> datawaarschuwing"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> datalimiet"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> datawaarschuwing/<xliff:g id="ID_2">^2</xliff:g> datalimiet"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Het door de provider berekende dataverbruik kan afwijken van de berekening van het apparaat"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Toont geen data die door providernetwerken worden gebruikt"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> gebruikt"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Datawaarschuwing instellen"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Service voor automatisch invullen"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Standaardservice voor automatisch invullen"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Wachtwoorden"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Wachtwoorden, toegangssleutels en gegevensservices"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Wachtwoorden, toegangssleutels en gegevensservices"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Aanvullende providers"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# wachtwoord}other{# wachtwoorden}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatisch, invullen, automatisch invullen, wachtwoord"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatisch, invullen, automatisch invullen, gegevens, toegangssleutel, wachtwoord"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Zorg dat je deze app vertrouwt</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> maakt gebruik van de content op je scherm om te bepalen wat automatisch kan worden aangevuld."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b><xliff:g id=app_name example=Provider>%1$s</xliff:g> gebruiken?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> gebruikt wat er op je scherm staat om te bepalen wat automatisch kan worden ingevuld. Nieuwe wachtwoorden, toegangssleutels en andere informatie worden vanaf nu hier opgeslagen."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Wachtwoorden, toegangssleutels en gegevensservices"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Wachtwoorden, toegangssleutels en gegevensservices"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s uitzetten?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Deze service uitzetten?</b> <br/> <br/> Opgeslagen informatie zoals wachtwoorden, toegangssleutels, betaalmethoden en andere informatie wordt niet automatisch ingevuld als je inlogt. Kies een wachtwoord, toegangssleutel of gegevensservice om je opgeslagen informatie te gebruiken."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s gebruiken?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s gebruikt wat er op je scherm staat om te bepalen wat automatisch kan worden ingevuld."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limiet voor wachtwoorden, toegangssleutels en gegevensservices"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Je kunt maximaal 5 wachtwoorden, toegangssleutels en gegevensservices tegelijk hebben. Zet een service uit om meer toe te voegen."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limiet voor wachtwoorden, toegangssleutels en gegevensservices"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Je kunt maximaal 5 wachtwoorden, toegangssleutels en gegevensservices tegelijk actief hebben. Zet een service uit om meer toe te voegen."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Uitzetten"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automatisch invullen"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Logniveau"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Compatibele media leveren een royaler geluid"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Bewegingen van het hoofd volgen"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"De audio wordt aangepast als je je hoofd beweegt, voor een natuurlijker geluid"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type audioapparaat"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Onbekend"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Hoofdtelefoon"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Carkit"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Anders"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limiet voor downloadsnelheid van netwerk"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Stel een limiet in voor inkomend verkeer voor de netwerkbandbreedte. Deze wordt toegepast op alle netwerken die internetconnectiviteit bieden"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Limiet voor downloadsnelheid van netwerk instellen"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Gemiddeld"</string>
<string name="contrast_high" msgid="3988567609694797696">"Hoog"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Deze app kan maar in 1 venster worden geopend"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Service aan"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Service uit"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Sneltoets uit"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aan"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Uit"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Uit"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Uit"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Aan"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Uit"</string>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 563d018..c4faee2 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 ମିନିଟ ପରେ"</item>
<item msgid="1574040255478150028">"5 ମିନିଟ ପରେ"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"ବେଟେରୀ ଲାଇଫକୁ ବଢ଼ାଇବା ପାଇଁ ଆଡେପ୍ଟିଭ ଉଜ୍ଜ୍ୱଳତା ଚାଲୁ କରନ୍ତୁ"</item>
+ <item msgid="2256666063790193306">"ବେଟେରୀ ଲାଇଫକୁ ବଢ଼ାଇବା ପାଇଁ ସ୍କ୍ରିନ ଟାଇମଆଉଟ କମ କରନ୍ତୁ"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index c719552..e17a026 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"ନିର୍ଦ୍ଦିଷ୍ଟ କରାଯାଇନାହିଁ"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"ସ୍ତ୍ରୀଲିଙ୍ଗ"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"ପୁଲିଙ୍ଗ"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ଚୟନିତ ଭାଷାକୁ କାଢ଼ି ଦେବେ?}other{ଚୟନିତ ଭାଷାଗୁଡ଼ିକୁ କାଢ଼ି ଦେବେ?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"ଅନ୍ୟ ଭାଷାରେ ଲେଖା ଦେଖାଦେବ।"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ସମସ୍ତ ଭାଷାଗୁଡ଼ିକୁ ଅପସାରଣ କରିପାରିବେ ନାହିଁ"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ଫେସ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ଫେସ, ଟିପଚିହ୍ନ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ଫେସ, ଟିପଚିହ୍ନ ଏବଂ <xliff:g id="WATCH">%s</xliff:g> ଯୋଗ କରାଯାଇଛି"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ଆପଣଙ୍କ ୱାଚ ସେଟ ଅପ କରନ୍ତୁ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"ଏହି ଫୋନକୁ ଅନଲକ କରିବା ପାଇଁ ୱାଚ ଅନଲକ ଅନ୍ୟ ଏକ ସୁବିଧାଜନକ ଉପାୟ ଅଟେ, ଉଦାହରଣ ସ୍ୱରୂପ, ଯେତେବେଳେ ଆପଣଙ୍କ ଆଙ୍ଗୁଠି ଓଦା ଥାଏ କିମ୍ବା ଫେସ ଚିହ୍ନଟ ହୁଏ ନାହିଁ।\n\nଏହି ଫୋନକୁ ଅନଲକ କରିବା ପାଇଁ ଆପଣ ଆପଣଙ୍କ ୱାଚକୁ ବ୍ୟବହାର କରିପାରିବେ ଯେତେବେଳେ ଆପଣ:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ବର୍ତ୍ତମାନ ନୁହେଁ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"ଜାରି ରଖନ୍ତୁ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"ଅଧିକ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ଏହା କିପରି କାମ କରେ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ଆପଣଙ୍କ ରିଷ୍ଟରେ ଆପଣଙ୍କର ୱାଚକୁ ଅନଲକ କରାଯିବା ଆବଶ୍ୟକ ଏବଂ ଏହା ଏହି ଫୋନର ଆଖପାଖରେ ଥିବା ଆବଶ୍ୟକ। ଆପଣଙ୍କ ୱାଚ ରିଷ୍ଟରେ ଥିବା ସମୟରେ ଆପଣ ଏହାକୁ ଅନଲକ କରିବାର ଆବଶ୍ୟକତା ନାହିଁ।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ଯେତେବେଳେ ଏହି ଫୋନକୁ ଅନଲକ କରାଯାଏ, ଆପଣଙ୍କ ୱାଚରେ ଆପଣଙ୍କୁ ସୂଚିତ କରାଯିବ। ଯଦି ଆପଣ ଚାହୁଁ ନଥିବା ସମୟରେ ଏହାକୁ ଅନଲକ କରାଯାଇଥାଏ, ତେବେ ଫୋନକୁ ପୁଣି ଲକ କରିବା ପାଇଁ ବିଜ୍ଞପ୍ତିରେ ଟାପ କରନ୍ତୁ।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ଆପଣଙ୍କ ନିୟନ୍ତ୍ରଣରେ ଅଛି"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ଆପଣ ସେଟିଂସରେ ଯେ କୌଣସି ସମୟରେ ୱାଚ ଅନଲକରୁ ଆପଣଙ୍କ ୱାଚକୁ କାଢ଼ି ଦେଇପାରିବେ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ଏକ ବିଜ୍ଞପ୍ତିରେ ଟାପ କରନ୍ତୁ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ଲକ ସ୍କ୍ରିନରେ ଉପରକୁ ସ୍ୱାଇପ କରନ୍ତୁ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ଆପଣଙ୍କ ୱାଚ ବାଛନ୍ତୁ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ଉପଲବ୍ଧ ୱାଚଗୁଡ଼ିକ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ବାତିଲ କରନ୍ତୁ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ଆପଣ ସମ୍ପୂର୍ଣ୍ଣ ପ୍ରସ୍ତୁତ!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ଆପଣ ଲକ ସ୍କ୍ରିନରେ ଉପରକୁ ସ୍ୱାଇପ କଲେ କିମ୍ବା ଏକ ବିଜ୍ଞପ୍ତିରେ ଟାପ କଲେ ଏହି ଫୋନକୁ ଅନଲକ କରିବା ପାଇଁ ଆପଣ ବର୍ତ୍ତମାନ ଆପଣଙ୍କ ୱାଚକୁ ବ୍ୟବହାର କରିପାରିବେ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ହୋଇଗଲା"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ୱାଚ ଅନଲକ"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ଆପଣ ଲକ ସ୍କ୍ରିନରେ ଉପରକୁ ସ୍ୱାଇପ କଲେ କିମ୍ବା ଏକ ବିଜ୍ଞପ୍ତିରେ ଟାପ କଲେ ଏହି ଫୋନକୁ ଅନଲକ କରିବା ପାଇଁ ଆପଣ ଆପଣଙ୍କ ୱାଚକୁ ବ୍ୟବହାର କରିପାରିବେ"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ୱାଚ ଅନଲକକୁ ବ୍ୟବହାର କରିବା ପାଇଁ, ଆଖପାଖରେ ଆପଣଙ୍କର ରିଷ୍ଟରେ ଆପଣଙ୍କ ୱାଚକୁ ଅନଲକ କରାଯିବା ଦରକାର ଏବଂ ଏହା ଏହି ଫୋନ ସହ କନେକ୍ଟ ହେବା ଆବଶ୍ୟକ। ଯଦି କନେକ୍ସନ ବାଧାପ୍ରାପ୍ତ ହୁଏ, ତେବେ ଆପଣ ୱାଚ ଅନଲକ ବ୍ୟବହାର କରିବା ପୂର୍ବରୁ ଆପଣଙ୍କୁ ଫୋନ ଅନଲକ କରିବାକୁ ହେବ।\n\nମନେ ରଖନ୍ତୁ:\nଥରକେ ଆପଣ କେବଳ ଗୋଟିଏ ୱାଚ ସେଟ ଅପ କରିପାରିବେ। ଅନ୍ୟ ଏକ ୱାଚ ଯୋଗ କରିବା ପାଇଁ ପ୍ରଥମେ ବର୍ତ୍ତମାନର ୱାଚକୁ କାଢ଼ି ଦିଅନ୍ତୁ।"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ୱାଚ ଅନଲକ ବିଷୟରେ ଅଧିକ ଜାଣନ୍ତୁ"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ୱାଚ ଯୋଗ କରନ୍ତୁ"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ୱାଚକୁ କାଢ଼ି ଦିଅନ୍ତୁ"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ଟିପଚିହ୍ନ ଏବଂ ଫେସ ଅନଲକ"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ୱାର୍କ ପାଇଁ ଫେସ ଏବଂ ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ଅନଲକ"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ସେଟଅପ ଆବଶ୍ୟକ"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ଏହି ପାସ୍-କୀକୁ ଅନ୍ୟ ଡିଭାଇସ୍ରେ ମଧ୍ୟ ଟାଇପ୍ କରିବା ଆବଶ୍ୟକ ହୋଇପରେ।"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"କୋର୍ଡିନେଟ କରାଯାଇଥିବା ସେଟ ସହ ପେୟାର କରିବାକୁ ସୁନିଶ୍ଚିତ କରନ୍ତୁ"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ଆପଣଙ୍କ କଣ୍ଟାକ୍ଟ ଓ କଲ ହିଷ୍ଟୋରୀକୁ ଆକ୍ସେସ କରିବାର ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"କଣ୍ଟାକ୍ଟ ଏବଂ କଲ ଇତିହାସକୁ ଆକ୍ସେସ କରିବା ପାଇଁ ମଧ୍ୟ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ସୂଚନାକୁ କଲ ଘୋଷଣା ଏବଂ ଆହୁରି ଅଧିକ ପାଇଁ ବ୍ୟବହାର କରାଯିବ"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ସଂଯୋଗ ସ୍ଥାପନା କରିପାରୁନାହିଁ।"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ଉପଲବ୍ଧ ଡିଭାଇସ୍"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ଏହି ଡିଭାଇସ୍ ସହ ୱାଇ-ଫାଇ ସେୟାର୍ କରାଯାଉଛି…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"ସଂଯୋଗ କରୁଛି…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ହଟସ୍ପଟ୍ ସେୟାର୍ କରନ୍ତୁ"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ଏହା ଆପଣ ବୋଲି ଯାଞ୍ଚ କରନ୍ତୁ"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ସୁନିଶ୍ଚିତ କରାନ୍ତୁ ଏହା ଆପଣ ଅଟନ୍ତି"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ୱାଇ-ଫାଇ ପାସୱାର୍ଡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ହଟସ୍ପଟ୍ ପାସୱାର୍ଡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"ସ୍ଵତଃ-ସଂଯୋଗ"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ନେଟ୍ୱର୍କ ପରିସୀମା ମଧ୍ୟରେ ନାହିଁ"</string>
<string name="wifi_forget" msgid="3485573280364015620">"ଭୁଲିଯାଆନ୍ତୁ"</string>
<string name="wifi_modify" msgid="5127926476383659412">"ସଂଶୋଧନ"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ନେଟ୍ୱର୍କ ଭୁଲିଯିବାରେ ବିଫଳ ହେଲା"</string>
<string name="wifi_save" msgid="2312643132472226807">"ସେଭ୍ କରନ୍ତୁ"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"ନେଟୱାର୍କ୍ ସେଭ୍ କରି ପାରିଲା ନାହିଁ"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"ବାତିଲ"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"ଯଦି ଆପଣଙ୍କ ପସନ୍ଦର ଫ୍ରିକ୍ୱେନ୍ସି ଉପଲବ୍ଧ ନାହିଁ, ତେବେ ଆପଣଙ୍କ ହଟସ୍ପଟ ଏକ ଭିନ୍ନ ଫ୍ରିକ୍ୱେନ୍ସି ବ୍ୟବହାର କରିପାରେ। ଯଦି ଆପଣ ଫ୍ରିକ୍ୱେନ୍ସି ବଦଳାନ୍ତି ତେବେ ହଟସ୍ପଟ ସୁରକ୍ଷା ସେଟିଂସ ପରିବର୍ତ୍ତନ ହୋଇପାରେ।"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz ସହ ଉପଲବ୍ଧ ନାହିଁ"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"ଯଦି ଆପଣ ହଟସ୍ପଟର ଫ୍ରିକ୍ୱେନ୍ସି ବଦଳାନ୍ତି ତେବେ ସୁରକ୍ଷା ସେଟିଂସ ପରିବର୍ତ୍ତନ ହୋଇପାରେ"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"ହଟସ୍ପଟ ଅନ କରୁଛି…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"ହଟସ୍ପଟ୍ ଅଫ୍ କରାଯାଉଛି…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ଟିଥରିଂ ଉପଲବ୍ଧ ନାହିଁ"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"ଆପଣଙ୍କ ପାସୱାର୍ଡ ଭୁଲି ଯାଇଛନ୍ତି କି?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ପାଟର୍ନ ଭୁଲି ଯାଇଛନ୍ତି କି?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN ଭୁଲି ଯାଇଛନ୍ତି କି?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ଜାରି ରଖିବା ପାଇଁ ନିଜ ଡିଭାଇସ ପାଟର୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ଡିଭାଇସର PIN ଲେଖନ୍ତୁ"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ଜାରି ରଖିବାକୁ ନିଜ ଡିଭାଇସ୍ର ପାସ୍ୱର୍ଡ ଲେଖନ୍ତୁ"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ଜାରି ରଖିବାକୁ ନିଜ କାର୍ଯ୍ୟ ପାଟର୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ପାଟର୍ନ ଡ୍ର କରନ୍ତୁ"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ PIN ଲେଖନ୍ତୁ"</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">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ୱାର୍କ PIN ଲେଖନ୍ତୁ"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ କାର୍ଯ୍ୟ ପାସ୍ୱର୍ଡ ଲେଖନ୍ତୁ"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ଅଧିକ ସୁରକ୍ଷା ପାଇଁ ନିଜ ଡିଭାଇସ ପାଟର୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"କୌଣସି ବ୍ୟାଖ୍ୟା ଦିଆଯାଇ ନାହିଁ।"</string>
<string name="settings_button" msgid="2195468788019730377">"ସେଟିଂସ"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ଆଲୋକ ସମ୍ବେଦନଶୀଳତା, ଫଟୋଫୋବିଆ, ଗାଢ଼ା ଥିମ୍, ଅଧକପାଳି, ମୁଣ୍ଡବ୍ୟଥା, ରିଡିଂ ମୋଡ୍, ନାଇଟ୍ ମୋଡ୍, ଉଜ୍ଜ୍ୱଳତା କମାନ୍ତୁ, ହ୍ୱାଇଟ୍ ପଏଣ୍ଟ"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ବ୍ୟବହାର କରିବା ପାଇଁ ସହଜ, ଆକ୍ସେସ୍ କରିବାକୁ ସହଜ, ସହାୟତା, ସହାୟକ"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"ଦୃଷ୍ଟିଶକ୍ତି, ଶୁଣିବା, ଦୃଷ୍ଟିହୀନ, ମୋଟର, ଦକ୍ଷତା, ଆସିଷ୍ଟିଭ, ସହାୟତା, ବ୍ୟବହାର କରିବା ପାଇଁ ସହଜ, ଆକ୍ସେସ କରିବାକୁ ସହଜ, ହାତ, ସାହାଯ୍ୟ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ୱିଣ୍ଡୋ ମ୍ୟାଗ୍ନିଫାୟର୍, ଜୁମ୍, ମ୍ୟାଗ୍ନିଫିକେସନ୍, କମ୍ ଦେଖାଯାଉଥିବା, ବଡ଼ କରନ୍ତୁ, ଆହୁରି ବଡ଼ କରନ୍ତୁ"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"କ୍ୟାପସନ୍, ବନ୍ଦ ଥିବା କ୍ୟାପସନ୍, CC, ଲାଇଭ୍ ଟ୍ରାନ୍ସସ୍କ୍ରାଇବ୍, କମ୍ ଶୁଣୁଥିବା, ଶ୍ରବଣଶକ୍ତିରେ ହ୍ରାସ, CART, ସ୍ପିଚ୍ ଟୁ ଟେକ୍ସଟ୍, ସବଟାଇଟେଲ୍"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"ରଙ୍ଗ କଣ୍ଟ୍ରାଷ୍ଟ"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"ମୋଟର, ମାଉସ୍"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"ଶ୍ରବଣ ଯନ୍ତ୍ର, କମ ଶୁଣା ଯାଉଥିବା ଲୋକ, ଶ୍ରବଣ ଶକ୍ତିରେ ହ୍ରାସ, କକଲିୟର ଇମ୍ପ୍ଲାଣ୍ଟ, ଆମ୍ପ୍ଲିଫିକେସନ ଡିଭାଇସ, ସାଉଣ୍ଡ ପ୍ରୋସେସରଗୁଡ଼ିକ"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"ମୋଟର, ମାଉସ, ଏକ୍ସଟର୍ନଲ ମାଉସ, ହେଡ ମାଉସ, ଆଡେପ୍ଟିଭ ମାଉସ, ହୁଇଲଚେୟାର, ଜଏଷ୍ଟିକ"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"ଶ୍ରବଣ ଯନ୍ତ୍ର, କମ ଶୁଣା ଯାଉଥିବା ଲୋକ, ଶ୍ରବଣ ଶକ୍ତିରେ ହ୍ରାସ, କକଲିୟର ଇମ୍ପ୍ଲାଣ୍ଟ, ଆମ୍ପ୍ଲିଫିକେସନ ଡିଭାଇସ, ସାଉଣ୍ଡ ପ୍ରୋସେସରଗୁଡ଼ିକ, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"କମ୍ ଶୁଣୁଥିବା, ଶ୍ରବଣଶକ୍ତିରେ ହ୍ରାସ, କ୍ୟାପସନ୍, ଟେଲିଟାଇପ୍, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ତିନୋଟି ବଟନ"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ଦକ୍ଷତା, ମୋଟର, ସିନିଅର, ଆର୍ଥରାଇଟିସ, rsi, ଷ୍ଟ୍ରୋକ, ଟ୍ରେମର, ମଲ୍ଟିପୁଲ ସ୍କ୍ଲେରୋସିସ, ସେରେବ୍ରାଲ ପାଲସି, ଥରିବା, ବାରମ୍ବାର ଚାପ ଜନିତ ଆଘାତ, ହାତ"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ବିଳମ୍ବ, ଦକ୍ଷତା, ସିନିଅର"</string>
<string name="print_settings" msgid="8519810615863882491">"ପ୍ରିଣ୍ଟିଂ"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ବନ୍ଦ"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1ଟି ପ୍ରିଣ୍ଟ ସେବା ଚାଲୁ ଅଛି}other{#ଟି ପ୍ରିଣ୍ଟ ସେବା ଚାଲୁ ଅଛି}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g>ର ଡାଟା ସମ୍ପର୍କିତ ଚେତାବନୀ"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g>ର ଡାଟା ସୀମା"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g>ର ଡାଟା ସମ୍ପର୍କିତ ଚେତାବନୀ / <xliff:g id="ID_2">^2</xliff:g>ର ଡାଟା ସୀମା"</string>
- <string name="operator_warning" msgid="5672761970087591211">"ଡିଭାଇସ୍ର ଗଣନାଠାରୁ କେରିଅର୍ର ଡାଟା ଗଣନା ଭିନ୍ନ ହୋଇପାରେ।"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"କ୍ୟାରିଅର୍ ନେଟୱାର୍କଗୁଡ଼ିକ ଦ୍ୱାରା ବ୍ୟବହୃତ ଡାଟାକୁ ବାଦ୍ ଦିଆଯାଇଛି"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ବ୍ୟବହୃତ"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ଡାଟା ଚେତାବନୀ ସେଟ୍ କରନ୍ତୁ"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"ସ୍ୱତଃପୂରଣ ସେବା"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ଡିଫଲ୍ଟ ଅଟୋଫିଲ ସେବା"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"ପାସୱାର୍ଡଗୁଡ଼ିକ"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକ"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକ"</string>
<string name="credman_credentials" msgid="4931371941253324143">"ଅତିରିକ୍ତ ପ୍ରଦାନକାରୀ"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{#ଟି ପାସୱାର୍ଡ}other{#ଟି ପାସୱାର୍ଡ}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ସ୍ୱତଃ, ପୂରଣ, ସ୍ୱତଃପୂରଣ, ପାସୱାର୍ଡ"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ସ୍ୱତଃ, ପୂରଣ, ଅଟୋଫିଲ, ଡାଟା, ପାସକୀ, ପାସୱାର୍ଡ"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>ଆପଣ ଏହି ଆପ୍କୁ ବିଶ୍ୱାସ କରୁଥିବା ନିଶ୍ଚିତ କରନ୍ତୁ</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> କ\'ଣ ଅଟୋଫିଲ୍ କରାଯାଇପାରିବ ନିର୍ଦ୍ଧାରଣ କରିବା ପାଇଁ, Google Autofill ଆପଣଙ୍କ ସ୍କ୍ରୀନ୍ରେ ଯାହା ଥାଏ, ତାହା ବ୍ୟବହାର କରେ।"</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"କଣ ଅଟୋଫିଲ କରାଯାଇପାରିବ ତାହା ସ୍ଥିର କରିବାକୁ <b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଯାହା ଥାଏ ତାକୁ ବ୍ୟବହାର କରେ। ବର୍ତ୍ତମାନଠାରୁ ନୂଆ ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଅନ୍ୟ ସୂଚନା ଏଠାରେ ସେଭ ହେବ।"</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକ"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକ"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s ବନ୍ଦ କରିବେ?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ଏହି ସେବାକୁ ବନ୍ଦ କରିବେ?</b> <br/> <br/> ଆପଣ ସାଇନ ଇନ କରିବା ସମୟରେ ପାସୱାର୍ଡ, ପାସକୀ, ପେମେଣ୍ଟ ପଦ୍ଧତି ପରି ସେଭ କରାଯାଇଥିବା ସୂଚନା ଏବଂ ଅନ୍ୟ ସୂଚନା ପୂରଣ ହେବ ନାହିଁ। ଆପଣଙ୍କ ସେଭ କରାଯାଇଥିବା ସୂଚନା ବ୍ୟବହାର କରିବାକୁ ଏକ ପାସୱାର୍ଡ, ପାସକୀ କିମ୍ବା ଡାଟା ସେବା ବାଛନ୍ତୁ।"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$sକୁ ବ୍ୟବହାର କରିବେ?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"କଣ ଅଟୋଫିଲ କରାଯାଇପାରିବ ତାହା ସ୍ଥିର କରିବାକୁ %1$s ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଯାହା ଥାଏ ତାକୁ ବ୍ୟବହାର କରେ।"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକର ସୀମା"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"ସମାନ ସମୟରେ ଆପଣ 5ଟି ପର୍ଯ୍ୟନ୍ତ ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାକୁ ସକ୍ରିୟ ରଖିପାରିବେ। ଅଧିକ ଯୋଗ କରିବା ପାଇଁ ଏକ ସେବାକୁ ବନ୍ଦ କରନ୍ତୁ।"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାଗୁଡ଼ିକର ସୀମା"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"ସମାନ ସମୟରେ ଆପଣ 5 ପର୍ଯ୍ୟନ୍ତ ପାସୱାର୍ଡ, ପାସକୀ ଏବଂ ଡାଟା ସେବାକୁ ସକ୍ରିୟ ରଖିପାରିବେ। ଅଧିକ ଯୋଗ କରିବା ପାଇଁ ଏକ ସେବାକୁ ବନ୍ଦ କରନ୍ତୁ।"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ଅଟୋଫିଲ୍"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"ଲଗିଂ ସ୍ତର"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"କମ୍ପାଟିବଲ ମିଡିଆରୁ ଆସିଥିବା ଅଡିଓ ଅଧିକ ଇମର୍ସିଭ ହୋଇଥାଏ"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ହେଡ ଟ୍ରାକିଂ"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ସାଉଣ୍ଡକୁ ଅଧିକ ସ୍ୱାଭାବିକ କରିବା ପାଇଁ ଆପଣ ଆପଣଙ୍କ ମୁଣ୍ଡକୁ ମୁଭ କରିବା ସମୟରେ ଅଡିଓ ପରିବର୍ତ୍ତନ ହୁଏ"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ଅଡିଓ ଡିଭାଇସ ପ୍ରକାର"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ଅଜଣା"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ସ୍ପିକର"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ହେଡଫୋନଗୁଡ଼ିକ"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"କାର କିଟ"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"ଅନ୍ୟ"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ନେଟୱାର୍କ ଡାଉନଲୋଡ ରେଟ ସୀମା"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ଇଣ୍ଟରନେଟ ସଂଯୋଗ ପ୍ରଦାନ କରୁଥିବା ସମସ୍ତ ନେଟୱାର୍କରେ ଲାଗୁ ହେଉଥିବା ନେଟୱାର୍କ ବ୍ୟାଣ୍ଡୱିଡଥ ଇନଗ୍ରେସ ରେଟ ସୀମାକୁ କନଫିଗର କରନ୍ତୁ।"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ନେଟୱାର୍କ ଡାଉନଲୋଡ ରେଟ ସୀମାକୁ କନଫିଗର କରନ୍ତୁ"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ଆପ ଅନଇନଷ୍ଟଲ କରନ୍ତୁ"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ଗତ # ମାସରେ ଇନଷ୍ଟଲ କରାଯାଇଥିବା ଆପ୍ସ}other{ଗତ # ମାସରେ ଇନଷ୍ଟଲ କରାଯାଇଥିବା ଆପ୍ସ}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# ମାସରୁ ଅଧିକ ସମୟ ପୂର୍ବେ ଇନଷ୍ଟଲ କରାଯାଇଥିବା ଆପ୍ସ}other{# ମାସରୁ ଅଧିକ ସମୟ ପୂର୍ବେ ଇନଷ୍ଟଲ କରାଯାଇଥିବା ଆପ୍ସ}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"ଆପଣଙ୍କ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ଫିଟ ହେବା ପାଇଁ ଯଦି ଏହି ଆପକୁ ଡିଜାଇନ କରାଯାଇନାହିଁ ତେବେ ଏହାକୁ ଭ୍ୟୁ କରିବା ପାଇଁ ଏକ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ବାଛନ୍ତୁ"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ପ୍ରସ୍ତାବିତ ଆପ୍ସ"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ଆପଣ ଓଭରରାଇଡ କରିଥିବା ଆପ୍ସ"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ଆପ ଡିଫଲ୍ଟ"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ଅଧା ସ୍କ୍ରିନ"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ଡିଭାଇସ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ଆପଣ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ପରିବର୍ତ୍ତନ କଲେ ଏହି ଆପଟି ରିଷ୍ଟାର୍ଟ ହେବ। ଆପଣ ସେଭ କରାଯାଇନଥିବା ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ ହରାଇପାରନ୍ତି।"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ଟିପଚିହ୍ନ ସେନ୍ସର"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"ଫ୍ଲାସ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"ଫ୍ଲାସ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ବିଷୟରେ"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"ମଧ୍ୟମ"</string>
<string name="contrast_high" msgid="3988567609694797696">"ଅଧିକ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ଏହି ଆପକୁ କେବଳ 1ଟି ୱିଣ୍ଡୋରେ ଖୋଲାଯାଇପାରିବ"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"ସେବା ଚାଲୁ ଅଛି"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"ସେବା ବନ୍ଦ ଅଛି"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"ସର୍ଟକଟ ବନ୍ଦ ଅଛି"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ଚାଲୁ ଅଛି"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ବନ୍ଦ ଅଛି"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ବନ୍ଦ ଅଛି"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ବନ୍ଦ ଅଛି"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ଚାଲୁ ଅଛି"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ବନ୍ଦ ଅଛି"</string>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index 13330f5..0e9b469 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 ਮਿੰਟ ਬਾਅਦ"</item>
<item msgid="1574040255478150028">"5 ਮਿੰਟਾਂ ਬਾਅਦ"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"ਬੈਟਰੀ ਲਾਈਫ਼ ਵਧਾਉਣ ਲਈ ਅਡੈਪਟਿਵ ਬ੍ਰਾਈਟਨੈੱਸ ਚਾਲੂ ਕਰੋ"</item>
+ <item msgid="2256666063790193306">"ਬੈਟਰੀ ਲਾਈਫ਼ ਵਧਾਉਣ ਲਈ ਸਕ੍ਰੀਨ ਦੇ ਬੰਦ ਹੋਣ ਦਾ ਸਮਾਂ ਘਟਾਓ"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 8d45354..12fb630 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"ਨਿਰਧਾਰਿਤ ਨਹੀਂ"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"ਇਸਤਰੀ-ਲਿੰਗ"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"ਪੁਲਿੰਗ"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ਕੀ ਚੁਣੀ ਗਈ ਭਾਸ਼ਾ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?}one{ਕੀ ਚੁਣੀ ਗਈ ਭਾਸ਼ਾ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?}other{ਕੀ ਚੁਣੀਆਂ ਗਈਆਂ ਭਾਸ਼ਾਵਾਂ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"ਲਿਖਤ ਨੂੰ ਕਿਸੇ ਹੋਰ ਭਾਸ਼ਾ ਵਿੱਚ ਦਿਖਾਇਆ ਜਾਵੇਗਾ"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ਸਾਰੀਆਂ ਭਾਸ਼ਾਵਾਂ ਨੂੰ ਮਿਟਾਇਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ਚਿਹਰੇ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ਚਿਹਰੇ, ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ਚਿਹਰੇ, ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਅਤੇ <xliff:g id="WATCH">%s</xliff:g> ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ਆਪਣੀ ਘੜੀ ਦਾ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"ਵਾਚ ਅਣਲਾਕ ਵਿਸ਼ੇਸ਼ਤਾ ਇਸ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦਾ ਇੱਕ ਹੋਰ ਸੁਵਿਧਾਜਨਕ ਤਰੀਕਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, ਜਦੋਂ ਤੁਹਾਡੀਆਂ ਉਂਗਲਾਂ ਗਿੱਲੀਆਂ ਹੋਣ ਜਾਂ ਚਿਹਰਾ ਪਛਾਣਿਆ ਨਾ ਗਿਆ ਹੋਵੇ।\n\nਤੁਸੀਂ ਇਸ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਆਪਣੀ ਘੜੀ ਦੀ ਵਰਤੋਂ ਉਦੋਂ ਕਰ ਸਕਦੇ ਹੋ ਜਦੋਂ ਤੁਸੀਂ:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ਹੁਣੇ ਨਹੀਂ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"ਜਾਰੀ ਰੱਖੋ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"ਹੋਰ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ਇਸਦੇ ਕੰਮ ਕਰਨ ਦਾ ਤਰੀਕਾ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ਤੁਹਾਡੀ ਘੜੀ ਦਾ ਅਣਲਾਕ ਹੋਣਾ, ਤੁਹਾਡੇ ਗੁੱਟ \'ਤੇ ਹੋਣਾ ਅਤੇ ਇਸ ਫ਼ੋਨ ਦੀ ਪਹੁੰਚ ਵਿੱਚ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ। ਤੁਹਾਡੀ ਘੜੀ ਦੇ ਤੁਹਾਡੇ ਗੁੱਟ \'ਤੇ ਹੋਣ ਦੌਰਾਨ ਤੁਹਾਨੂੰ ਘੜੀ ਨੂੰ ਦੁਬਾਰਾ ਅਣਲਾਕ ਕਰਨ ਦੀ ਲੋੜ ਨਹੀਂ ਪਵੇਗੀ।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ਇਸ ਫ਼ੋਨ ਦੇ ਅਣਲਾਕ ਹੋਣ \'ਤੇ, ਤੁਹਾਨੂੰ ਤੁਹਾਡੀ ਘੜੀ \'ਤੇ ਸੂਚਿਤ ਕੀਤਾ ਜਾਵੇਗਾ। ਜੇ ਇਹ ਤੁਹਾਡੀ ਮਰਜ਼ੀ ਦੇ ਬਿਨਾਂ ਅਣਲਾਕ ਹੋ ਗਿਆ ਸੀ, ਤਾਂ ਫ਼ੋਨ ਨੂੰ ਦੁਬਾਰਾ ਲਾਕ ਕਰਨ ਲਈ ਸੂਚਨਾ \'ਤੇ ਟੈਪ ਕਰੋ।"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ਕੰਟਰੋਲ ਤੁਹਾਡੇ ਹੱਥ ਵਿੱਚ ਹੈ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ਤੁਸੀਂ ਕਦੇ ਵੀ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਜਾ ਕੇ ਵਾਚ ਅਣਲਾਕ ਤੋਂ ਆਪਣੀ ਘੜੀ ਨੂੰ ਹਟਾ ਸਕਦੇ ਹੋ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"ਸੂਚਨਾ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰੋ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ਆਪਣੀ ਘੜੀ ਚੁਣੋ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ਉਪਲਬਧ ਘੜੀਆਂ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ਰੱਦ ਕਰੋ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ਤਸਦੀਕ ਕਰੋ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ਤੁਸੀਂ ਪੂਰੀ ਤਰ੍ਹਾਂ ਤਿਆਰ ਹੋ!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ਜਦੋਂ ਤੁਸੀਂ ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਸਵਾਈਪ ਕਰਦੇ ਹੋ ਜਾਂ ਕਿਸੇ ਸੂਚਨਾ \'ਤੇ ਟੈਪ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਇਸ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਆਪਣੀ ਘੜੀ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ਹੋ ਗਿਆ"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ਵਾਚ ਅਣਲਾਕ"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ਲਾਕ ਸਕ੍ਰੀਨ \'ਤੇ ਉੱਪਰ ਵੱਲ ਸਵਾਈਪ ਕਰ ਕੇ ਜਾਂ ਕਿਸੇ ਸੂਚਨਾ \'ਤੇ ਟੈਪ ਕਰ ਕੇ, ਤੁਸੀਂ ਇਸ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਆਪਣੀ ਘੜੀ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ਵਾਚ ਅਣਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ, ਤੁਹਾਡੀ ਘੜੀ ਦਾ ਅਣਲਾਕ ਹੋਣਾ, ਤੁਹਾਡੇ ਗੁੱਟ \'ਤੇ ਹੋਣਾ, ਪਹੁੰਚ ਦੇ ਅੰਦਰ ਹੋਣਾ ਅਤੇ ਇਸ ਫ਼ੋਨ ਨਾਲ ਕਨੈਕਟ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ। ਜੇ ਕਨੈਕਸ਼ਨ ਵਿੱਚ ਰੁਕਾਵਟ ਆਉਂਦੀ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਵਾਚ ਅਣਲਾਕ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਦੀ ਲੋੜ ਪਵੇਗੀ।\n\nਧਿਆਨ ਵਿੱਚ ਰੱਖੋ:\nਤੁਸੀਂ ਇੱਕ ਸਮੇਂ \'ਤੇ ਇੱਕੋ ਹੀ ਘੜੀ ਦਾ ਸੈੱਟਅੱਪ ਕਰ ਸਕਦੇ ਹੋ। ਇੱਕ ਹੋਰ ਘੜੀ ਸ਼ਾਮਲ ਕਰਨ ਲਈ, ਪਹਿਲਾਂ ਮੌਜੂਦਾ ਘੜੀ ਨੂੰ ਹਟਾਓ।"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ਵਾਚ ਅਣਲਾਕ ਬਾਰੇ ਹੋਰ ਜਾਣੋ"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ਘੜੀ ਸ਼ਾਮਲ ਕਰੋ"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ਘੜੀ ਨੂੰ ਹਟਾਓ"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਤੇ ਫ਼ੇਸ ਅਣਲਾਕ"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਲਈ ਫ਼ੇਸ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ਸੈੱਟਅੱਪ ਦੀ ਲੋੜ ਹੈ"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ਤੁਹਾਨੂੰ ਹੋਰ ਡੀਵਾਈਸ ਤੇ ਵੀ ਇਹ ਪਾਸਕੁੰਜੀ ਟਾਈਪ ਕਰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ।"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ਤਾਲ-ਮੇਲ ਵਾਲੇ ਸੈੱਟ ਨਾਲ ਜੋੜਾਬੱਧ ਕਰਨ ਲਈ ਤਸਦੀਕ ਕਰੋ"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ਆਪਣੇ ਸੰਪਰਕਾਂ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਦਿਓ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"ਸੰਪਰਕਾਂ ਅਤੇ ਕਾਲ ਇਤਿਹਾਸ ਤੱਕ ਵੀ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ਜਾਣਕਾਰੀ ਦੀ ਵਰਤੋਂ ਕਾਲ ਘੋਸ਼ਣਾਵਾਂ ਅਤੇ ਹੋਰ ਚੀਜ਼ਾਂ ਲਈ ਕੀਤੀ ਜਾਵੇਗੀ"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"ਉਪਲਬਧ ਡੀਵਾਈਸ"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ਇਸ ਡੀਵਾਈਸ ਨਾਲ ਵਾਈ-ਫਾਈ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ਹੌਟਸਪੌਟ ਸਾਂਝਾ ਕਰੋ"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਇਹ ਤੁਸੀਂ ਹੋ"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ਵਾਈ-ਫਾਈ ਪਾਸਵਰਡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ਹੌਟਸਪੌਟ ਪਾਸਵਰਡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"ਸਵੈ-ਕਨੈਕਟ ਕਰੋ"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ਨੈੱਟਵਰਕ ਰੇਂਜ ਵਿੱਚ ਨਹੀਂ ਹੈ"</string>
<string name="wifi_forget" msgid="3485573280364015620">"ਭੁੱਲ ਜਾਓ"</string>
<string name="wifi_modify" msgid="5127926476383659412">"ਸੋਧੋ"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ਨੈੱਟਵਰਕ ਛੱਡਣ ਵਿੱਚ ਅਸਫਲ"</string>
<string name="wifi_save" msgid="2312643132472226807">"ਰੱਖਿਅਤ ਕਰੋ"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"ਨੈੱਟਵਰਕ ਰੱਖਿਅਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"ਰੱਦ ਕਰੋ"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"ਜੇ ਤੁਹਾਡੀ ਤਰਜੀਹੀ ਵਾਰਵਾਰਤਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ, ਤਾਂ ਤੁਹਾਡਾ ਹੌਟਸਪੌਟ ਕਿਸੇ ਵੱਖਰੀ ਵਾਰਵਾਰਤਾ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦਾ ਹੈ। ਜੇ ਤੁਸੀਂ ਵਾਰਵਾਰਤਾ ਨੂੰ ਬਦਲਦੇ ਹੋ, ਤਾਂ ਹੌਟਸਪੌਟ ਸੁਰੱਖਿਆ ਸੈਟਿੰਗਾਂ ਬਦਲ ਸਕਦੀਆਂ ਹਨ।"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz ਨਾਲ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"ਜੇ ਤੁਸੀਂ ਹੌਟਸਪੌਟ ਦੀ ਵਾਰਵਾਰਤਾ ਨੂੰ ਬਦਲਦੇ ਹੋ, ਤਾਂ ਸੁਰੱਖਿਆ ਸੈਟਿੰਗਾਂ ਬਦਲ ਸਕਦੀਆਂ ਹਨ"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"ਹੌਟਸਪੌਟ ਚਾਲੂ ਕਰ ਰਿਹਾ ਹੈ..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"ਹੌਟਸਪੌਟ ਬੰਦ ਕਰ ਰਿਹਾ ਹੈ…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ਟੈਦਰਿੰਗ ਅਣਉਪਲਬਧ ਹੈ"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"ਕੀ ਆਪਣਾ ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ਕੀ ਆਪਣਾ ਪੈਟਰਨ ਭੁੱਲ ਗਏ?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ਕੀ ਆਪਣਾ ਪਿੰਨ ਭੁੱਲ ਗਏ?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣੇ ਡੀਵਾਈਸ ਦਾ ਪੈਟਰਨ ਵਰਤੋ"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣੇ ਡੀਵਾਈਸ ਦਾ ਪਿੰਨ ਦਾਖਲ ਕਰੋ"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਡੀਵਾਈਸ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣੀ ਕੰਮ ਸਬੰਧੀ ਵੰਨਗੀ ਵਰਤੋ"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਪੈਟਰਨ ਬਣਾਓ"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"ਵਾਧੂ ਸੁਰੱਖਿਆ ਲਈ, ਆਪਣੇ ਡੀਵਾਈਸ ਪੈਟਰਨ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ਕੋਈ ਵਰਣਨ ਮੁਹੱਈਆ ਨਹੀਂ ਕੀਤਾ ਗਿਆ।"</string>
<string name="settings_button" msgid="2195468788019730377">"ਸੈਟਿੰਗਾਂ"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ਰੋਸ਼ਨੀ ਤੋਂ ਸੰਵੇਦਨਸ਼ੀਲਤਾ, ਫ਼ੋਟੋਫ਼ੋਬੀਆ, ਗੂੜ੍ਹਾ ਥੀਮ, ਸਿਰਦਰਦ, ਪੜ੍ਹਨ ਦਾ ਮੋਡ, ਰਾਤ ਵਾਲਾ ਮੋਡ, ਚਮਕ ਘਟਾਓ, ਸਫ਼ੈਦ ਪੁਆਇੰਟ"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ਆਸਾਨ ਵਰਤੋਂ, ਆਸਾਨ ਪਹੁੰਚ, ਸਹਾਇਤਾ, ਸਹਿਯੋਗਮਈ"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"ਸਮਝ, ਸੁਣਨਾ, ਨੇਤਰਹੀਣ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ ਲੋਕ, ਮੋਟਰ, ਨਿਪੁੰਨਤਾ, ਸਹਿਯੋਗਮਈ, ਸਹਾਇਤਾ, ਵਰਤੋਂ ਵਿੱਚ ਅਸਾਨ, ਪਹੁੰਚ ਵਿੱਚ ਅਸਾਨ, ਹੱਥ, ਮਦਦ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ਵਿੰਡੋ ਵੱਡਦਰਸ਼ੀ, ਜ਼ੂਮ, ਵੱਡਦਰਸ਼ੀਕਰਨ, ਘੱਟ ਨਜ਼ਰ, ਫ਼ੌਂਟ ਵੱਡਾ ਕਰੋ, ਲਿਖਤ ਵੱਡੀ ਕਰੋ"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"ਸੁਰਖੀਆਂ, ਬੰਦ ਸੁਰਖੀਆਂ, ਬੰਦ ਸੁੁਰਖੀਆਂ, Live Transcribe, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਘੱਟ ਸੁਣਨਾ, CART, ਬੋਲੀ ਤੋਂ ਲਿਖਤ, ਉਪਸਿਰਲੇਖ"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"ਰੰਗ ਕੰਟ੍ਰਾਸਟ"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"ਮੋਟਰ, ਮਾਊਸ"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"ਸੁਣਨ ਦੇ ਸਾਧਨ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਸੁਨਣ ਸ਼ਕਤੀ ਤੋਂ ਬਿਨਾਂ ਵਾਲੇ, ਕੋਕਲੀਅਰ ਇਮਪਲਾਂਟ, ਐਂਪਲੀਫ਼ੀਕੇਸ਼ਨ ਡੀਵਾਈਸ, ਧੁਨੀ ਪ੍ਰੋਸੈੱਸਰ"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"ਮੋਟਰ, ਮਾਊਸ, ਬਾਹਰੀ ਮਾਊਸ, ਹੈੱਡ ਮਾਊਸ, ਅਨੁਕੂਲ ਮਾਊਸ, ਵ੍ਹੀਲਚੇਅਰ, ਜਾਏਸਟਿੱਕ"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"ਸੁਣਨ ਦੇ ਸਾਧਨ, ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਸੁਨਣ ਸ਼ਕਤੀ ਤੋਂ ਬਿਨਾਂ ਵਾਲੇ, ਕੋਕਲੀਅਰ ਇਮਪਲਾਂਟ, ਐਂਪਲੀਫ਼ੀਕੇਸ਼ਨ ਡੀਵਾਈਸ, ਧੁਨੀ ਪ੍ਰੋਸੈੱਸਰ, PASAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"ਘੱਟ ਸੁਣਨ ਵਾਲੇ, ਘੱਟ ਸੁਣਨਾ, ਸੁਰਖੀਆਂ, ਟੈਲੀਟਾਈਪ, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ਤਿੰਨ ਬਟਨ"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ਨਿਪੁੰਨਤਾ, ਮੋਟਰ, ਸੀਨੀਅਰ, ਗਠੀਆ, rsi, ਸਟ੍ਰੋਕ, ਕੰਬਣੀ, ਮਲਟੀਪਲ ਸਕਲੇਰੋਸਿਸ, ਸੇਰੇਬ੍ਰਲ ਪਾਲਸੀ, ਕੰਬਣੀ, ਦੁਹਰਾਉਣ ਵਾਲੀ ਤਣਾਅ ਦੀ ਸੱਟ, ਹੱਥ"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ਦੇਰੀ, ਨਿਪੁੰਨਤਾ, ਸੀਨੀਅਰ"</string>
<string name="print_settings" msgid="8519810615863882491">"ਪ੍ਰਿੰਟਿੰਗ"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ਬੰਦ"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ਪ੍ਰਿੰਟ ਸੇਵਾ ਚਾਲੂ ਹੈ}one{# ਪ੍ਰਿੰਟ ਸੇਵਾ ਚਾਲੂ ਹੈ}other{# ਪ੍ਰਿੰਟ ਸੇਵਾ ਚਾਲੂ ਹਨ}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ਡਾਟਾ ਚਿਤਾਵਨੀ"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ਡਾਟਾ ਸੀਮਾ"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ਡਾਟਾ ਚਿਤਾਵਨੀ / <xliff:g id="ID_2">^2</xliff:g> ਡਾਟਾ ਸੀਮਾ"</string>
- <string name="operator_warning" msgid="5672761970087591211">"ਕੈਰੀਅਰ ਵੱਲੋਂ ਡਾਟੇ ਦਾ ਹਿਸਾਬ ਡੀਵਾਈਸ ਦੇ ਹਿਸਾਬ ਨਾਲੋਂ ਵੱਖਰਾ ਹੋ ਸਕਦਾ ਹੈ"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ਕੈਰੀਅਰ ਨੈੱਟਵਰਕਾਂ ਵੱਲੋਂ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਡਾਟਾ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ਵਰਤਿਆ"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ਡਾਟਾ ਚਿਤਾਵਨੀ ਸੈੱਟ ਕਰੋ"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"ਆਟੋਫਿਲ ਸੇਵਾ"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਆਟੋਫਿਲ ਸੇਵਾ"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"ਪਾਸਵਰਡ"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ"</string>
<string name="credman_credentials" msgid="4931371941253324143">"ਵਧੀਕ ਪ੍ਰਦਾਨਕ"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# ਪਾਸਵਰਡ}one{# ਪਾਸਵਰਡ}other{# ਪਾਸਵਰਡ}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ਆਟੋ, ਫਿਲ, ਆਟੋਫਿਲ, ਪਾਸਵਰਡ"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ਆਟੋ, ਫਿਲ, ਆਟੋਫਿਲ, ਡਾਟਾ, ਪਾਸਕੀ, ਪਾਸਵਰਡ"</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="4951846866327737417">"<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="2642776965060619988">"ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"ਕੀ %1$s ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ਕੀ ਇਸ ਸੇਵਾ ਨੂੰ ਬੰਦ ਕਰਨਾ ਹੈ?</b> <br/> <br/> ਤੁਹਾਡੇ ਵੱਲੋਂ ਸਾਈਨ-ਇਨ ਕਰਨ ਵੇਲੇ ਰੱਖਿਅਤ ਕੀਤੀ ਗਈ ਜਾਣਕਾਰੀ ਜਿਵੇਂ ਕਿ ਪਾਸਵਰਡਾਂ, ਪਾਸਕੀਆਂ, ਭੁਗਤਾਨ ਵਿਧੀਆਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਨੂੰ ਭਰਿਆ ਨਹੀਂ ਜਾਵੇਗਾ। ਆਪਣੀ ਰੱਖਿਅਤ ਕੀਤੀ ਜਾਣਕਾਰੀ ਵਰਤਣ ਲਈ ਕੋਈ ਪਾਸਵਰਡ, ਪਾਸਕੀ ਜਾਂ ਡਾਟਾ ਸੇਵਾ ਚੁਣੋ।"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"ਕੀ %1$s ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਹੈ?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ਇਹ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ \'ਤੇ ਮੌਜੂਦ ਜਾਣਕਾਰੀ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਕਿ ਕਿਹੜੀ ਜਾਣਕਾਰੀ ਨੂੰ ਆਟੋਫਿਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"ਪਾਸਵਰਡਾਂ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ ਦੀ ਸੀਮਾ"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"ਤੁਸੀਂ ਇੱਕੋ ਸਮੇਂ \'ਤੇ 5 ਤੱਕ ਪਾਸਵਰਡਾਂ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਹੋਰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਸੇਵਾ ਨੂੰ ਬੰਦ ਕਰੋ।"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"ਪਾਸਵਰਡ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ ਦੀ ਸੀਮਾ"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"ਤੁਸੀਂ ਇੱਕੋ ਸਮੇਂ \'ਤੇ 5 ਤੱਕ ਪਾਸਵਰਡਾਂ, ਪਾਸਕੀਆਂ ਅਤੇ ਡਾਟਾ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। ਹੋਰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਕਿਸੇ ਸੇਵਾ ਨੂੰ ਬੰਦ ਕਰੋ।"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ਬੰਦ ਕਰੋ"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ਆਟੋਫਿਲ"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"ਲੌਗਿੰਗ ਪੱਧਰ"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ਅਨੁਰੂਪ ਮੀਡੀਆ ਤੋਂ ਆਡੀਓ ਵਧੇਰੇ ਇਮਰਸਿਵ ਬਣ ਜਾਂਦੀ ਹੈ"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ਹੈੱਡ ਟਰੈਕਿੰਗ"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ਜਦੋਂ ਤੁਸੀਂ ਆਪਣਾ ਸਿਰ ਉਸ ਦਿਸ਼ਾ ਵੱਲ ਹਿਲਾਉਂਦੇ ਹੋ ਜਿੱਥੋਂ ਧੁਨੀ ਆ ਰਹੀ ਹੈ ਤਾਂ ਆਡੀਓ ਹੋਰ ਕੁਦਰਤੀ ਸੁਣਾਈ ਦਿੰਦੀ ਹੈ"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ਆਡੀਓ ਡੀਵਾਈਸ ਦੀ ਕਿਸਮ"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ਅਗਿਆਤ"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ਸਪੀਕਰ"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ਹੈੱਡਫ਼ੋਨ"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"ਕਾਰ ਕਿੱਟ"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"ਹੋਰ"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ਨੈੱਟਵਰਕ ਡਾਊਨਲੋਡ ਦਰ ਸੀਮਾ"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ਨੈੱਟਵਰਕ ਬੈਂਡਵਿਡਥ ਪ੍ਰਵੇਸ਼ ਦਰ ਸੀਮਾ ਦਾ ਸੰਰੂਪਣ ਕਰੋ ਜੋ ਇੰਟਰਨੈੱਟ ਕਨੈਕਟੀਵਿਟੀ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਵਾਲੇ ਸਾਰੇ ਨੈੱਟਵਰਕਾਂ \'ਤੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ।"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ਨੈੱਟਵਰਕ ਡਾਊਨਲੋਡ ਦਰ ਸੀਮਾ ਦਾ ਸੰਰੂਪਣ ਕਰੋ"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ਐਪ ਅਣਸਥਾਪਤ ਕਰੋ"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ਪਿਛਲੇ # ਮਹੀਨੇ ਵਿੱਚ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ ਐਪਾਂ}one{ਪਿਛਲੇ # ਮਹੀਨੇ ਵਿੱਚ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ ਐਪਾਂ}other{ਪਿਛਲੇ # ਮਹੀਨਿਆਂ ਵਿੱਚ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ ਐਪਾਂ}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ਐਪਾਂ # ਮਹੀਨੇ ਤੋਂ ਵੱਧ ਪਹਿਲਾਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ}one{ਐਪਾਂ # ਮਹੀਨੇ ਤੋਂ ਵੱਧ ਪਹਿਲਾਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ}other{ਐਪਾਂ # ਮਹੀਨਿਆਂ ਤੋਂ ਵੱਧ ਪਹਿਲਾਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"ਆਕਾਰ ਅਨੁਪਾਤ"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"ਜੇ ਇਹ ਐਪ ਤੁਹਾਡੇ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਮੁਤਾਬਕ ਡਿਜ਼ਾਈਨ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਦੇਖਣ ਲਈ ਕੋਈ ਆਕਾਰ ਅਨੁਪਾਤ ਚੁਣੋ"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ਸੁਝਾਈਆਂ ਗਈਆਂ ਐਪਾਂ"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ਐਪਾਂ ਜੋ ਤੁਸੀਂ ਓਵਰਰਾਈਡ ਕੀਤੀਆਂ ਹਨ"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ਐਪ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ਪੂਰੀ ਸਕ੍ਰੀਨ"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ਅੱਧੀ ਸਕ੍ਰੀਨ"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ਡੀਵਾਈਸ ਆਕਾਰ ਅਨੁਪਾਤ"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਕਾਰ ਅਨੁਪਾਤ ਨੂੰ ਬਦਲਣ \'ਤੇ ਐਪ ਮੁੜ-ਸ਼ੁਰੂ ਹੋ ਜਾਵੇਗੀ। ਤੁਸੀਂ ਅਣਰੱਖਿਅਤ ਤਬਦੀਲੀਆਂ ਗੁਆ ਸਕਦੇ ਹੋ।"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"ਫਲੈਸ਼ ਸੂਚਨਾਵਾਂ"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"ਫਲੈਸ਼ ਸੂਚਨਾਵਾਂ ਬਾਰੇ"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"ਦਰਮਿਆਨਾ"</string>
<string name="contrast_high" msgid="3988567609694797696">"ਜ਼ਿਆਦਾ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ਇਹ ਐਪ ਸਿਰਫ਼ 1 ਵਿੰਡੋ ਵਿੱਚ ਖੋਲ੍ਹੀ ਜਾ ਸਕਦੀ ਹੈ"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"ਸੇਵਾ ਚਾਲੂ ਹੈ"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"ਸੇਵਾ ਬੰਦ ਹੈ"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"ਸ਼ਾਰਟਕੱਟ ਬੰਦ ਹੈ"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ਚਾਲੂ ਹੈ"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ਬੰਦ ਹੈ"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ਬੰਦ ਹੈ"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ਬੰਦ"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ਚਾਲੂ"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ਬੰਦ"</string>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index a51b5c4..4d13123 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Po minucie"</item>
<item msgid="1574040255478150028">"Po 5 minutach"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Włącz automatyczną jasność, aby wydłużyć czas pracy na baterii"</item>
+ <item msgid="2256666063790193306">"Ogranicz wygaszanie ekranu, aby wydłużyć czas pracy na baterii"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index c13859d..e51ee7f 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -193,12 +193,14 @@
<string name="title_regional_pref_footer" msgid="7450438024324794380">"Jeśli aplikacja nie obsługuje preferencji regionalnych, użyje swoich domyślnych ustawień języka."</string>
<string name="desc_regional_pref_footer_learn_more" msgid="4401708653329230081">"Dowiedz się więcej o ustawieniach języka"</string>
<string name="category_title_terms_of_address" msgid="4309422700380895278">"Dodatkowe ustawienia"</string>
- <string name="terms_of_address_title" msgid="4064593634733842458">"Zwrot grzecznościowy"</string>
+ <string name="terms_of_address_title" msgid="4064593634733842458">"Preferowany rodzaj gramatyczny"</string>
<string name="terms_of_address_summary" msgid="6136134336560679144">"Określ, jak się do Ciebie zwracać"</string>
- <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplikacje mogą używać Twojego zwrotu grzecznościowego, aby zwracać się do Ciebie w spersonalizowany sposób."</string>
+ <string name="terms_of_address_intro_title" msgid="6149691509414243483">"Aplikacje mogą używać Twojego preferowanego rodzaju gramatycznego, aby zwracać się do Ciebie w spersonalizowany sposób."</string>
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nie określono"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Żeński"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Męski"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Usunąć wybrany język?}few{Usunąć wybrane języki?}many{Usunąć wybrane języki?}other{Usunąć wybrane języki?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Tekst będzie wyświetlany w innym języku."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nie można usunąć wszystkich języków"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Dodano skan twarzy i <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Dodano skan twarzy, odcisk palca i <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Dodano skan twarzy, odciski palca i <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Skonfiguruj zegarek"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Odblokowywanie za pomocą zegarka to wygodny sposób na odblokowywanie telefonu, gdy masz mokre palce lub nie udaje się rozpoznać Twojej twarzy.\n\nMożesz korzystać z zegarka, aby odblokować telefon, w tych sytuacjach:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Nie teraz"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Dalej"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Więcej"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Jak to działa"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Zegarek musi być odblokowany oraz znajdować się na nadgarstku i w zasięgu telefonu. Jeśli masz zegarek na nadgarstku, ponowne odblokowanie nie będzie konieczne."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Gdy telefon zostanie odblokowany, dostaniesz powiadomienie na zegarku. W przypadku niezamierzonego odblokowania kliknij powiadomienie, aby ponownie zablokować telefon."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Masz wszystko pod kontrolą"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Możesz usunąć zegarek z funkcji odblokowywania za pomocą zegarka w dowolnym momencie w Ustawieniach."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Kliknij powiadomienie"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Przesuń palcem w górę na ekranie blokady"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Wybierz zegarek"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostępne zegarki"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Anuluj"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potwierdź"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Wszystko gotowe"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Możesz teraz używać zegarka do odblokowywania tego telefonu przez przeciąganie palcem w górę po powiadomieniu"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gotowe"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"odblokowywanie za pomocą zegarka"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Możesz używać zegarka do odblokowywania tego telefonu przez przeciągnięcie palcem w górę na ekranie blokady lub kliknięcie powiadomienia"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Aby można było skorzystać z odblokowywania za pomocą zegarka, zegarek musi być odblokowany oraz znajdować się na nadgarstku i w pobliżu odblokowywanego telefonu. Jeśli połączenie zostanie przerwane, trzeba będzie najpierw odblokować telefon, aby móc korzystać z funkcji odblokowywania za pomocą zegarka.\n\nPamiętaj:\nNie można mieć kilku skonfigurowanych zegarków jednocześnie. Aby dodać kolejny zegarek, najpierw usuń dotychczasowy."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Więcej informacji o odblokowywaniu za pomocą zegarka"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj zegarek"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Usuń zegarek"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odblokowywanie za pomocą odcisku palca i rozpoznawania twarzy"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Rozpoznawanie twarzy i odcisku palca w profilu służbowym"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Wymagana konfiguracja"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Może być również konieczne wpisanie tego klucza na drugim urządzeniu."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potwierdź, aby sparować ze skoordynowanym zestawem"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Zezwól na dostęp do kontaktów i historii połączeń"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Zezwól również na dostęp do kontaktów i historii połączeń"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informacje zostaną wykorzystane do powiadomień o połączeniach i innych funkcji"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nie udało się nawiązać połączenia z <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostępne urządzenia"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Udostępniam Wi‑temu urządzeniu…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Łączę…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Udostępnij hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potwierdź swoją tożsamość"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potwierdź swoją tożsamość"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Hasło do Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hasło do hotspota: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Łącz automatycznie"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Poza zasięgiem sieci"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Zapomnij"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Zmień"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Nie udało się zapomnieć sieci"</string>
<string name="wifi_save" msgid="2312643132472226807">"Zapisz"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Nie udało się zapisać sieci"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Anuluj"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Jeśli preferowana częstotliwość nie jest dostępna, hotspot może użyć innej. Zmiana częstotliwości może wpłynąć na ustawienia zabezpieczeń na hotspocie."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Niedostępne przy 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Zmiana częstotliwości na hotspocie może wpłynąć na ustawienia zabezpieczeń."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Włączam punktu dostępu…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Wyłączam punkt dostępu…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering niedostępny"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Nie pamiętasz hasła?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Nie pamiętasz wzoru?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Nie pamiętasz kodu PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Aby przejść dalej, podaj wzór używany na urządzeniu"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Aby przejść dalej, podaj kod PIN używany na urządzeniu"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Aby przejść dalej, podaj hasło używane na urządzeniu"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Podaj wzór używany w profilu służbowym, by kontynuować"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Aby kontynuować, narysuj wzór"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Aby kontynuować, wpisz kod PIN"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Aby kontynuować, wpisz hasło"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Aby kontynuować, narysuj wzór służbowy"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Podaj kod PIN używany w profilu służbowym, by kontynuować"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Podaj hasło używane w profilu służbowym, by kontynuować"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Ze względów bezpieczeństwa podaj wzór używany na urządzeniu"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Brak opisu"</string>
<string name="settings_button" msgid="2195468788019730377">"Ustawienia"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"światłowstręt, fotofobia, ciemny motyw, migrena, ból głowy, tryb czytania, tryb nocny, zmniejszona jasność, punkt bieli"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"łatwa obsługa, łatwy dostęp, pomoc, wsparcie"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"widzenie, słyszenie, osoba niewidoma, osoba z wadą słuchu, motoryka, wygoda, wspomaganie, łatwe używanie, łatwy dostęp, dłoń, pomoc"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"powiększenie okna, zoom, powiększenie, niedowidzenie, powiększanie, powiększyć"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"napisy, Transkrypcja na żywo, niedosłuch, utrata słuchu, CART, zamiana mowy na tekst"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kontrast kolorów"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"ruchowy, mysz"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparaty słuchowe, niedosłyszący, utrata słuchu, implanty ślimakowe, urządzenia wzmacniające dźwięk, procesory dźwięku"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motoryka, mysz, mysz zewnętrzna, mysz obsługiwana głową, mysz adaptacyjna, wózek inwalidzki, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparaty słuchowe, niedosłuch, utrata słuchu, implanty ślimakowe, urządzenia wzmacniające dźwięk, procesory dźwięku, CPR"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"niedosłuch, utrata słuchu, napisy, dalekopis, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"3 przyciski"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"wygoda, motoryka, senior, choroby reumatyczne, RSI, udar mózgu, drżenie, stwardnienie rozsiane, porażenie mózgowe, chroniczne przeciążenie mięśni i ścięgien, dłoń"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"opóźnienie, wygoda, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Drukowanie"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Wył."</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Włączono 1 usługę drukowania}few{Włączono # usługi drukowania}many{Włączono # usług drukowania}other{Włączono # usługi drukowania}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Ostrzeżenie dotyczące danych: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Limit danych: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Ostrzeżenie dotyczące danych: <xliff:g id="ID_1">^1</xliff:g> / limit danych: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operator komórkowy może obliczać ilość przesłanych danych inaczej niż urządzenie"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Użycie danych w sieciach operatorów nie jest uwzględniane"</string>
<string name="data_used_template" msgid="8229342096562327646">"Wykorzystano <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Ustaw ostrzeżenie dotyczące danych"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Usługa autouzupełniania"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Domyślna usługa autouzupełniania"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Hasła"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Usługi haseł, kluczy dostępu i danych"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Usługi haseł, kluczy i danych"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Dostawcy dodatkowi"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# hasło}few{# hasła}many{# haseł}other{# hasła}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatycznie, uzupełnianie, autouzupełnianie, hasło"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatyczne, uzupełnianie, autouzupełnianie, dane, klucz dostępu, hasło"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Sprawdź, czy ta aplikacja jest zaufana</b> <br/> <br/> <xliff:g id=app_name example=Autouzupełnianie Google>%1$s</xliff:g> na podstawie zawartości ekranu określa, co można uzupełnić automatycznie."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Używać <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> używa treści wyświetlanych na ekranie do określania, co można uzupełnić automatycznie. Od tej pory w tym miejscu będą zachowywane nowe hasła, klucze dostępu i inne informacje."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Usługi haseł, kluczy dostępu i danych"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Usługi haseł, kluczy i danych"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Wyłączyć usługę %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Wyłączyć tę usługę?</b> <br/> <br/> Zapisane informacje, takie jak hasła, klucze dostępu, formy płatności i inne dane, nie będą wypełniane, gdy się zalogujesz. Aby używać zapisanych informacji, wybierz usługę haseł, kluczy dostępu lub danych."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Użyć usługi %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"Usługa %1$s używa treści wyświetlanych na ekranie do określania, co można uzupełnić automatycznie."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limit usług haseł, kluczy dostępu i danych"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Możesz mieć aktywnych maksymalnie 5 usług haseł, kluczy dostępu i danych jednocześnie. Wyłącz usługę, aby dodać kolejne."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limit usług haseł, kluczy i danych"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Możesz mieć aktywnych maksymalnie 5 usług haseł, kluczy i danych jednocześnie. Wyłącz jedną z usług, aby dodać kolejną."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Wyłącz"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autouzupełnianie"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Poziom rejestrowania"</string>
@@ -4674,6 +4710,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Jeszcze lepsza jakość dźwięku z kompatybilnych multimediów"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Monitorowanie ruchów głowy"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Dźwięk zmienia się, kiedy poruszasz głową, aby brzmieć bardziej naturalnie"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Typ urządzenia audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Brak informacji"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Głośnik"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Słuchawki"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Zestaw samochodowy"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Inne"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ograniczenie liczby żądań pobierania w sieci"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Skonfiguruj ograniczenie liczby żądań ruchu przychodzącego dla przepustowości sieci we wszystkich sieciach, które zapewniają połączenie z internetem"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Skonfiguruj ograniczenie liczby żądań pobierania w sieci"</string>
@@ -4706,24 +4750,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Odinstaluj aplikację"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacje zainstalowane w ostatnim miesiącu}few{Aplikacje zainstalowane w ciągu ostatnich # miesięcy}many{Aplikacje zainstalowane w ciągu ostatnich # miesięcy}other{Aplikacje zainstalowane w ciągu ostatniego # miesiąca}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacja zainstalowana ponad miesiąc temu}few{Aplikacja zainstalowana ponad # miesiące temu}many{Aplikacja zainstalowana ponad # miesięcy temu}other{Aplikacja zainstalowana ponad # miesiąca temu}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Format obrazu"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Wybierz format obrazu, aby wyświetlić tę aplikację, jeśli nie została zaprojektowana, aby dopasować się do <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Sugerowane aplikacje"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacje z zastąpionymi ustawieniami"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Ustawienie domyślne aplikacji"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pełny ekran"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Połowa ekranu"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Format obrazu urządzenia"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacja zostanie ponownie uruchomiona, kiedy zmienisz format obrazu. Możesz utracić niezapisane zmiany."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Czytnik linii papilarnych"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Powiadomienia świetlne"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"O powiadomieniach świetlnych"</string>
@@ -4758,10 +4796,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Średni"</string>
<string name="contrast_high" msgid="3988567609694797696">"Wysoki"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ta aplikacja może być otwarta tylko w 1 oknie."</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Usługa włączona"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Usługa wyłączona"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Skrót wyłączony"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Włączono"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Wyłączono"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Wyłączono"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Wyłączono"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Włączono"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Wyłączono"</string>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index c144b2b..9c116f8 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Depois de um minuto"</item>
<item msgid="1574040255478150028">"Depois de cinco minutos"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Ativa o brilho adaptável para prolongar a duração da bateria"</item>
+ <item msgid="2256666063790193306">"Reduz o tempo limite da tela para prolongar a duração da bateria"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 6f3529c..9369a22 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Não especificado"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminino"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remover idioma selecionado?}one{Remover idioma selecionado?}other{Remover idiomas selecionados?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"O texto será exibido em outro idioma."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Não é possível remover todos os idiomas"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar o relógio"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"O \"Desbloqueio do relógio\" é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando os dedos estiverem molhados ou o rosto não for reconhecido.\n\nVocê pode usar o relógio para desbloquear o smartphone quando:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Agora não"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mais"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Como funciona"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"O relógio precisa estar desbloqueado, no pulso e perto do smartphone. Não é necessário desbloquear o relógio novamente enquanto ele está no seu pulso."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando este smartphone estiver desbloqueado, você vai receber uma notificação no relógio. Se ele foi desbloqueado sem querer, toque na notificação para bloquear o dispositivo de novo."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Você no controle"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Você pode remover seu relógio do recurso \"Desbloqueio do relógio\" a qualquer momento nas Configurações."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toque em uma notificação"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Deslize para cima na tela de bloqueio"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Escolha seu relógio"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relógios disponíveis"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Está tudo pronto!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Agora, você pode usar o relógio para desbloquear o smartphone ao deslizar para cima na tela de bloqueio ou tocar em uma notificação."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Concluído"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueio do relógio"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Você pode usar o relógio para desbloquear o smartphone ao deslizar para cima na tela de bloqueio ou tocar em uma notificação."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar o \"Desbloqueio do relógio\", é necessário que o relógio esteja desbloqueado, no pulso, perto de você e conectado a este smartphone. Se a conexão for interrompida, você precisará desbloquear o smartphone antes de usar o recurso.\n\nNão se esqueça:\nSó é possível configurar um relógio por vez. Para adicionar outro, remova o atual."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saiba mais sobre o \"Desbloqueio do relógio\""</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adicionar relógio"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remover relógio"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impressão digital e Desbloqueio facial"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueio facial e por impressão digital para o trabalho"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuração necessária"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Talvez seja necessário digitar esta senha no outro dispositivo."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirme para parear com o conjunto coordenado"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir o acesso aos seus contatos e seu histórico de ligações"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Também permite o acesso a contatos e ao histórico de ligações"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"As informações serão usadas para fazer o anúncio de ligações e muito mais"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Não foi possível conectar ao <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos encontrados"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartilhando o Wi‑Fi com este dispositivo…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Compartilhar ponto de acesso"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Confirmar sua identidade"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirme sua identidade"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Senha do Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Senha do ponto de acesso: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conexão automática"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rede fora do alcance"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Esquecer"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Falha ao esquecer a rede"</string>
<string name="wifi_save" msgid="2312643132472226807">"Salvar"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Falha ao salvar a rede"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Caso sua frequência preferida não esteja disponível, o ponto de acesso pode usar outra. As configurações de segurança do ponto de acesso poderão mudar se você modificar a frequência."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Indisponível com 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"As configurações de segurança poderão mudar se você modificar a frequência do ponto de acesso"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Ativando o ponto de acesso..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Desativando o ponto de acesso..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering indisponível"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Esqueceu sua senha?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Esqueceu seu padrão?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Esqueceu seu PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use o padrão do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Digite o PIN do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Digite a senha do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use seu padrão de trabalho para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Desenhe seu padrão para continuar"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Digite seu PIN para continuar"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Digite sua senha para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Desenhe seu padrão de trabalho para continuar"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Digite seu PIN de trabalho para continuar"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Digite sua senha de trabalho para continuar"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para aumentar a segurança, use o padrão do dispositivo"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nenhuma descrição foi fornecida."</string>
<string name="settings_button" msgid="2195468788019730377">"Configurações"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidade à luz, fotofobia, tema escuro, enxaqueca, dor de cabeça, modo de leitura, modo noturno, reduzir brilho, ponto branco"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidade de uso, facilidade de acesso, assistência, assistivo"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"visão, audição, cego, surdo, motor, destreza, assistivo, assistência, facilidade de uso, facilidade de acesso, mão, ajuda"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Lupa de janela, zoom, ampliação, baixa visão, ampliar, aumentar"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Legendas, closed captions, CC, Transcrição instantânea, deficiência auditiva, perda auditiva, legenda ao vivo, voz em texto"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contraste de cor"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"coordenação motora, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparelhos auditivos, perda auditiva, implantes cocleares, dispositivos de amplificação, processadores de som"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, mouse externo, mouse controlado por movimentos da cabeça, mouse adaptável, cadeira de rodas, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparelhos auditivos, perda auditiva, implantes cocleares, dispositivos de amplificação, processadores de som, CAE"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"deficiência auditiva, perda auditiva, legendas, teletipo, TTD"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"três botões"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motor, idoso, artrite, LER, derrame, tremor, esclerose múltipla, paralisia cerebral, tremendo, lesão por esforço repetitivo, mão"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atraso, destreza, idoso"</string>
<string name="print_settings" msgid="8519810615863882491">"Impressão"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desativada"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 serviço de impressão ativado}one{# serviço de impressão ativado}other{# serviços de impressão ativados}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Alerta de uso de dados em <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Limite de dados em <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Alerta de uso de dados em <xliff:g id="ID_1">^1</xliff:g> / Limite de dados em <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"O cálculo de dados da operadora pode ser diferente daquele realizado pelo seu dispostivo"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclui dados usados por redes de operadoras"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> usado(s)"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Definir alerta de uso de dados"</string>
@@ -3926,7 +3962,7 @@
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Navegação com dois botões"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Para mudar de app, deslize o botão home para cima. Para ver todos os apps, deslize para cima novamente. Para retornar, toque no botão \"Voltar\"."</string>
<string name="emergency_settings_preference_title" msgid="6183455153241187148">"Segurança e emergência"</string>
- <string name="emergency_dashboard_summary" msgid="401033951074039302">"SOS de emergência, informações médicas, alertas"</string>
+ <string name="emergency_dashboard_summary" msgid="401033951074039302">"SOS de emergência, informações de saúde, alertas"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navegação por gestos"</string>
<string name="edge_to_edge_navigation_summary" msgid="8497033810637690561">"Para ir para a tela inicial, deslize da parte de baixo da tela para cima. Para mudar de app, deslize de baixo para cima, mantenha a tela pressionada e depois solte. Para voltar, deslize de um dos lados da tela para o outro."</string>
<string name="legacy_navigation_title" msgid="7877402855994423727">"Navegação com três botões"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Preenchimento automático"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Preenchimento automático padrão"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Senhas"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Senhas, chaves de acesso e serviços de dados"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Senhas, chaves de acesso e serviços de dados"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Outros provedores"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# senha}one{# senha}other{# senhas}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"preencher, automático, preenchimento automático, senha"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automático, preenchimento, preenchimento automático, dados, chave de acesso, senha"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Você precisa confiar nesse app</b> <br/> <br/> <xliff:g id=app_name example=O Preenchimento automático do Google>%1$s</xliff:g> usa o que está na sua tela para determinar o que pode ser preenchido automaticamente."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Usar o <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/>O <xliff:g id=app_name example=Provider>%1$s</xliff:g> usa o que aparece na sua tela para determinar o que pode ser preenchido automaticamente. Novas senhas, chaves de acesso e outras informações serão salvas aqui a partir de agora."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Senhas, chaves de acesso e serviços de dados"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Senhas, chaves de acesso e serviços de dados"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Desativar %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Desativar este serviço?</b> <br/> <br/> Senhas, chaves de acesso, formas de pagamento e outras informações salvas não serão preenchidas quando você fizer login. Para usar suas informações salvas, escolha uma senha, uma chave de acesso ou um serviço de dados."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Usar %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa o que aparece na tela para determinar o que pode ser preenchido automaticamente."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limite de senhas, chaves de acesso e serviços de dados"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"É possível ter até cinco senhas, chaves de acesso e serviços de dados ao mesmo tempo. Desative um para adicionar outro."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limite de senhas, chaves de acesso e serviços de dados"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"É possível ter até cinco senhas, chaves de acesso e serviços de dados ativos ao mesmo tempo. Desative um para adicionar outro."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desativar"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Preenchimento automático"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nível de registro"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O áudio de dispositivos de mídia compatíveis se torna mais imersivo"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Acompanhamento da cabeça"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"O áudio muda conforme você move a cabeça para soar mais natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de áudio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconhecido"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Alto-falante"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Fones de ouvido"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit do carro"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Outro"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitação da velocidade de download da rede"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurar a limitação da velocidade de entrada da largura de banda da rede para todas as redes que se conectam à Internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurar a limitação da velocidade de download da rede"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Médio"</string>
<string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esse app só pode ser aberto em uma única janela"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Serviço ativado"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Serviço desativado"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Atalho desativado"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Ativado"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desativado"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desativado"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desativado"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Ativado"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Desativado"</string>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 521acfc..254647a 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Após 1 minuto"</item>
<item msgid="1574040255478150028">"Após 5 minutos"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Ativar luminosidade adaptável para prolongar a autonomia da bateria"</item>
+ <item msgid="2256666063790193306">"Reduzir limite de tempo do ecrã para prolongar a autonomia da bateria"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 5eae646..5603d11 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Não especificado"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminino"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remover o idioma selecionado?}other{Remover os idiomas selecionados?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"O texto será apresentado noutro idioma."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Não é possível remover todos os idiomas"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configure o seu relógio"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"O Desbloqueio com o relógio é outra forma fácil de desbloquear este telemóvel, por exemplo, quando tiver os dedos molhados ou o seu rosto não for reconhecido.\n\nPode usar o relógio para desbloquear este telemóvel quando:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Agora não"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mais"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Como funciona"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"O seu relógio tem de estar desbloqueado, no pulso e dentro do alcance deste telemóvel. Não precisa de desbloquear o relógio novamente enquanto estiver no seu pulso."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando este telemóvel for desbloqueado, recebe uma notificação no relógio. Se tiver sido desbloqueado acidentalmente, toque na notificação para bloquear novamente o telemóvel."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"O controlo é seu"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Pode remover o relógio do Desbloqueio com o relógio em qualquer altura nas Definições"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toque numa notificação"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Deslize rapidamente para cima no ecrã de bloqueio"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Escolha o seu relógio"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relógios disponíveis"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Está tudo pronto!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Já pode usar o relógio para desbloquear este telemóvel quando deslizar rapidamente para cima no ecrã de bloqueio ou tocar numa notificação"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Concluir"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueio com o relógio"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Pode usar o relógio para desbloquear este telemóvel quando deslizar rapidamente para cima no ecrã de bloqueio ou tocar numa notificação"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar o Desbloqueio com o relógio, o relógio tem de estar desbloqueado, no pulso, dentro do alcance e ligado a este telemóvel. Se a ligação for interrompida, vai precisar de desbloquear o telemóvel antes de poder usar o Desbloqueio com o relógio.\n\nTenha em atenção:\nSó pode ter um relógio configurado de cada vez. Para adicionar outro relógio, remova primeiro o atual."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saiba mais sobre o Desbloqueio com o relógio"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adicionar relógio"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remover relógio"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impressão digital e Desbloqueio facial"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueio facial e por impressão digital para o trabalho"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuração necessária"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Poderá também ter de introduzir o token de acesso no outro aparelho."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirme para sincronizar com o conjunto coordenado"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir o acesso aos contactos e ao histórico de chamadas"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Permitir também o acesso aos contactos e ao histórico de chamadas"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"As informações vão ser usadas para anúncios de chamadas e outros"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Não foi possível ligar a <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos disponíveis"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"A partilhar o Wi‑Fi com este dispositivo…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"A ligar…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Partilhar zona Wi-Fi"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Valide a sua identidade"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirme a sua identidade"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Palavra-passe de Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Palavra-passe da zona Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Ligação automática"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"A rede não está ao alcance"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Esquecer"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Não foi possível esquecer a rede"</string>
<string name="wifi_save" msgid="2312643132472226807">"Guardar"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Não foi possível guardar a rede"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Se a sua frequência preferida não estiver disponível, a zona Wi-Fi pode usar outra. As definições de segurança da zona Wi-Fi podem mudar se alterar a frequência."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Não disponível com 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"As definições de segurança podem mudar se alterar a frequência da zona Wi-Fi"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"A ativar zona Wi-Fi..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"A desativar zona Wi-Fi..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Ligação (à Internet) via telemóvel indisponível"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Esqueceu-se da sua palavra-passe?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Esqueceu-se do seu padrão?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Esqueceu-se do seu PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use o padrão do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Introduza o PIN do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Introduza a palavra-passe do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utilize o padrão de trabalho para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Desenhe o padrão para continuar"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Introduza o PIN para continuar"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Introduza a palavra-passe para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Desenho o padrão de trabalho para continuar"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Introduza o PIN de trabalho para continuar"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Introduza a palavra-passe de trabalho para continuar"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para maior segurança, utilize o padrão do dispositivo"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nenhuma descrição fornecida."</string>
<string name="settings_button" msgid="2195468788019730377">"Definições"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidade à luz, fotofobia, tema escuro, enxaqueca, dor de cabeça, modo de leitura, modo noturno, reduzir o brilho, ponto branco"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidade de utilização, facilidade de acesso, ajuda, assistência"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"visão, audição, cegueira, surdez, limitação motora, destreza, de assistência, assistência, facilidade de utilização, facilidade de acesso, mão, ajuda"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Ampliador da janela, zoom, ampliação, visão reduzida, ampliar, aumentar"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Legendas, Transcrição instantânea, dificuldade de audição, perda de audição, CART, conversão de voz para texto"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contraste de cor"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"incapacidade motora, rato"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparelhos auditivos, dificuldade de audição, perda de audição, implantes cocleares, dispositivos de amplificação, processadores de som"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"limitação motora, rato, rato externo, rato controlado pela cabeça, rato adaptativo, cadeira de rodas, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparelhos auditivos, dificuldade de audição, perda de audição, implantes cocleares, dispositivos de amplificação, processadores de som, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"dificuldade de audição, perda de audição, legendas, teletipo"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"três botões"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, limitação motora, idoso, artrite, LER, derrame, tremor, esclerose múltipla, paralisia cerebral, paralisia, tremores, lesão por esforço repetitivo, mão"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atraso, destreza, idoso"</string>
<string name="print_settings" msgid="8519810615863882491">"Impressão"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desativado"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 serviço de impressão ativado}other{# serviços de impressão ativados}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Aviso de dados de <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Limite de dados de <xliff:g id="ID_1">^1</xliff:g>."</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Aviso de dados de <xliff:g id="ID_1">^1</xliff:g>/limite de dados de <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"A contagem de dados do operador pode ser diferente da contagem do dispositivo"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclui dados utilizados por redes de operadores"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> utilizado(s)"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Definir aviso de dados"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Preenchimento automático"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Serviço de preenchimento automático predefinido"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Palavras-passe"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Palavras-passe, chaves de acesso e serviços de dados"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Palavras-passe, chaves de acesso e serviços de dados"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Fornecedores adicionais"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# palavra-passe}other{# palavras-passe}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automático, preenchimento, preenchimento automático, palavra-passe"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automático, preenchimento, preenchimento automático, dados, chave de acesso, palavra-passe"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Certifique-se de que confia nesta app</b> <br/> <br/> <xliff:g id=app_name example=O Preenchimento automático do Google>%1$s</xliff:g> utiliza o que está no ecrã para determinar o que pode ser preenchido automaticamente."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Usar a <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> A <xliff:g id=app_name example=Provider>%1$s</xliff:g> usa o que está no ecrã para determinar o que pode ser preenchido automaticamente. Entre outras informações, a partir de agora, as palavras-passe e as chaves de acesso novas vão ser guardadas aqui."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Palavras-passe, chaves de acesso e serviços de dados"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Palavras-passe, chaves de acesso e serviços de dados"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Desativar %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Desativar este serviço?</b> <br/> <br/> As informações guardadas, como palavras-passe, chaves de acesso, métodos de pagamento e outras informações, não vão ser preenchidas quando iniciar sessão. Para usar as informações guardadas, escolha uma palavra-passe, uma chave de acesso ou um serviço de dados."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Usar o %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"O %1$s usa o que está no ecrã para determinar o que pode ser preenchido automaticamente."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limite de palavras-passe, chaves de acesso e serviços de dados"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Pode ter até 5 palavras-passe, chaves de acesso e serviços de dados ativos em simultâneo. Desative um serviço para adicionar mais."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limite de palavras-passe, chaves de acesso e serviços de dados"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Pode ter até 5 palavras-passe, chaves de acesso e serviços de dados ativos em simultâneo. Desative um serviço para adicionar mais."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desativar"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Preenchimento automático"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nível de registo"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O áudio de dispositivos multimédia compatíveis torna-se mais envolvente"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Acompanhamento da cabeça"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"O áudio muda conforme move a cabeça para soar mais natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de áudio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconhecido"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altifalante"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Auscultadores"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit para carro"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Outro"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitação de velocidade de transferência da rede"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure a limitação de velocidade de entrada de largura de banda da rede que é aplicada a todas as redes que fornecem ligação à Internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurar limitação de velocidade de transferência da rede"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Médio"</string>
<string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esta app só pode ser aberta em 1 janela"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Serviço ativado"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Serviço desativado"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Atalho desativado"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Funcionalidade ativada"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Funcionalidade desativada"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Atalho desativado"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desativado"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Ativado"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Desativado"</string>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index c144b2b..9c116f8 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Depois de um minuto"</item>
<item msgid="1574040255478150028">"Depois de cinco minutos"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Ativa o brilho adaptável para prolongar a duração da bateria"</item>
+ <item msgid="2256666063790193306">"Reduz o tempo limite da tela para prolongar a duração da bateria"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 6f3529c..9369a22 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Não especificado"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminino"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculino"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Remover idioma selecionado?}one{Remover idioma selecionado?}other{Remover idiomas selecionados?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"O texto será exibido em outro idioma."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Não é possível remover todos os idiomas"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Rosto e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Rosto, impressão digital e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Rosto, impressões digitais e <xliff:g id="WATCH">%s</xliff:g> adicionados"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurar o relógio"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"O \"Desbloqueio do relógio\" é outra maneira conveniente de desbloquear o smartphone, por exemplo, quando os dedos estiverem molhados ou o rosto não for reconhecido.\n\nVocê pode usar o relógio para desbloquear o smartphone quando:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Agora não"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuar"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mais"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Como funciona"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"O relógio precisa estar desbloqueado, no pulso e perto do smartphone. Não é necessário desbloquear o relógio novamente enquanto ele está no seu pulso."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Quando este smartphone estiver desbloqueado, você vai receber uma notificação no relógio. Se ele foi desbloqueado sem querer, toque na notificação para bloquear o dispositivo de novo."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Você no controle"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Você pode remover seu relógio do recurso \"Desbloqueio do relógio\" a qualquer momento nas Configurações."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Toque em uma notificação"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Deslize para cima na tela de bloqueio"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Escolha seu relógio"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Relógios disponíveis"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Cancelar"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmar"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Está tudo pronto!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Agora, você pode usar o relógio para desbloquear o smartphone ao deslizar para cima na tela de bloqueio ou tocar em uma notificação."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Concluído"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Desbloqueio do relógio"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Você pode usar o relógio para desbloquear o smartphone ao deslizar para cima na tela de bloqueio ou tocar em uma notificação."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para usar o \"Desbloqueio do relógio\", é necessário que o relógio esteja desbloqueado, no pulso, perto de você e conectado a este smartphone. Se a conexão for interrompida, você precisará desbloquear o smartphone antes de usar o recurso.\n\nNão se esqueça:\nSó é possível configurar um relógio por vez. Para adicionar outro, remova o atual."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saiba mais sobre o \"Desbloqueio do relógio\""</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adicionar relógio"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Remover relógio"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Impressão digital e Desbloqueio facial"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Desbloqueio facial e por impressão digital para o trabalho"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Configuração necessária"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Talvez seja necessário digitar esta senha no outro dispositivo."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirme para parear com o conjunto coordenado"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permitir o acesso aos seus contatos e seu histórico de ligações"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Também permite o acesso a contatos e ao histórico de ligações"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"As informações serão usadas para fazer o anúncio de ligações e muito mais"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Não foi possível conectar ao <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispositivos encontrados"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartilhando o Wi‑Fi com este dispositivo…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Compartilhar ponto de acesso"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Confirmar sua identidade"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirme sua identidade"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Senha do Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Senha do ponto de acesso: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conexão automática"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rede fora do alcance"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Esquecer"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modificar"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Falha ao esquecer a rede"</string>
<string name="wifi_save" msgid="2312643132472226807">"Salvar"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Falha ao salvar a rede"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Cancelar"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Caso sua frequência preferida não esteja disponível, o ponto de acesso pode usar outra. As configurações de segurança do ponto de acesso poderão mudar se você modificar a frequência."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Indisponível com 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"As configurações de segurança poderão mudar se você modificar a frequência do ponto de acesso"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Ativando o ponto de acesso..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Desativando o ponto de acesso..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering indisponível"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Esqueceu sua senha?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Esqueceu seu padrão?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Esqueceu seu PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use o padrão do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Digite o PIN do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Digite a senha do dispositivo para continuar"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use seu padrão de trabalho para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Desenhe seu padrão para continuar"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Digite seu PIN para continuar"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Digite sua senha para continuar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Desenhe seu padrão de trabalho para continuar"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Digite seu PIN de trabalho para continuar"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Digite sua senha de trabalho para continuar"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para aumentar a segurança, use o padrão do dispositivo"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nenhuma descrição foi fornecida."</string>
<string name="settings_button" msgid="2195468788019730377">"Configurações"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilidade à luz, fotofobia, tema escuro, enxaqueca, dor de cabeça, modo de leitura, modo noturno, reduzir brilho, ponto branco"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Facilidade de uso, facilidade de acesso, assistência, assistivo"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"visão, audição, cego, surdo, motor, destreza, assistivo, assistência, facilidade de uso, facilidade de acesso, mão, ajuda"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Lupa de janela, zoom, ampliação, baixa visão, ampliar, aumentar"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Legendas, closed captions, CC, Transcrição instantânea, deficiência auditiva, perda auditiva, legenda ao vivo, voz em texto"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contraste de cor"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"coordenação motora, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparelhos auditivos, perda auditiva, implantes cocleares, dispositivos de amplificação, processadores de som"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motor, mouse, mouse externo, mouse controlado por movimentos da cabeça, mouse adaptável, cadeira de rodas, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparelhos auditivos, perda auditiva, implantes cocleares, dispositivos de amplificação, processadores de som, CAE"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"deficiência auditiva, perda auditiva, legendas, teletipo, TTD"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"três botões"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"destreza, motor, idoso, artrite, LER, derrame, tremor, esclerose múltipla, paralisia cerebral, tremendo, lesão por esforço repetitivo, mão"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"atraso, destreza, idoso"</string>
<string name="print_settings" msgid="8519810615863882491">"Impressão"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Desativada"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 serviço de impressão ativado}one{# serviço de impressão ativado}other{# serviços de impressão ativados}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Alerta de uso de dados em <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Limite de dados em <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Alerta de uso de dados em <xliff:g id="ID_1">^1</xliff:g> / Limite de dados em <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"O cálculo de dados da operadora pode ser diferente daquele realizado pelo seu dispostivo"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Exclui dados usados por redes de operadoras"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> usado(s)"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Definir alerta de uso de dados"</string>
@@ -3926,7 +3962,7 @@
<string name="swipe_up_to_switch_apps_title" msgid="6677266952021118342">"Navegação com dois botões"</string>
<string name="swipe_up_to_switch_apps_summary" msgid="1415457307836359560">"Para mudar de app, deslize o botão home para cima. Para ver todos os apps, deslize para cima novamente. Para retornar, toque no botão \"Voltar\"."</string>
<string name="emergency_settings_preference_title" msgid="6183455153241187148">"Segurança e emergência"</string>
- <string name="emergency_dashboard_summary" msgid="401033951074039302">"SOS de emergência, informações médicas, alertas"</string>
+ <string name="emergency_dashboard_summary" msgid="401033951074039302">"SOS de emergência, informações de saúde, alertas"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Navegação por gestos"</string>
<string name="edge_to_edge_navigation_summary" msgid="8497033810637690561">"Para ir para a tela inicial, deslize da parte de baixo da tela para cima. Para mudar de app, deslize de baixo para cima, mantenha a tela pressionada e depois solte. Para voltar, deslize de um dos lados da tela para o outro."</string>
<string name="legacy_navigation_title" msgid="7877402855994423727">"Navegação com três botões"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Preenchimento automático"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Preenchimento automático padrão"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Senhas"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Senhas, chaves de acesso e serviços de dados"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Senhas, chaves de acesso e serviços de dados"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Outros provedores"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# senha}one{# senha}other{# senhas}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"preencher, automático, preenchimento automático, senha"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automático, preenchimento, preenchimento automático, dados, chave de acesso, senha"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Você precisa confiar nesse app</b> <br/> <br/> <xliff:g id=app_name example=O Preenchimento automático do Google>%1$s</xliff:g> usa o que está na sua tela para determinar o que pode ser preenchido automaticamente."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Usar o <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/>O <xliff:g id=app_name example=Provider>%1$s</xliff:g> usa o que aparece na sua tela para determinar o que pode ser preenchido automaticamente. Novas senhas, chaves de acesso e outras informações serão salvas aqui a partir de agora."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Senhas, chaves de acesso e serviços de dados"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Senhas, chaves de acesso e serviços de dados"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Desativar %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Desativar este serviço?</b> <br/> <br/> Senhas, chaves de acesso, formas de pagamento e outras informações salvas não serão preenchidas quando você fizer login. Para usar suas informações salvas, escolha uma senha, uma chave de acesso ou um serviço de dados."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Usar %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s usa o que aparece na tela para determinar o que pode ser preenchido automaticamente."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limite de senhas, chaves de acesso e serviços de dados"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"É possível ter até cinco senhas, chaves de acesso e serviços de dados ao mesmo tempo. Desative um para adicionar outro."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limite de senhas, chaves de acesso e serviços de dados"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"É possível ter até cinco senhas, chaves de acesso e serviços de dados ativos ao mesmo tempo. Desative um para adicionar outro."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Desativar"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Preenchimento automático"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nível de registro"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O áudio de dispositivos de mídia compatíveis se torna mais imersivo"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Acompanhamento da cabeça"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"O áudio muda conforme você move a cabeça para soar mais natural"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de áudio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconhecido"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Alto-falante"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Fones de ouvido"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit do carro"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Outro"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitação da velocidade de download da rede"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurar a limitação da velocidade de entrada da largura de banda da rede para todas as redes que se conectam à Internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurar a limitação da velocidade de download da rede"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Médio"</string>
<string name="contrast_high" msgid="3988567609694797696">"Alto"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Esse app só pode ser aberto em uma única janela"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Serviço ativado"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Serviço desativado"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Atalho desativado"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Ativado"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Desativado"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Desativado"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Desativado"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Ativado"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Desativado"</string>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 02b5f3d..d8c7cdf 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"După un minut"</item>
<item msgid="1574040255478150028">"După cinci minute"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Activează luminozitatea adaptivă pentru a prelungi autonomia bateriei"</item>
+ <item msgid="2256666063790193306">"Redu durata până la dezactivarea ecranului pentru a prelungi autonomia bateriei"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 58fa829..8b73cb5 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nespecificat"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Feminin"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Masculin"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Elimini limba selectată?}few{Elimini limbile selectate?}other{Elimini limbile selectate?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Textul va fi afișat în altă limbă."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nu pot fi eliminate toate limbile"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Au fost adăugate fața și <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Au fost adăugate fața, amprenta și <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Au fost adăugate fața, amprentele și <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Configurează ceasul"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Deblocarea cu ceasul este o altă modalitate convenabilă de a debloca acest telefon, de exemplu, când ai degetele ude sau nu îți recunoaște chipul.\n\nPoți să deblochezi telefonul cu ceasul atunci când:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Nu acum"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Continuă"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mai mult"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cum funcționează"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ceasul trebuie să fie deblocat, la încheietura mâinii și aproape de telefon. Nu va trebui să deblochezi ceasul din nou cât timp se află la încheietură."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Când telefonul este deblocat, vei primi o notificare pe ceas. Dacă telefonul s-a deblocat din greșeală, atinge notificarea pentru a-l bloca din nou."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Tu deții controlul"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Poți elimina oricând ceasul din Deblocarea cu ceasul din Setări"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Atinge o notificare"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Glisează în sus pe ecranul de blocare"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Alege ceasul"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Ceasuri disponibile"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Anulează"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Confirmă"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Gata!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Acum poți folosi ceasul pentru a debloca telefonul când glisezi în sus pe ecranul de blocare sau când atingi o notificare"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Gata"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Deblocare cu ceasul"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Poți folosi ceasul pentru a debloca telefonul când glisezi în sus pe ecranul de blocare sau când atingi o notificare"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Pentru a folosi Deblocarea cu ceasul, ceasul trebuie să fie deblocat, la încheietura mâinii, aproape și conectat la telefon. În cazul în care conexiunea este întreruptă, va trebui să deblochezi telefonul ca să poți folosi Deblocarea cu ceasul.\n\nReține:\npoți avea un singur ceas configurat la un moment dat. Ca să adaugi altul, elimină-l pe cel actual."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Află mai multe despre Deblocarea cu ceasul"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Adaugă un ceas"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Elimină ceasul"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Deblocare cu amprenta și Deblocare facială"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Deblocarea facială și cu amprenta pentru serviciu"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Este necesară configurarea"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Ar putea fi necesar, de asemenea, să introduci această parolă pe celălalt dispozitiv."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Confirmă pentru a asocia cu setul coordonat"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Permite accesul la agendă și la istoricul apelurilor"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"În plus, permit accesul la agendă și la istoricul apelurilor"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informațiile vor fi folosite pentru notificări privind apelurile și altele"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nu s-a putut conecta la <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dispozitive disponibile"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Se permite accesul la Wi-Fi pentru acest dispozitiv…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Se conectează…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Permite accesul la hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Confirmă-ți identitatea"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirmați că sunteți dvs."</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Parola rețelei Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Parolă hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conectare automată"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rețeaua este în afara ariei de acoperire"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Elimină"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modifică"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Nu s-a putut elimina rețeaua"</string>
<string name="wifi_save" msgid="2312643132472226807">"Salvează"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Nu s-a putut salva rețeaua"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Anulează"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Dacă frecvența preferată nu este disponibilă, hotspotul poate folosi alta. Setările de securitate ale hotspotului se pot modifica dacă schimbi frecvența."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nu este disponibilă cu 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Setările de securitate se pot schimba dacă schimbi frecvența hotspotului"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Se activează hotspotul..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Se dezactivează hotspotul..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tetheringul nu este disponibil"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ai uitat parola?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ai uitat modelul?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Ai uitat codul PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Pentru a continua, folosește modelul pentru deblocarea dispozitivului"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Pentru a continua, introdu codul PIN al dispozitivului"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Pentru a continua, introdu parola dispozitivului"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Pentru a continua, folosește modelul de serviciu"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Desenează modelul pentru a continua"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Introdu codul PIN pentru a continua"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Introdu parola pentru a continua"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Desenează modelul de serviciu pentru a continua"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Pentru a continua, introdu codul PIN de serviciu"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Pentru a continua, introdu parola de serviciu"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Pentru mai multă siguranță, folosește modelul dispozitivului"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nu a fost furnizată o descriere."</string>
<string name="settings_button" msgid="2195468788019730377">"Setări"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"sensibilitate la lumină, fotofobie, tema întunecată, migrenă, durere de cap, mod de citire, modul noapte, reduceți luminozitatea, punct alb"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ușurință de utilizare, acces simplu, asistență, care asigură asistență"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vedere, auz, orb, surd, abilități motorii, dexteritate, care asigură asistență, asistență, ușurință de utilizare, acces simplu, mână, ajutor"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"lupă fereastră, zoom, mărire, vedere slabă, mărește, mai mare"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"subtitrări, transcriere live, deficiențe de auz, pierderea auzului, CART, redare în scris a vorbirii, subtitrare"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contrastul culorilor"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"abilități motorii, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparate auditive, persoane cu deficiențe de auz, pierderea auzului, implanturi cohleare, dispozitive de amplificare, procesoare de sunet"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"abilități motorii, mouse, mouse extern, mouse pentru cap, mouse adaptiv, scaun cu rotile, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparate auditive, persoane cu deficiențe de auz, pierderea auzului, implanturi cohleare, dispozitive de amplificare, procesoare de sunet, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"deficiențe de auz, pierderea auzului, subtitrări, TeleTypewriter, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"trei butoane"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"dexteritate, abilități motorii, persoană în vârstă, artrită, leziuni de stres repetitiv, atac cerebral, tremor, scleroză multiplă, paralizie cerebrală, tremurat, mână"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"întârziere, dexteritate, persoană în vârstă"</string>
<string name="print_settings" msgid="8519810615863882491">"Printare"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Dezactivat"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Un serviciu de printare activat}few{# servicii de printare activate}other{# de servicii de printare activate}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Avertisment pentru date: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Limită de date: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Avertisment pentru date: <xliff:g id="ID_1">^1</xliff:g> / Limită de date: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Cuantificarea datelor de către operator poate fi diferită de cea de pe dispozitiv"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Sunt excluse datele folosite în rețele de operator"</string>
<string name="data_used_template" msgid="8229342096562327646">"Date utilizate: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Setează avertisment pentru date"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Serviciu de completare automată"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Serviciu de completare automată prestabilit"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Parole"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Parole, chei de acces și servicii de date"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Parole, chei de acces și servicii de date"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Furnizori suplimentari"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# parolă}few{# parole}other{# de parole}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automată, completare, completare automată, parolă"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, completare, completare automată, date, cheie de acces, parolă"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Asigură-te că ai încredere în această aplicație</b> <br/> <br/> <xliff:g id=app_name example=Completarea automată Google>%1$s</xliff:g> folosește conținutul de pe ecran pentru a stabili ce se poate completa automat."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Folosești <xliff:g id=app_name example=Furnizorul>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Furnizorul>%1$s</xliff:g> folosește elementele de pe ecran pentru a stabili ce se poate completa automat. De acum înainte, parolele noi, cheile de acces și alte informații se vor salva aici."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Parole, chei de acces și servicii de date"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Parole, chei de acces și servicii de date"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Dezactivezi %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Dezactivezi serviciul?</b> <br/> <br/> Informațiile salvate, cum ar fi parole, chei de acces, metode de plată și altele, nu vor fi completate când te conectezi. Pentru a folosi informațiile salvate, alege o parolă, o cheie de acces sau un serviciu de date."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Folosești %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s folosește elementele de pe ecran ca să afle ce se poate completa automat."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limita pentru parole, chei de acces și servicii de date"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Poți avea până la cinci parole, chei de acces și servicii de date active simultan. Dezactivează un serviciu pentru a adăuga mai multe."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limita pentru parole, chei de acces și servicii de date"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Poți avea până la cinci parole, chei de acces și servicii de date active simultan. Dezactivează un serviciu pentru a adăuga mai multe."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Dezactivează"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Completare automată"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Nivel de înregistrare"</string>
@@ -4673,6 +4709,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Sunetul de la dispozitivele media compatibile devine mai captivant"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Urmărirea mișcărilor capului"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Sunetul se modifică pe măsură ce miști capul, pentru o experiență mai naturală"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipul de dispozitiv audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Necunoscut"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Difuzor"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Căști"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Set auto"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Altele"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limita vitezei de descărcare a rețelei"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurează limita lățimii de bandă de intrare a rețelei, care se aplică tuturor rețelelor care asigură conexiune la internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurează limita vitezei de descărcare a rețelei"</string>
@@ -4751,10 +4795,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Mediu"</string>
<string name="contrast_high" msgid="3988567609694797696">"Ridicat"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Aplicația se poate deschide într-o singură fereastră"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Serviciul este activat"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Serviciul este dezactivat"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Comanda rapidă este dezactivată"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Funcție activată"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Funcție dezactivată"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Comandă rapidă dezactivată"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Dezactivată"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Activată"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Dezactivată"</string>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index b4b05f1..312f74e 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Через 1 минуту"</item>
<item msgid="1574040255478150028">"Через 5 минут"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Чтобы продлить время работы от батареи, включите адаптивную яркость"</item>
+ <item msgid="2256666063790193306">"Чтобы продлить время работы от батареи, настройте отключение экрана"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 970bf7d..2e788c1 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -196,9 +196,11 @@
<string name="terms_of_address_title" msgid="4064593634733842458">"Форма обращения"</string>
<string name="terms_of_address_summary" msgid="6136134336560679144">"Укажите предпочтительную форму обращения."</string>
<string name="terms_of_address_intro_title" msgid="6149691509414243483">"Информация о том, какую форму обращения вы предпочитаете, может использоваться для персонализации приложений."</string>
- <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не указана"</string>
- <string name="terms_of_address_feminine" msgid="1743479869695539283">"Женская"</string>
- <string name="terms_of_address_masculine" msgid="983106046135098856">"Мужская"</string>
+ <string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не указано"</string>
+ <string name="terms_of_address_feminine" msgid="1743479869695539283">"В женском роде"</string>
+ <string name="terms_of_address_masculine" msgid="983106046135098856">"В мужском роде"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Удалить выбранный язык?}one{Удалить выбранные языки?}few{Удалить выбранные языки?}many{Удалить выбранные языки?}other{Удалить выбранные языки?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текст будет показан на другом языке."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Невозможно удалить все языки"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Модель лица и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Модель лица, отпечаток пальца и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Модель лица, отпечатки пальцев и часы \"<xliff:g id="WATCH">%s</xliff:g>\" добавлены"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Настройте часы"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"С помощью часов удобно разблокировать телефон в различных ситуациях, например когда у вас мокрые пальцы или не распознается лицо.\n\nНиже описано, как использовать эту функцию."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Не сейчас"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Продолжить"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Ещё"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Описание функции"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Часы должны быть разблокированы, а также находиться на вашем запястье и рядом с телефоном. Пока часы на запястье, они не блокируются заново."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"При разблокировке телефона на часах появляется уведомление. Вы можете нажать на него, если хотите снова заблокировать устройство."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Управление функцией"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Если вы больше не хотите снимать блокировку с помощью часов, удалите их в настройках."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Нажмите на уведомление"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Проведите вверх по заблокированному экрану"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Выберите часы"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Доступные часы"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Отмена"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Подтвердить"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Готово!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Теперь вы можете использовать часы для разблокировки телефона, когда проводите вверх по его заблокированному экрану или нажимаете на уведомление."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Разблокировка с помощью часов"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Вы можете использовать часы для разблокировки телефона, когда проводите вверх по заблокированному экрану или нажимаете на уведомление."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Чтобы вы могли использовать разблокировку с помощью часов, они должны быть разблокированы, а также находиться на вашем запястье и рядом с подключенным к ним телефоном. Если соединение прервется, вам потребуется разблокировать телефон, прежде чем использовать разблокировку с помощью часов.\n\nВажно!\nТелефон нельзя связать с несколькими часами одновременно. Чтобы добавить часы, удалите уже подключенные."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Подробнее о разблокировке с помощью часов…"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Добавить часы"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Удалить часы"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отпечаток пальца и фейсконтроль"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Фейсконтроль и отпечаток пальца для работы"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Требуется настройка"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Возможно, потребуется ввести ключ доступа на другом устройстве."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Подтвердите, чтобы подключиться к координированному набору."</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Разрешить доступ к контактам и журналу звонков"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Разрешить доступ к контактам и журналу звонков"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Эта информация будет использоваться для оповещений о звонках и других функций"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не удалось подключиться к <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Доступные устройства"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Предоставление доступа к сети Wi‑Fi…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Подключение…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Поделиться точкой доступа"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Подтвердите, что это вы"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Подтвердите, что это вы"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Пароль сети Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Пароль точки доступа: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автоматическое подключение"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Вы не находитесь в зоне действия сети."</string>
<string name="wifi_forget" msgid="3485573280364015620">"Удалить"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Изменить"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Не удалось удалить сеть."</string>
<string name="wifi_save" msgid="2312643132472226807">"Сохранить"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Не удалось сохранить сеть."</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Отмена"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Когда предпочтительная частота недоступна, точка доступа может использовать другую. Если вы измените частоту, то для точки могут быть выбраны другие настройки безопасности."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Недоступно на частоте 6 ГГц"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Если вы поменяете частоту точки доступа, настройки безопасности могут измениться."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Включение точки доступа…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Выключение точки доступа…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Режим модема недоступен"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Забыли пароль?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Забыли графический ключ?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Забыли PIN-код?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Чтобы продолжить, введите графический ключ устройства."</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Чтобы продолжить, введите PIN-код устройства."</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Чтобы продолжить, введите пароль устройства."</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Чтобы продолжить, введите графический ключ рабочего профиля"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Введите графический ключ, чтобы продолжить."</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Введите PIN-код, чтобы продолжить."</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">"Чтобы продолжить, введите PIN-код рабочего профиля."</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Чтобы продолжить, введите пароль рабочего профиля"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Укажите графический ключ"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Нет описания"</string>
<string name="settings_button" msgid="2195468788019730377">"Настройки"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"чувствительность к свету, светобоязнь, тёмная тема, мигрень, головная боль, режим для чтения, ночной режим, снижение яркости, белая точка"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Простой доступ, удобство использования, помощь, вспомогательный"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"зрение, слух, слепой, глухой, моторика, двигательные возможности, вспомогательный, содействие, простота использования, простой доступ, рука, помощь"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Увеличение, лупа, масштаб, слабое зрение, увеличить, приблизить, сделать больше"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Субтитры, расшифровка, слабый слух, потеря слуха, Прямая расшифровка, расшифровка речи, преобразование речи в текст, распознавание речи"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"цветовая контрастность"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"мышь, двигательные нарушения"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"слуховые аппараты, слабослышащий, потеря слуха, кохлеарные импланты, устройства усиления звука, звуковые процессоры"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"моторика, мышь, внешняя мышь, управление курсором с помощью движений головы, адаптивная мышь, инвалидная коляска, джойстик"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"слуховые аппараты, слабослышащий, потеря слуха, кохлеарные импланты, устройства усиления звука, звуковые процессоры, ЕДДС"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"слабый слух, потеря слуха, субтитры, телетайп"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"с помощью трех кнопок"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"двигательные возможности, моторика, пожилой человек, артрит, инсульт, тремор, рассеянный склероз, ДЦП, дрожание, травма от повторяющихся нагрузок, рука"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"задержка, двигательные возможности, пожилой человек"</string>
<string name="print_settings" msgid="8519810615863882491">"Печать"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Отключено"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Включена 1 служба печати}one{Включена # служба печати}few{Включено # службы печати}many{Включено # служб печати}other{Включено # службы печати}}"</string>
@@ -2774,7 +2811,7 @@
<string name="help_label" msgid="2896538416436125883">"Справка/отзыв"</string>
<string name="user_account_title" msgid="6389636876210834864">"Аккаунт для контента"</string>
<string name="user_picture_title" msgid="7176437495107563321">"Документ с фото"</string>
- <string name="extreme_threats_title" msgid="1098958631519213856">"Серьезные угрозы"</string>
+ <string name="extreme_threats_title" msgid="1098958631519213856">"Критические угрозы"</string>
<string name="extreme_threats_summary" msgid="3560742429496902008">"Получать уведомления о серьезных угрозах жизни и имуществу"</string>
<string name="severe_threats_title" msgid="8962959394373974324">"Серьезные угрозы"</string>
<string name="severe_threats_summary" msgid="4982256198071601484">"Получать уведомления о серьезных угрозах жизни и имуществу"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Предупреждение о расходе трафика: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Лимит трафика: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Предупреждение о расходе трафика: <xliff:g id="ID_1">^1</xliff:g>. Лимит трафика: <xliff:g id="ID_2">^2</xliff:g>."</string>
- <string name="operator_warning" msgid="5672761970087591211">"Данные оператора связи могут отличаться от данных на устройстве."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Без учета трафика, переданного через сети оператора связи."</string>
<string name="data_used_template" msgid="8229342096562327646">"Расход: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Установить предупреждение"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Автозаполнение"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Сервис автозаполнения по умолчанию"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Пароли"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Сервисы сохранения паролей, ключей доступа и данных"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Сервисы для хранения паролей, ключей доступа и данных"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Дополнительные поставщики"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# пароль}one{# пароль}few{# пароля}many{# паролей}other{# пароля}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"автозаполнение, автоматически, заполнение, пароль"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"авто, заполнение, автозаполнение, данные, ключ доступа, пароль"</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="4951846866327737417">"<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="2642776965060619988">"Сервисы для хранения паролей, ключей доступа и данных"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Сервисы для хранения паролей, ключей доступа и данных"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Отключить %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Отключить этот сервис?</b> <br/> <br/>Пароли, ключи доступа, способы оплаты и другая сохраненная информация не будут подставляться при входе. Чтобы использовать эти данные, выберите пароль, ключ доступа или сервис."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Использовать %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s анализирует содержимое экрана и находит поля, которые можно заполнить автоматически."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Количество сервисов сохранения паролей, ключей доступа и данных ограничено"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Активными одновременно могут быть не более пяти сервисов сохранения паролей, ключей доступа и данных. Чтобы добавить новый сервис, отключите уже используемый."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Выбрано слишком много сервисов"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Одновременно можно использовать не более пяти сервисов для хранения паролей, ключей доступа и данных. Чтобы добавить сервис, отключите один из уже выбранных."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Отключить"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Автозаполнение"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Журнал"</string>
@@ -4674,6 +4710,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звук из поддерживаемых источников становится более выразительным"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Отслеживание движений головы"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звук меняется, когда вы двигаете головой, и становится более естественным."</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудиоустройства"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Неизвестно"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Колонка"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Наушники"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Устройство связи в автомобиле"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Другое"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ограничение скорости скачивания"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Ограничить пропускную способность входящего трафика. Эта настройка применяется ко всем сетям, подключенным к интернету."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Настроить ограничение скорости скачивания"</string>
@@ -4706,24 +4750,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Удалить приложение"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Приложения, установленные в течение # последнего месяца}one{Приложения, установленные в течение # последнего месяца}few{Приложения, установленные в течение # последних месяцев}many{Приложения, установленные в течение # последних месяцев}other{Приложения, установленные в течение # последнего месяца}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Приложения, установленные более # месяца назад}one{Приложения, установленные более # месяца назад}few{Приложения, установленные более # месяцев назад}many{Приложения, установленные более # месяцев назад}other{Приложения, установленные более # месяца назад}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Соотношение сторон"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Если приложение не оптимизировано для устройства <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, выберите подходящее соотношение сторон."</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Подходящие приложения"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Приложения с переопределенным вами значением"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Значение по умолчанию в приложении"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Полноэкранный режим"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Половина экрана"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Соотношение сторон устройства"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Когда вы обновите соотношение сторон, приложение перезапустится. Некоторые изменения могут не сохраниться."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сканер отпечатков пальцев"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Уведомления со вспышкой"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Об уведомлениях со вспышкой"</string>
@@ -4758,10 +4796,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Средняя"</string>
<string name="contrast_high" msgid="3988567609694797696">"Высокая"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Это приложение можно открыть только в одном окне."</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Сервис включен"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Сервис отключен"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Сочетание клавиш отключено"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Включено"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Отключено"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Отключено"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Отключено"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Включено"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Отключено"</string>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index c1e87a2..4da4055 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"මිනිත්තු 1කට පසුව"</item>
<item msgid="1574040255478150028">"මිනිත්තු 5කට පසුව"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"බැටරි ආයු කාලය දීර්ඝ කිරීමට අනුවර්තන දීප්තිය ක්රියාත්මක කරන්න"</item>
+ <item msgid="2256666063790193306">"බැටරි ආයු කාලය දීර්ඝ කිරීමට තිර කල් ඉකුත්වීම අඩු කරන්න"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index bf82069..d2852a0 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"විශේෂයෙන් සඳහන් නොකළ"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"ස්ත්රී"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"පුරුෂ"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{තෝරන ලද භාෂාව ඉවත් කරන්න ද?}one{තෝරන ලද භාෂා ඉවත් කරන්න ද?}other{තෝරන ලද භාෂා ඉවත් කරන්න ද?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"පෙළ වෙනත් භාෂාවකින් සංදර්ශනය කරනු ඇත."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"සියලු භාෂා ඉවත් කළ නොහැකිය"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"මුහුණ සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"මුහුණ, ඇඟිලි සලකුණ, සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"මුහුණ, ඇඟිලි සලකුණු, සහ <xliff:g id="WATCH">%s</xliff:g> එක් කර ඇත"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ඔබේ ඔරලෝසුව පිහිටුවන්න"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"ඔරලෝසුව අගුළු හැරීම යනු මෙම දුරකථනය අගුළු ඇරීමට තවත් පහසු ක්රමයකි, උදාහරණයක් ලෙස, ඔබේ ඇඟිලි තෙත් වූ විට හෝ මුහුණ හඳුනා නොගත් විට.\n\nඔබට මෙම දුරකථනය අගුළු හැරීමට ඔබේ ඔරලෝසුව භාවිතා කළ හැක:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"දැන් නොවේ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"ඉදිරියට යන්න"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"තව"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"එය ක්රියා කරන ආකාරය"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"ඔබේ ඔරලෝසුව ඔබේ මැණික් කටුවෙහි සහ මෙම දුරකථනයට ළඟා විය හැකි දුරින් අගුළු හැර තිබිය යුතු යි. ඔබේ ඔරලෝසුව ඔබේ මැණික් කටුවෙහි තිබෙන අතරේ ඔබට එය නැවත අගුළු හැරීමට අවශ්ය නොවනු ඇත."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"මෙම දුරකථනය අගුළු හැර ඇති විට, ඔබට ඔබේ ඔරලෝසුවෙහි දැනුම් දෙනු ලැබේ. ඔබ අදහස් නොකළ විට එය අගුළු හරිනු ලැබුවේ නම්, දුරකථනය නැවත අගුළු දැමීමට දැනුම්දීම තට්ටු කරන්න."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"ඔබට පාලනය බාරයි"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"ඔබට සැකසීම් තුළ ඕනෑම වේලාවක දී ඔරලෝසුව අගුළු හැරීම වෙතින් ඔබේ ඔරලෝසුව ඉවත් කළ හැක"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"දැනුම්දීමක් තට්ටු කරන්න"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"අගුළු තිරය මත ඉහළට ස්වයිප් කරන්න"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"ඔබේ ඔරලෝසුව තෝරා ගන්න"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"ලබා ගත හැකි ඔරලෝසු"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"අවලංගු කරන්න"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"තහවුරු කරන්න"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ඔබ සියල්ල සකසා ඇත!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"දැන් ඔබට ඔබ අගුලු තිරය මත ස්වයිප් කරන විට හෝ දැනුම්දීමක් මත තට්ටු කරන විට මෙම දුරකථනය අගුලු හැරීමට ඔබේ ඔරලෝසුව භාවිත කළ හැක"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"නිමයි"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"ඔරලෝසුව අගුලු හැරීම"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"ඔබ අගුලු තිරය මත ස්වයිප් කරන විට හෝ දැනුම්දීමක් තට්ටු කරන විට ඔබට මෙම දුරකථනය අගුලු හැරීමට ඔබේ ඔරලෝසුව භාවිත කළ හැක"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"ඔරලෝසුව අගුලු හැරීම භාවිත කිරීමට, ඔබේ ඔරලෝසුව ඔබේ මැණික් කටුවෙහි, ළඟා විය හැකිව අගුලු හැර, මෙම දුරකථනයට සම්බන්ධ කළ යුතු යි. සම්බන්ධතාව බාධා වුවහොත්, ඔරලෝසුව අගුලු හැරීම භාවිත කිරීමට පෙර ඔබට දුරකථනය අගුලු හැරීමට සිදු වෙයි.\n\nමතක තබා ගන්න:\nඔබට වරකට ලබා ගත හැක්කේ එක ඔරලෝසු සැකසුමක් පමණි. තව ඔරලෝසුවක් එක් කිරීමට පළමුව වත්මන් එක ඉවත් කරන්න."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ඔරලෝසුව අගුලු හැරීම ගැන තව දැන ගන්න"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"ඔරලෝසුව එක් කරන්න"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"ඔරලෝසුව ඉවත් කරන්න"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"ඇඟිලි සලකුණ සහ මුහුණෙන් අගුළු හැරීම"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"වැඩ සඳහා මුහුණු සහ ඇඟිලි සලකුණු අගුළු හැරීම"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"පිහිටුවීම අවශ්යයි"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"ඔබට මෙම මුරයතුර අනෙක් උපාංගයේ ටයිප් කිරීමට සිදුවනු ඇත."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"සම්බන්ධීකරණය කළ කට්ටලය සමඟ යුගල කිරීම තහවුරු කරන්න"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ඔබගේ සම්බන්ධතා සහ ඇමතුම් ඉතිහාසය වෙත ප්රවේශ විමට ඉඩ දෙන්න"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"සම්බන්ධතා සහ ඇමතුම් ඉතිහාසය වෙත ප්රවේශ වීමට ද ඉඩ දෙන්න"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"ඇමතුම් නිවේදන සහ තවත් දේ සඳහා තතු භාවිත කෙරේ"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> වෙත සම්බන්ධ වීමට නොහැකි විය."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"තිබෙන උපාංග"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"මෙම උපාංගය සමඟ Wi‑Fi බෙදා ගනිමින්…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"සබැඳෙමින්…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"හොට්ස්පොට් බෙදා ගන්න"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ඒ ඔබ බව සත්යාපනය කරන්න"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ඒ ඔබ බව සත්යාපන කරන්න"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi මුරපදය: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"හොට්ස්පොට් මුරපදය: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"ස්වයං‑සම්බන්ධ වීම"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"ජාලය පරාසය තුළ නැත"</string>
<string name="wifi_forget" msgid="3485573280364015620">"අමතක කරන්න"</string>
<string name="wifi_modify" msgid="5127926476383659412">"වෙනස් කරන්න"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ජාලය අමතක කිරීම අසාර්ථක වුණි"</string>
<string name="wifi_save" msgid="2312643132472226807">"සුරකින්න"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"ජාලය සුරැකීම අසාර්ථක වුණි"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"අවලංගු කරන්න"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"ඔබ කැමති සංඛ්යාතය නොමැති නම්, ඔබේ හොට්ස්පොට් වෙනස් එකක් භාවිතා කළ හැක. ඔබ සංඛ්යාතය වෙනස් කරන්නේ නම් හොට්ස්පොට් ආරක්ෂක සැකසීම් වෙනස් විය හැක."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz සමග ලබා ගත නොහැක"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"ඔබ හොට්ස්පොට් සංඛ්යාතය වෙනස් කරන්නේ නම් ආරක්ෂක සැකසීම් වෙනස් විය හැක"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"හොට්ස්පොට් සක්රිය කරමින්..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"හොට්ස්පොට් අක්රිය කරමින්…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ටෙදරින් නොමැත"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"ඔබේ මුරපදය අමතකද?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ඔබේ රටාව අමතකද?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ඔබේ PIN අමතකද?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"දිගටම කරගෙන යාමට ඔබේ උපාංග රටාව භාවිත කරන්න"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"දිගටම කරගෙන යාමට ඔබේ උපාංග PIN අංකය ඇතුළු කරන්න"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"දිගටම කරගෙන යාමට ඔබේ උපාංග මුරපදය ඇතුළු කරන්න"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"දිගටම කරගෙන යාමට ඔබේ කාර්යාල රටාව භාවිත කරන්න"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ඉදිරියට යාමට ඔබේ රටාව අඳින්න"</string>
+ <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">"දිගටම කරගෙන යාමට ඔබේ කාර්යාල PIN අංකය ඇතුළු කරන්න"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"දිගටම කරගෙන යාමට ඔබේ කාර්යාල මුරපදය ඇතුළු කරන්න"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"අමතර ආරක්ෂාව සඳහා, ඔබේ උපාංග රටාව භාවිතා කරන්න"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"කිසිඳු විස්තරයක් සපයා නොමැත."</string>
<string name="settings_button" msgid="2195468788019730377">"සැකසීම්"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ආලෝක සංවේදීතාව, ඡායා භීතිකාව, අඳුරු තේමාව, ඉරුවාරදය, හිසරදය, කියවීමේ ප්රකාරය, රාත්රී ප්රකාරය, දීප්තිය අඩු කිරීම, සුදු ලක්ෂ්යය"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"භාවිතයේ පහසුව, ප්රවේශ වීමේ පහසුව, සහාය, සහායක"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"දර්ශනය, ශ්රවණය, අන්ධ, බිහිරි, චාලක, හුරුකම, සහායක, සහාය, භාවිතයේ පහසුව, ප්රවේශයේ පහසුව, අත, උදවු"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"කවුළු විශාලනය, විශාලනය, විශාලනය කිරීම, අඩු දෘශ්යතාව, විශාල කරන්න, වඩා ලොකු කරන්න"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"සිරස්තල, සංවෘත සිරස්තල, CC, සජීවී පිටපත් කිරීම, ඇසීමට අපහසු, ශ්රවණය අහිමි, CART, කථනයෙන් පෙළට, උපසිරැසි"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"වර්ණ අසමානතාව"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"මෝටරය, මූසිකය"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"ශ්රවණාධාර, ඇසීමට අපහසු, ශ්රවණාබාධය, දර්වාකාර රෝපණ, විස්තාරණ උපාංග, හඬ සකසනයන්"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"චාලක, මූසිකය, බාහිර මූසිකය, හිස මූසිකය, අනුවර්තන මූසිකය, රෝද පුටුව, ජොයිස්ටික්"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"ශ්රවණාධාර, ඇසීමට අපහසු, ශ්රවණාබාධය, දර්වාකාර රෝපණ, විස්තාරණ උපාංග, හඬ සකසනයන්, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"ඇසීමට අපහසු, ශ්රවණය අහිමි, සිරස්තල, ටෙලිටයිප්, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"බොත්තම් තුනක්"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"හුරුකම, චාලක, ජ්යෙෂ්ඨ, ආතරයිටිස්, rsi, ආඝාතය, වෙව්ලීම, බහු දෘඩවීම, මස්තිෂ්ක අංශභාගය, සෙලවීම, පුනරාවර්තන වික්රියා තුවාල, අත"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"පමාව, හුරුකම, වෘද්ධ"</string>
<string name="print_settings" msgid="8519810615863882491">"මුද්රණය කිරීම්"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ක්රියාවිරහිතයි"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 මුද්රණ සේවාවක් ක්රියාත්මකයි}one{මුද්රණ සේවා #ක් ක්රියාත්මකයි}other{මුද්රණ සේවා #ක් ක්රියාත්මකයි}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> දත්ත අනතුරු ඇඟවීම"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> දත්ත සීමාව"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> දත්ත අනතුරු ඇඟවීම / <xliff:g id="ID_2">^2</xliff:g> දත්ත සීමාව"</string>
- <string name="operator_warning" msgid="5672761970087591211">"උපාංග ගිණුම්ගත කිරීමෙන් වාහක දත්ත ගිණුම්ගත කිරීම වෙනස් විය හැකිය"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"වාහක ජාල මගින් භාවිත කරන දත්ත බැහැර කරයි"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> භාවිත විය"</string>
<string name="set_data_warning" msgid="1685771882794205462">"දත්ත අනතුරු ඇඟවීම සකසන්න"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"ස්වයං පිරවුම් සේවාව"</string>
<string name="default_autofill_app" msgid="372234803718251606">"පෙරනිමි ස්වයං පිරවුම් සේවාව"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"මුරපද"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"මුරපද, මුරයතුරු සහ දත්ත සේවා"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"මුරපද, මුරයතුරු සහ දත්ත සේවා"</string>
<string name="credman_credentials" msgid="4931371941253324143">"අතිරේක සපයන්නන්"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# මුරපදයක්}one{මුරපද #ක්}other{මුරපද #ක්}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ස්වයං, පිරවුම, ස්වයං පිරවුම, මුරපදය"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ස්වයංක්රීය, පුරවන්න, ස්වයං පිරවුම, දත්ත, මුරයතුර, මුරපදය"</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="4951846866327737417">"<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> ස්වයං පිරවිය හැකි දේ තීරණය කිරීමට ඔබේ තිරයෙහි ඇති දේ භාවිතා කරයි. නව මුරපද, මුරයතුරු සහ අනෙකුත් තතු මෙතැන් සිට මෙහි සුරකිනු ඇත."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"මුරපද, මුරයතුරු සහ දත්ත සේවා"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"මුරපද, මුරයතුරු සහ දත්ත සේවා"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s ක්රියාවිරහිත කරන්න ද?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>මෙම සේවාව අක්රිය කරන්නද?</b> <br/> <br/> ඔබ පුරනය වන විට මුරපද, මුරයතුරු, ගෙවීම් ක්රම, සහ අනෙකුත් තොරතුරු වැනි සුරැකි තොරතුරු පුරවන්නේ නැත. ඔබේ සුරකින ලද තොරතුරු භාවිත කිරීමට, මුරපදයක්, මුරයතුරක් හෝ දත්ත සේවාවක් තෝරන්න."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s භාවිතා කරන්න ද?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ස්වයං පිරවිය හැකි දේවල් නිර්ණය කිරීමට Google ඔබේ තිරයෙහි ඇති දේවල් භාවිතා කරයි."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"මුරපද, මුරයතුරු සහ දත්ත සේවා සීමාව"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"ඔබට එකවර මුරපද, මුරයතුරු සහ දත්ත සේවා 5ක් දක්වා සක්රියව තබා ගත හැක. තවත් එක් කිරීමට සේවාවක් ක්රියා විරහිත කරන්න."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"මුරපද, මුරයතුරු සහ දත්ත සේවා සීමාව"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"ඔබට එකවර මුරපද, මුරයතුරු සහ දත්ත සේවා 5 ක් දක්වා ක්රියාකාරීව තබා ගත හැක. තව එක් කිරීමට සේවයක් අක්රිය කරන්න."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ක්රියාවිරහිත කරන්න"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ස්වයං පිරවුම"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"ඇතුළු වීමේ මට්ටම"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ගැළපෙන මාධ්යවලින් ශ්රව්ය වඩාත් ගිලී යයි"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"හිස සටහන් තබා ගැනීම"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ඔබ ඔබගේ හිස වඩාත් ස්වභාවික ශබ්ද වීමට ගෙන යන විට ශ්රව්ය වෙනස් වේ"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ශ්රව්ය උපාංග වර්ගය"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"නොදනී"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ස්පීකරය"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"හෙඩ්ෆෝන්"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"මෝටර් රථ කට්ටලය"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"වෙනත්"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ජාල බාගැනීම් අනුපාත සීමාව"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"අන්තර්ජාල සබැඳුම සපයන සියලු ජාල සඳහා යෙදෙන ජාල කලාප පළල ඇතුළු වීමේ අනුපාත සීමාව වින්යාස කරන්න."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ජාල බාගැනීම් අනුපාත සීමාව වින්යාස කරන්න"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"යෙදුම අස්ථාපනය කරන්න"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{පසුගිය මාස # තුළ ස්ථාපනය කරන ලද යෙදුම්}one{පසුගිය මාස # තුළ ස්ථාපනය කරන ලද යෙදුම්}other{පසුගිය මාස # තුළ ස්ථාපනය කරන ලද යෙදුම්}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{මාස #කට පෙර ස්ථාපනය කර ඇති යෙදුම්}one{මාස #කට පෙර ස්ථාපනය කර ඇති යෙදුම්}other{මාස #කට පෙර ස්ථාපනය කර ඇති යෙදුම්}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"දර්ශන අනුපාතය"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"මෙම යෙදුම ඔබේ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> වෙත ගැළපෙන පරිදි නිර්මාණය කර නොමැති නම් එය බැලීමට දර්ශන අනුපාතයක් තෝරා ගන්න"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"යෝජිත යෙදුම්"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ඔබ ප්රතික්ෂේප කර ඇති යෙදුම්"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"පෙරනිමි යෙදුම"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"පූර්ණ තිරය"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"අර්ධ තිරය"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"උපාංග දර්ශන අනුපාතය"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ඔබ දර්ශන අනුපාතය වෙනස් කළ විට යෙදුම නැවත ආරම්භ වනු ඇත. ඔබට නොසුරකින ලද වෙනස්කම් අහිමි විය හැක."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ඇඟිලි සලකුණු සංවේදකය"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"ෆ්ලෑෂ් දැනුම්දීම්"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"ෆ්ලෑෂ් දැනුම්දීම් පිළිබඳව"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"මධ්යම"</string>
<string name="contrast_high" msgid="3988567609694797696">"ඉහළ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"මෙම යෙදුම විවෘත කළ හැක්කේ 1 කවුළුවක පමණයි"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"සේවාව ක්රියාත්මකයි"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"සේවාව ක්රියාවිරහිතයි"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"කෙටිමඟ ක්රියාවිරහිතයි"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ක්රියාත්මකයි"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ක්රියාවිරහිතයි"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ක්රියාවිරහිතයි"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ක්රියාවිරහිතයි"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ක්රියාත්මකයි"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ක්රියාවිරහිතයි"</string>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index b867c38..51c227d 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Po 1 minúte"</item>
<item msgid="1574040255478150028">"Po 5 minútach"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Ak chcete predĺžiť výdrž batérie, zapnite adaptáciu jasu"</item>
+ <item msgid="2256666063790193306">"Ak chcete predĺžiť výdrž batérie, znížte časový limit obrazovky"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 98cd4df..a05d468 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Nezadané"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženský rod"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Mužský rod"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Chcete vybraný jazyk odstrániť?}few{Chcete vybrané jazyky odstrániť?}many{Remove selected languages?}other{Chcete vybrané jazyky odstrániť?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text sa zobrazí v inom jazyku."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nie je možné odstrániť všetky jazyky"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Tvár a hodinky <xliff:g id="WATCH">%s</xliff:g> boli pridané"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Tvár, odtlačok prsta a hodinky <xliff:g id="WATCH">%s</xliff:g> boli pridané"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Tvár, odtlačky prstov a hodinky <xliff:g id="WATCH">%s</xliff:g> boli pridané"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavte si hodinky"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Odomknutie hodinkami je ďalší praktický spôsob, ako odomknúť tento telefón, napríklad keď máte vlhké prsty alebo keď zariadenie nedokáže rozpoznať vašu tvár.\n\nHodinkami môžete odomykať tento telefón, keď:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Teraz nie"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Pokračovať"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Viac"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Ako to funguje"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Hodinky musíte mať odomknuté na zápästí a v dosahu tohto telefónu. Keď ich budete mať na zápästí, nebudete ich musieť znova odomykať."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Keď sa tento telefón odomkne, dostanete v hodinkách upozornenie. Ak sa odomkol a vy ste to nechceli, klepnutím na upozornenie ho znova uzamknete."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Všetko máte pod kontrolou"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Hodinky môžete z funkcie odomknutia hodinkami kedykoľvek odstrániť v Nastaveniach"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Klepnite na upozornenie"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Potiahnite po uzamknutej obrazovke nahor"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Vyberte svoje hodinky"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Dostupné hodinky"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Zrušiť"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potvrdiť"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Hotovo!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Hodinkami môžete teraz odomykať tento telefón potiahnutím po uzamknutej obrazovke nahor alebo klepnutím na upozornenie"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Hotovo"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Odomknutie hodinkami"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Hodinkami môžete odomykať tento telefón potiahnutím po uzamknutej obrazovke nahor alebo klepnutím na upozornenie"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Ak chcete používať odomknutie hodinkami, musíte mať hodinky odomknuté na zápästí, pričom musia byť pripojené k tomuto telefónu a v jeho dosahu. Ak sa pripojenie preruší, budete musieť pred použitím odomknutia hodinkami telefón odomknúť.\n\nPamätajte:\nSúčasne môžete mať nastavené iba jedny hodinky. Ak chcete pridať ďalšie, musíte najprv odstrániť aktuálne."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Ďalšie informácie o odomknutí hodinkami"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Pridať hodinky"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Odstrániť hodinky"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odomknutie odtlačkom prsta a tvárou"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Odomknutie tvárou a odtlačkom prsta pre prácu"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Vyžaduje sa nastavenie"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Tento prístupový kľúč možno bude potrebné zadať aj v druhom zariadení."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potvrďte párovanie s koordinovanou skupinou"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Povoliť prístup ku kontaktom a histórii hovorov"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Povoliť aj prístup ku kontaktom a histórii hovorov"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informácie budú použité na účely oznámení hovorov a ďalších funkcií"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nepodarilo sa pripojiť k zariadeniu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Dostupné zariadenia"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"S týmto zariadením sa zdieľa pripojenie Wi‑Fi…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Pripája sa…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Zdieľať hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Overenie vašej totožnosti"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Ste to vy?"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Heslo siete Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Heslo hotspotu: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automaticky pripájať"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Sieť nie je v dosahu"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Odstrániť"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Upraviť"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Sieť sa nepodarilo odstrániť"</string>
<string name="wifi_save" msgid="2312643132472226807">"Uložiť"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Nepodarilo sa uložiť sieť"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Zrušiť"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ak vaša preferovaná frekvencia nie je k dispozícii, hotspot môže použiť inú. Keď zmeníte frekvenciu, môžu sa zmeniť aj nastavenia zabezpečenia hotspotu."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nie je k dispozícii v pásme 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Keď zmeníte frekvenciu hotspotu, môžu sa zmeniť aj nastavenia zabezpečenia"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Prebieha zapínanie hotspotu..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Prebieha vypínanie hotspotu..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Zdieľanie dátového pripojenia nie je k dispozícii"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zabudli ste heslo?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zabudli ste vzor?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zabudli ste PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Ak chcete pokračovať, použite bezpečnostný vzor zariadenia"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Ak chcete pokračovať, zadajte PIN zariadenia"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Ak chcete pokračovať, zadajte heslo zariadenia"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Ak chcete pokračovať, použite pracovný bezpečnostný vzor"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Pokračujte nakreslením vzoru"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Pokračujte zadaním kódu PIN"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Pokračujte zadaním hesla"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Pokračujte nakreslením vzoru pre pracovný účet"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Pre pokračovanie zadajte svoj pracovný PIN"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Ak chcete pokračovať, zadajte pracovné heslo"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Zadajte bezpečnostný vzor zariadenia a získajte vyššiu mieru zabezpečenia"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"K dispozícii nie je žiadny popis."</string>
<string name="settings_button" msgid="2195468788019730377">"Nastavenia"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"svetloplachosť, fotofóbia, tmavý motív, migréna, bolesť hlavy, režim čítania, nočný režim, znížiť jas, biely bod"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ľahké použitie, ľahký prístup, asistencia, asistenčné"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"zrak, sluch, nevidiaci, nepočujúci, motorický, zručnosť, pomocný, asistencia, jednoduchosť používania, jednoduchý prístup, ruka, pomoc"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Lupa okna, lupa, zväčšenie, slabozrakosť, zväčšiť"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Titulky, skryté titulky, Okamžitý prepis, slabo počujúci, hluchota, CART, prevod reči na text, titulok"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kontrast farieb"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorické, myš"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"načúvadlá, slabo počujúci, strata sluchu, kochleárne implantáty, zosilňovacie zariadenia, procesory zvuku"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorický, myš, externá myš, myš ovládaná hlavou, adaptívna myš, invalidný vozík, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"načúvadlá, slabo počujúci, strata sluchu, kochleárne implantáty, zosilňovacie zariadenia, zvukové procesory, tiesňová linka"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"slabo počujúci, hluchota, titulky, ďalekopisný stroj, textový telefón"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri tlačidlá"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"zručnosť, motorický, senior, artritída, rsi, porážka, chvenie, roztrúsená skleróza, mozgová obrna, trasenie, zranenie z opakovaného namáhania, ruka"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"oneskorenie, zručnosť, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Tlač"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Vypnutá"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Je zapnutá 1 tlačová služba}few{Sú zapnuté # tlačové služby}many{# print services on}other{Je zapnutých # tlačových služieb}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Dátové upozornenie: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Dátový limit: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Dátové upozornenie: <xliff:g id="ID_1">^1</xliff:g> / dátový limit: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Účtovanie dát operátorom sa môže líšiť od účtovania na zariadení"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Vylúči dáta využité sieťami operátora"</string>
<string name="data_used_template" msgid="8229342096562327646">"Spotreba <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Nastaviť dátové upozornenie"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Služba automatického dopĺňania"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Predvolená služba automatického dopĺňania"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Heslá"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Heslá, prístupové kľúče a služby poskytujúce údaje"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Heslá, prístupové kľúče a služby poskytujúce údaje"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Ďalší poskytovatelia"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# heslo}few{# heslá}many{# passwords}other{# hesiel}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automaticky, vypĺňanie, automatické dopĺňanie, heslo"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatické, dopĺňanie, automatické dopĺňanie, údaje, prístupový kľúč, heslo"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Skontrolujte, či ide o dôveryhodnú aplikáciu</b> <br/> <br/> <xliff:g id=app_name example=Automatické dopĺňanie Google>%1$s</xliff:g> určuje na základe obsahu obrazovky, čo je možné automaticky vyplniť."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Chcete použiť <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> určuje, čo treba automaticky doplniť, pomocou obsahu na obrazovke. Odteraz sa tu budú ukladať nové heslá, prístupové kľúče a ďalšie informácie."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Heslá, prístupové kľúče a služby poskytujúce údaje"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Heslá, prístupové kľúče a služby poskytujúce údaje"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Chcete službu %1$s vypnúť?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Chcete túto službu vypnúť?</b> <br/> <br/> Keď sa prihlásite, uložené informácie, ako sú heslá, prístupové kľúče, spôsoby platby a iné, sa nebudú dopĺňať. Ak chcete používať uložené údaje, vyberte heslo, prístupový kľúč alebo službu poskytujúcu údaje."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Chcete používať %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s určuje na základe obsahu na obrazovke, čo je možné automaticky doplniť."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limit hesiel, prístupových kľúčov a služieb údajov"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Naraz môžete mať aktívnych až päť hesiel, prístupových kľúčov a služieb poskytujúcich údaje. Ak chcete pridať ďalšiu službu, jednu vypnite."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limit hesiel, prístupových kľúčov a služieb poskytujúcich údaje"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Naraz môžete mať aktívnych až päť hesiel, prístupových kľúčov a služieb poskytujúcich údaje. Ak chcete pridať ďalšiu službu, jednu vypnite."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Vypnúť"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Automatické dopĺňanie"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Úroveň zaznamenávania"</string>
@@ -4674,6 +4710,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk z kompatibilných médií bude strhujúcejší"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Sledovanie pohybov hlavy"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zmeny zvuku pri pohybe hlavou budú prirodzenejšie"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Typ audio zariadenia"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Neznáme"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Reproduktor"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Slúchadlá"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Súprava do auta"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Iné"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limit rýchlosti sťahovania v sieti"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Nakonfigurujte limit rýchlosti sťahovania v sieti, ktorý sa bude vzťahovať na všetky siete umožňujúce pripojenie k internetu."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurácia limitu rýchlosti sťahovania v sieti"</string>
@@ -4706,24 +4750,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Odinštalovať aplikáciu"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikácie nainštalované za posledný # mesiac}few{Aplikácie nainštalované za posledné # mesiace}many{Aplikácie nainštalované za posledného # mesiaca}other{Aplikácie nainštalované za posledných # mesiacov}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikácie nainštalované pred viac než # mesiacom}few{Aplikácie nainštalované pred viac než # mesiacmi}many{Aplikácie nainštalované pred viac než # mesiaca}other{Aplikácie nainštalované pred viac než # mesiacmi}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Pomer strán"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Vyberte pomer strán zobrazenia tejto aplikácie, keď nebola navrhnutá tak, aby sa zmestila do zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Navrhované aplikácie"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikácie, ktoré ste prepísali"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Predvolené nastavenie aplikácie"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Celá obrazovka"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Polovica obrazovky"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Pomer strán zariadenia"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Keď zmeníte pomer strán, aplikácia sa reštartuje. Môžete prísť o neuložené zmeny."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Senzor odtlačkov prstov"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Svetelné upozornenia"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Svetelné upozornenia"</string>
@@ -4758,10 +4796,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Stredný"</string>
<string name="contrast_high" msgid="3988567609694797696">"Vysoký"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Táto aplikácia môže byť otvorená iba v jednom okne"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Služba je zapnutá"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Služba je vypnutá"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Skratka je vypnutá"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Zapnuté"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Vypnuté"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Vypnuté"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Vypnuté"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Zapnuté"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Vypnuté"</string>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 7291e8e..795d02d 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Po 1 minuti"</item>
<item msgid="1574040255478150028">"Po 5 minutah"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Vklopite prilagodljivo svetlost, da podaljšate čas delovanja baterije"</item>
+ <item msgid="2256666063790193306">"Skrajšajte časovno omejitev za zaslon, da podaljšate čas delovanja baterije"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 8c90c7b..86fc4db 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Ni določeno"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Ženski spol"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Moški spol"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Želite odstraniti izbrani jezik?}one{Želite odstraniti izbrane jezike?}two{Želite odstraniti izbrane jezike?}few{Želite odstraniti izbrane jezike?}other{Želite odstraniti izbrane jezike?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Besedilo bo prikazano v drugem jeziku."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Vseh jezikov ni mogoče odstraniti"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Obraz in <xliff:g id="WATCH">%s</xliff:g> sta dodana"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Obraz, prstni odtis in <xliff:g id="WATCH">%s</xliff:g> so dodani"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Obraz, prstni odtisi in <xliff:g id="WATCH">%s</xliff:g> so dodani"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Nastavitev ure"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Odklepanje z uro je dodaten priročen način odklepanja tega telefona, na primer ko imate mokre prste ali ko telefon ne prepozna vašega obraza.\n\nTa telefon lahko odklenete z uro v teh primerih:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Ne zdaj"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Nadaljuj"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Več"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Kako deluje"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ura mora biti odklenjena, na vašem zapestju in v bližini tega telefona. Dokler jo boste imeli na zapestju, vam ure ne bo treba znova odklepati."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Ko bo ta telefon odklenjen, boste v uri prejeli obvestilo. Če ste telefon odklenili nenamerno, se dotaknite obvestila, da ga znova zaklenete."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Vse imate pod nadzorom"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Uro lahko v nastavitvah kadar koli odstranite iz odklepanja z uro."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Dotaknite se obvestila"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Povlecite navzgor po zaklenjenem zaslonu"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Izbira ure"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Razpoložljive ure"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Prekliči"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Potrdi"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Vse je pripravljeno"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Zdaj lahko z uro odklenete ta telefon, ko povlečete navzgor po zaklenjenem zaslonu ali se dotaknete obvestila."</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Končano"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Odklepanje z uro"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Z uro lahko odklenete ta telefon, ko povlečete navzgor po zaklenjenem zaslonu ali se dotaknete obvestila."</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Če želite uporabiti odklepanje z uro, mora biti ura odklenjena, na vašem zapestju, v bližini tega telefona in povezana z njim. Če se bo povezava prekinila, boste morali odkleniti telefon, preden boste lahko uporabili odklepanje z uro.\n\nUpoštevajte:\nHkrati imate lahko nastavljeno samo eno uro. Če želite dodati drugo uro, morate najprej odstraniti trenutno uro."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Preberite več o odklepanju z uro."</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Dodaj uro"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Odstranitev ure"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Odklepanje s prstnim odtisom in obrazom"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Odklepanje z obrazom in prstnim odtisom za delo"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Potrebna je nastavitev"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Geslo boste morda morali vnesti tudi v drugi napravi."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Potrdite seznanjanje s kompletom naprav"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Dovoli dostop do stikov in zgodovine klicev"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Dovoli tudi dostop do stikov in zgodovine klicev"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Podatki bodo uporabljeni za najave klicev in drugo"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Povezave z napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ni bilo mogoče vzpostaviti."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Razpoložljive naprave"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deljenje povezave Wi‑Fi s to napravo …"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Povezovanje …"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Delite dostopno točko"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potrdite, da ste res vi"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potrdite, da ste res vi"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Geslo za Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Geslo za dostopno točko: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Samodejna povezava"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Omrežje ni v dosegu"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Pozabi"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Spremeni"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Pozabljanje omrežja ni uspelo"</string>
<string name="wifi_save" msgid="2312643132472226807">"Shrani"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Shranjevanje omrežja ni uspelo"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Prekliči"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Če prednostna frekvenca ni na voljo, dostopna točka morda uporablja drugo. Če spremenite frekvenco, se varnostne nastavitve dostopne točke lahko spremenijo."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Ni na voljo s 6 GHz."</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Če spremenite frekvenco dostopne točke, se varnostne nastavitve lahko spremenijo."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Vklop dostopne točke ..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Izklop dostopne točke ..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Internetna povezava prek mobilnega telefona ni na voljo"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ste pozabili geslo?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ste pozabili vzorec?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Ste pozabili svoj PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Za nadaljevanje uporabite vzorec za odklepanje naprave."</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Za nadaljevanje vnesite kodo PIN za napravo."</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Če želite nadaljevati, vnesite geslo za napravo."</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Če želite nadaljevati, uporabite vzorec za delovni profil"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Če želite nadaljevati, narišite vzorec"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Če želite nadaljevati, vnesite kodo PIN"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Če želite nadaljevati, vnesite geslo"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Če želite nadaljevati, narišite vzorec za delovni profil"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Za nadaljevanje vnesite kodo PIN za delovni profil"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Če želite nadaljevati, vnesite geslo za delovni profil"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Zaradi večje varnosti vnesite vzorec za to napravo"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ni opisa."</string>
<string name="settings_button" msgid="2195468788019730377">"Nastavitve"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"občutljivost na svetlobo, fotofobija, temna tema, migrena, glavobol, način branja, nočni način, zmanjšanje svetlosti, točka beline"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"preprosta uporaba, preprost dostop, pomoč, podporno"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"vid, sluh, slepi, gluhi, gibalno, spretnostno, podporno, podpora, preprosta uporaba, preprost dostop, roka, pomoč"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"lupa v oknu, povečava/pomanjšava, povečava, slabovidnost, povečaj, naredi večje"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"podnapisi, sproten prepis, naglušnost, izguba sluha, CART, pretvorba govora v besedilo, podnapis"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"barvni kontrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorično, gibalno, miška"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"slušni aparati, naglušna oseba, izguba sluha, polževi vsadki, ojačevalniki, obdelovalniki zvoka"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"gibalno, miška, zunanja miška, naglavna miška, prilagodljiva miška, invalidski voziček, krmilna palica"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"slušni aparati, naglušna oseba, izguba sluha, polževi vsadki, ojačevalniki, obdelovalniki zvoka, telefonska centrala za javno varnost, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"naglušnost, izguba sluha, podnapisi, teleprinter, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"trije gumbi, s tremi gumbi"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"spretnostno, gibalno, starejši, artritis, RSI, kap, tremor, multipla skleroza, cerebralna paraliza, tresenje, poškodba zaradi ponavljajočih se gibov, roka"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"zakasnitev, spretnostno, starejši"</string>
<string name="print_settings" msgid="8519810615863882491">"Tiskanje"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Izklopljeno"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 storitev tiskanja je vklopljena}one{# storitev tiskanja je vklopljena}two{# storitvi tiskanja sta vklopljeni}few{# storitve tiskanja so vklopljene}other{# storitev tiskanja je vklopljenih}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Opozorilo pri <xliff:g id="ID_1">^1</xliff:g> prenesenih podatkov"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Omejitev prenosa podatkov pri <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Opozorilo ob preneseni količini podatkov <xliff:g id="ID_1">^1</xliff:g>/omejitev prenosa podatkov pri <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operaterjeve meritve prenosa podatkov so morda drugačne kot v napravi."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ne vključuje podatkov, ki jih uporabljajo omrežja operaterjev."</string>
<string name="data_used_template" msgid="8229342096562327646">"Preneseno: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Nastavi opozorilo za prenos podatkov"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Storitev samodejnega izpolnjevanja"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Privzeta storitev samodejnega izpolnjevanja"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Gesla"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Gesla, ključi za dostop in podatkovne storitve"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Gesla, ključi za dostop in podatkovne storitve"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Dodatni ponudniki"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# geslo}one{# geslo}two{# gesli}few{# gesla}other{# gesel}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"samodejno, izpolnjevanje, samodejno izpolnjevanje, geslo"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"samodejno, izpolnjevanje, samodejno izpolnjevanje, podatki, ključ za dostop, geslo"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Prepričajte se, da zaupate tej aplikaciji</b> <br/> <br/> <xliff:g id=app_name example=Google Samodejno izpolnjevanje>%1$s</xliff:g> iz elementov na zaslonu ugotovi, kaj je mogoče samodejno izpolniti."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Uporabi aplikacijo <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> na podlagi prikaza na zaslonu ugotovi, kaj se lahko samodejno izpolni. Nova gesla, ključi za dostop in drugi podatki bodo odslej shranjeni tukaj."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Gesla, ključi za dostop in podatkovne storitve"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Gesla, ključi za dostop in podatkovne storitve"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Želite izklopiti »%1$s«?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Želite izklopiti to storitev?</b> <br/> <br/> Shranjeni podatki, kot so gesla, ključi za dostop, plačilna sredstva in drugo, ne bodo izpolnjeni ob prijavi. Za uporabo shranjenih podatkov izberite geslo, ključ za dostop ali podatkovno storitev."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Želite uporabiti ponudnika %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s na podlagi prikaza na zaslonu ugotovi, kaj se lahko samodejno izpolni."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Omejitev števila gesel, ključev za dostop in podatkovnih storitev"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Naenkrat je lahko aktivnih največ 5 gesel, ključev za dostop in podatkovnih storitev. Če želite dodati novo storitev, najprej izklopite eno od obstoječih."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Omejitev števila gesel, ključev za dostop in podatkovnih storitev"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Hkrati je lahko aktivnih največ 5 gesel, ključev za dostop in podatkovnih storitev. Če želite dodati novo storitev, najprej izklopite eno od obstoječih."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Izklopi"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Samodejno izpolnjevanje"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Raven pisanja dnevnika"</string>
@@ -4674,6 +4710,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvok iz združljivih predstavnosti dobi prostornejšo razsežnost."</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Spremljanje premikov glave"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvok se med premikanjem glave spreminja za naravnejšo izkušnjo."</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Vrsta naprave za zvok"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Neznano"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvočnik"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Slušalke"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Avtokomplet"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Drugo"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Omejitev hitrosti prenosa omrežja"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurirajte omejitev dohodne pasovne širine omrežja, ki velja za vsa omrežja, ki zagotavljajo internetno povezljivost."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfiguriranje omejitve hitrosti prenosa omrežja"</string>
@@ -4706,24 +4750,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Odmestitev aplikacije"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacije, nameščene v zadnjem # mesecu}one{Aplikacije, nameščene v zadnjem # mesecu}two{Aplikacije, nameščene v zadnjih # mesecih}few{Aplikacije, nameščene v zadnjih # mesecih}other{Aplikacije, nameščene v zadnjih # mesecih}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacije, nameščene pred več kot # mesecem}one{Aplikacije, nameščene pred več kot # mesecem}two{Aplikacije, nameščene pred več kot # mesecema}few{Aplikacije, nameščene pred več kot # meseci}other{Aplikacije, nameščene pred več kot # meseci}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Razmerje stranic"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Izberite razmerje stranic za ogled te aplikacije, če ni bila oblikovana za popolno prileganje napravi »<xliff:g id="DEVICE_NAME">%1$s</xliff:g>«."</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Predlagane aplikacije"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacije, za katere ste uveljavili preglasitev"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Privzeto za aplikacijo"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Celozaslonski način"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Način polovice zaslona"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Razmerje stranic naprave"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16 : 9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3 : 2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4 : 3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacija se bo znova zagnala, ko boste spremenili razmerje stranic. Morda boste izgubili neshranjene spremembe."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Tipalo prstnih odtisov"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Obveščanje z utripanjem"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"O obveščanju z utripanjem"</string>
@@ -4758,10 +4796,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Srednji"</string>
<string name="contrast_high" msgid="3988567609694797696">"Visok"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"To aplikacijo je mogoče odpreti samo v enem oknu"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Storitev je vklopljena"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Storitev je izklopljena"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Bližnjica je izklopljena"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Vklopljeno"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Izklopljeno"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Izklopljeno"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Izklopljeno"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Vklopljeno"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Izklopljeno"</string>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 5111be2..fda4f5e 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Pas 1 minute"</item>
<item msgid="1574040255478150028">"Pas 5 minutash"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Aktivizo ndriçimin me përshtatje për të rritur kohëzgjatjen e baterisë"</item>
+ <item msgid="2256666063790193306">"Zvogëlo kohën e pritjes të ekranit për të rritur kohëzgjatjen e baterisë"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index c29e361..d9dc2e5 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"E papërcaktuar"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Femërore"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Mashkullore"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Të hiqet gjuha e zgjedhur?}other{Të hiqen gjuhët e zgjedhura?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Teksti do të shfaqet në një gjuhë tjetër."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Nuk mund të hiqen të gjitha gjuhët"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Fytyra dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Fytyra, gjurma e gishtit dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Fytyra, gjurmët e gishtave dhe <xliff:g id="WATCH">%s</xliff:g> u shtuan"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfiguro orën tënde"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"\"Shkyçja me orë\" është një mënyrë tjetër praktike për të shkyçur këtë telefon, p.sh. kur i ke gishtat të lagur ose kur fytyra nuk njihet.\n\nMund të përdorësh orën tënde për ta shkyçur këtë telefon kur:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Jo tani"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Vazhdo"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Më shumë"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Si funksionon"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ora jote duhet të jetë e shkyçur në kyçin e dorës dhe të jetë në afërsi me këtë telefon. Nuk do të jetë e nevojshme ta shkyçësh përsëri orën tënde kur është në kyçin e dorës."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kur ky telefon është i shkyçur, do të njoftohesh në orën tënde. Nëse është shkyçur aksidentalisht, trokit njoftimin për ta kyçur sërish telefonin."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kontrolli është në duart e tua"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Mund ta heqësh orën tënde nga \"Shkyçja me orë\" në çdo kohë te \"Cilësimet\""</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Trokit një njoftim"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Rrëshqit shpejt lart në ekranin e kyçjes"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Zgjidh orën tënde"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Orët që ofrohen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Anulo"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Konfirmo"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Je plotësisht gati!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Tani mund ta përdorësh orën për të shkyçur këtë telefon kur rrëshqet shpejt lart në ekranin e kyçjes ose kur troket një njoftim"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"U krye"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Shkyçja me orë"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Mund ta përdorësh orën për të shkyçur këtë telefon kur rrëshqet shpejt lart në ekranin e kyçjes ose kur troket një njoftim"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Për të përdorur \"Shkyçjen me orë\", ora jote duhet të jetë e shkyçur në kyçin e dorës, në afërsi dhe të jetë e lidhur me këtë telefon. Nëse lidhja ndërpritet, do të të duhet të shkyçësh telefonin para se të mund të përdorësh \"Shkyçjen me orë\".\n\nKi parasysh:\nMund të konfigurosh vetëm një orë njëkohësisht. Për të shtuar një orë tjetër, fillimisht hiq orën aktuale."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Mëso më shumë rreth \"Shkyçjes me orë\""</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Shto orën"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Hiq orën"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Shkyçja me gjurmë gishti dhe me fytyrë"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Shkyçja me fytyrë dhe gjurmë gishti për profilin e punës"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Nevojitet konfigurimi"</string>
@@ -531,7 +558,7 @@
<string name="unlock_set_unlock_launch_picker_title" msgid="4981063601772605609">"Kyçja e ekranit"</string>
<string name="unlock_set_unlock_launch_picker_title_profile" msgid="7631371082326055429">"Kyçja e profilit të punës"</string>
<string name="unlock_set_unlock_off_title" msgid="2831957685685921667">"Asnjë"</string>
- <string name="unlock_set_unlock_none_title" msgid="2844029875174409728">"Me rrëshqitje"</string>
+ <string name="unlock_set_unlock_none_title" msgid="2844029875174409728">"Rrëshqitje"</string>
<string name="unlock_set_unlock_pattern_title" msgid="8224895208452995332">"Motiv"</string>
<string name="unlock_set_unlock_pin_title" msgid="5283636759362880407">"Kod PIN"</string>
<string name="unlock_set_unlock_password_title" msgid="2559842616268607041">"Fjalëkalim"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Mund të duhet gjithashtu ta shkruash këtë çelës kalimi në pajisjen tjetër."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Konfirmo për të çiftuar me grupin e koordinuar"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Lejo qasjen te kontaktet dhe historiku i telefonatave"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Lejo gjithashtu qasjen te kontaktet dhe historiku i telefonatave"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Informacionet do të përdoren për njoftimet për telefonatat etj."</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Nuk mundi të lidhej me <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Pajisjet që ofrohen"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Po ndan Wi‑Fi me këtë pajisje…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Po lidhet…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Ndaj zonën e qasjes për internet"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifiko që je ti"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifiko që je ti"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Fjalëkalimi i Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Fjalëkalimi i zonës së qasjes për internet: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Lidh automatikisht"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Rrjeti nuk është brenda rrezes"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Harro"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Modifiko"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Dështoi në harrimin e rrjetit"</string>
<string name="wifi_save" msgid="2312643132472226807">"Ruaj"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Dështoi në ruajtjen e rrjetit"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Anulo"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Nëse frekuenca jote e preferuar nuk ofrohet, zona e qasjes për internet mund të përdorë një tjetër. Cilësimet e sigurisë së zonës së qasjes për internet mund të ndryshojnë nëse ndryshon frekuencën."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Nuk ofrohet me 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Cilësimet e sigurisë mund të ndryshojnë nëse ndryshon frekuencën e zonës së qasjes për internet"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Po aktivizon zonën e qasjes..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Po çaktivizon zonën e qasjes..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Ndarja e internetit nuk ofrohet"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Harrove fjalëkalimin?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Harrove motivin?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Harrove kodin PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Përdor motivin e pajisjes për të vazhduar"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Fut kodin PIN të pajisjes për të vazhduar"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Fut fjalëkalimin e pajisjes për të vazhduar"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Përdor motivin tënd të punës për të vazhduar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Vizato motivin për të vazhduar"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Fut kodin PIN për të vazhduar"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Fut fjalëkalimin për të vazhduar"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Vizato motivin e punës për të vazhduar"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Fut kodin tënd PIN të punës për të vazhduar"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Fut fjalëkalimin tënd të punës për të vazhduar"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Për më shumë siguri, përdor motivin e pajisjes"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Nuk është dhënë asnjë përshkrim."</string>
<string name="settings_button" msgid="2195468788019730377">"Cilësimet"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ndjeshmëria ndaj dritës, fotofobia, tema e errët, migrena, dhimbje koke, modaliteti i leximit, modaliteti i natës, ul ndriçimin, pika e bardhë"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Lehtësia e përdorimit, lehtësia e qasjes, ndihma, ndihmëse"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"shikimi, dëgjimi, i verbër, i shurdhër, motorik, shkathtësi, ndihmëse, ndihmë, lehtësi përdorimi, lehtësi qasjeje, dorë, ndihmë"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Zmadhuesi i dritareve, zmadho, zmadhimi, shikim i dobët, zmadho, bëje më të madh"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Titrat, CC, Transkriptimi në çast, vështirësi në dëgjim, humbje e dëgjimit, CART, ligjërimi në tekst, nëntitull"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"kontrasti i ngjyrës"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"aftësitë motorike, miu"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"aparate dëgjimi, me vështirësi në dëgjim, humbje e dëgjimit, impiante kokleare, pajisje për amplifikimin e zërit, përpunues të zërit"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorik, mi, mi i jashtëm, mi me kokë, mi me përshtatje, karrige me rrota, levë kontrolli"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"aparate dëgjimi, vështirësi në dëgjim, humbje e dëgjimit, impiante kokleare, pajisje për amplifikimin e zërit, përpunues të zërit, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"vështirësi në dëgjim, humbje e dëgjimit, titrat, teletajp, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tri butona"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"shkathtësi, motorik, i moshuar, artrit, rsi, goditje në tru, dridhje, sklerozë multiple, paralizë cerebrale, dridhje, lëndim nga sforcim i përsëritur, dorë"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"vonesë, shkathtësi, i moshuar"</string>
<string name="print_settings" msgid="8519810615863882491">"Printimi"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Joaktive"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 shërbim aktiv printimi}other{# shërbime aktive printimi}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Paralajmërimi i të dhënave <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Kufiri i të dhënave <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Paralajmërimi i të dhënave <xliff:g id="ID_1">^1</xliff:g> / Kufiri i të dhënave <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Llogaritja e të dhënave nga operatori mund të ndryshojë nga llogaritja e pajisjes"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Përjashton të dhënat që përdoren nga rrjetet e operatorëve celularë"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> të përdorura"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Cakto paralajm. për të dhënat"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Shërbimi i plotësimit automatik"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Shërbimi i parazgjedhur i plotësimit automatik"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Fjalëkalimet"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Fjalëkalimet, çelësat e kalimit dhe shërbimet e të dhënave"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Fjalëkalimet, çelësat e kalimit dhe shërbimet e të dhënave"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Ofrues shtesë"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# fjalëkalim}other{# fjalëkalime}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"automatikisht, plotëso, plotësimi automatik, fjalëkalim"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"automatik, plotëso, plotësimi automatik, të dhënat, çelësi i kalimit, fjalëkalimi"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Sigurohu që ke besim te ky aplikacion</b> <br/> <br/> <xliff:g id=app_name example=Plotësimi automatik i Google>%1$s</xliff:g> përdor atë që ndodhet në ekranin tënd për të përcaktuar se çfarë mund të plotësohet automatikisht."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Përdor <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> përdor ato që janë në ekranin tënd për të përcaktuar se çfarë mund të plotësohet automatikisht. Fjalëkalimet, çelësat e kalimit dhe informacionet e tjera të reja do të ruhen këtu nga tani e tutje."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Fjalëkalimet, çelësat e kalimit dhe shërbimet e të dhënave"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Fjalëkalimet, çelësat e kalimit dhe shërbimet e të dhënave"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Të çaktivizohet %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Të çaktivizohet shërbimi?</b> <br/> <br/> Informacionet e ruajtura si fjalëkalimet, çelësat e kalimit, mënyrat e pagesës dhe informacione të tjera nuk do të plotësohen kur të identifikohesh. Për të përdorur informacionin tënd të ruajtur, zgjidh një fjalëkalim, çelës kalimi ose shërbim të dhënash."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Të përdoret %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s përdor atë që ke në ekranin për të përcaktuar se çfarë mund të plotësohet automatikisht."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Kufiri i fjalëkalimeve, çelësave të kalimit dhe shërbimeve të të dhënave"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Mund të kesh aktive deri në 5 fjalëkalime, çelësa kalimi dhe shërbime të dhënash në të njëjtën kohë. Çaktivizo një shërbim për të shtuar një tjetër."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Kufiri i fjalëkalimeve, çelësave të kalimit dhe shërbimeve të të dhënave"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Mund të kesh aktive deri në 5 fjalëkalime, çelësa kalimi dhe shërbime të dhënash në të njëjtën kohë. Çaktivizo një shërbim për të shtuar një tjetër."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Çaktivizo"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Plotësim automatik"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Niveli i identifikimit"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audioja nga media e përputhshme bëhet më përfshirëse"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Monitorimi i lëvizjes së kokës"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audioja ndryshon ndërsa ti lëviz kokën për të tingëlluar më e natyrshme"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Lloji i pajisjes audio"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"E panjohur"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altoparlant"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Kufje"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Seti pa përdorur duart"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Tjetër"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Kufiri i shpejtësisë së shkarkimit në rrjet"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfiguro kufirin e shpejtësisë së daljes së bandës së gjerë të rrjetit që zbatohet për të gjitha rrjetet që ofrojnë lidhje me internetin."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfiguro kufirin e shpejtësisë së shkarkimit në rrjet"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Çinstalo aplikacionin"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacionet e instaluara në # muajin e fundit}other{Aplikacionet e instaluara në # muajt e fundit}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacionet e instaluara më shumë se # muaj më parë}other{Aplikacionet e instaluara më shumë se # muaj më parë}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Raporti i pamjes"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Zgjidh një raport pamjeje për ta parë këtë aplikacion nëse nuk është projektuar për t\'u përshtatur me pajisjen tënde <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplikacionet e sugjeruara"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacionet që ke anuluar"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Parazgjedhja e aplikacionit"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Ekran i plotë"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Gjysmë ekrani"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Raporti i pamjes i pajisjes"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacioni do të riniset kur të ndryshosh raportin e pamjes. Mund të humbësh ndryshimet e paruajtura."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensori i gjurmës së gishtit"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Njoftimet me blic"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Rreth njoftimeve me blic"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Mesatar"</string>
<string name="contrast_high" msgid="3988567609694797696">"I lartë"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ky aplikacion mund të hapet vetëm në 1 dritare"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Shërbimi i aktivizuar"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Shërbimi i çaktivizuar"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Shkurtorja e çaktivizuar"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Aktive"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Joaktive"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Joaktive"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Çaktivizuar"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Aktivizuar"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Çaktivizuar"</string>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 831fbee..0b5d007 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"После 1 минута"</item>
<item msgid="1574040255478150028">"После 5 минута"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Укључите прилагодљиву осветљеност да бисте продужили трајање батерије"</item>
+ <item msgid="2256666063790193306">"Смањите време гашења екрана да бисте продужили трајање батерије"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 082dd23..a35af04 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Није наведено"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Женски род"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Мушки род"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Желите ли да уклоните изабрани језик?}one{Желите ли да уклоните изабране језике?}few{Желите ли да уклоните изабране језике?}other{Желите ли да уклоните изабране језике?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текст ће бити приказан на неком другом језику."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Није могуће уклонити све језике"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додати су лице и <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додати су лице, отисак прста и <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додати су лице, отисци прстију и <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Подесите сат"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Откључавање сатом је још један погодан начин за откључавање овог телефона, на пример, када су вам прсти мокри или се лице не препознаје.\n\nМожете да користите сат да бисте откључали овај телефон када:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Не сада"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Настави"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Још"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Принцип рада"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Сат мора да буде откључан, на зглобу и у домашају овог телефона. Сат нећете морати да откључавате поново док вам је на зглобу."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Добићете обавештење на сату када се овај телефон откључа. Ако се откључао када то нисте желели, додирните обавештење да бисте га поново закључали."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ти имаш контролу"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Сат можете да уклоните из откључавања сатом у било ком тренутку у подешавањима"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Додирните обавештење"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Превуците нагоре на закључаном екрану"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Одаберите сат"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Доступни сатови"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Откажи"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Потврди"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Спремни сте!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Сада можете да користите сат да бисте откључали овај телефон када превучете нагоре на закључаном екрану или додирнете обавештење"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Откључавање сатом"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Можете да користите сат да бисте откључали овај телефон када превучете нагоре на закључаном екрану или додирнете обавештење"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Да бисте користили откључавање сатом, сат мора да буде откључан, на зглобу, у домашају и повезан са овим телефоном. Ако се веза прекине, мораћете да откључате телефон да бисте могли да користите откључавање сатом.\n\nИмајте на уму:\nУ једном наврату можете да подесите само један сат. Да бисте додали други сат, прво уклоните актуелни сат."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Сазнајте више о откључавању сата"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Додај сат"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Уклони сат"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Отисак прста и откључавање лицем"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Откључавање лицем и отиском прста за посао"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Треба да подесите"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Можда ће бити потребно да унесете овај приступни кôд и на другом уређају."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Потврдите ради упаривања са координисаним скупом"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Дозволи приступ контактима и историји позива"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Дозволи и приступ контактима и историји позива"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Информације ће се користити за обавештења о позивима и друго"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Није могуће повезати се са уређајем <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Доступни уређаји"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Дели се Wi‑Fi са овим уређајем…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Повезује се…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Делите хотспот"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Потврдите свој идентитет"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Потврдите да сте то ви"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Лозинка за WiFi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Лозинка хотспота: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Аутоматско повезивање"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Мрежа није у домету"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Заборави"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Измени"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Брисање мреже није успело"</string>
<string name="wifi_save" msgid="2312643132472226807">"Сачувај"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Чување мреже није успело"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Откажи"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Ако жељена фреквенција није доступна, хотспот може да користи неку другу. Подешавања безбедности хотспота могу да се промене ако промените фреквенцију."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Није доступно уз 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Подешавања безбедности могу да се промене ако промените фреквенцију хотспота"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Укључивање хотспота…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Искључивање хотспота..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Привезивање је недоступно"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Заборавили сте лозинку?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Заборавили сте шаблон?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Заборавили сте PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Користите шаблон за уређај да бисте наставили"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Унесите PIN уређаја да бисте наставили"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Унесите лозинку уређаја да бисте наставили"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Користите шаблон за пословни профил да бисте наставили"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Нацртајте шаблон да бисте наставили"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Унесите PIN да бисте наставили"</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">"Унесите PIN за пословни профил да бисте наставили"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Унесите лозинку за пословни профил да бисте наставили"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Ради веће безбедности користите шаблон за уређај"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Није наведен опис."</string>
<string name="settings_button" msgid="2195468788019730377">"Подешавања"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"осетљивост на светлост, фотофобија, тамна тема, мигрена, главобоља, режим читања, ноћни режим, смањивање осветљености, бела тачка"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"једноставност коришћења, лакши приступ, помоћ, помоћно"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"вид, слух, слепи, глуви, моторика, спретност, помоћно, помоћ, једноставно коришћење, једноставни приступ, рука, помоћ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"увеличавање прозора, зумирање, увећање, слабовидост, увеличавање, повећати"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"титл, титлови, CC, транскрипција уживо, оштећење слуха, губитак слуха, CART, претварање говора у текст, титловање"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"контраст боја"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"моторика, миш"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"слушни апарати, са оштећењем слуха, губитак слуха, кохлеарни импланти, уређаји за појачавање звука, процесори звука"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"моторика, миш, спољни миш, миш за главу, адаптивни миш, инвалидска колица, џојстик"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"слушни апарати, са оштећењем слуха, губитак слуха, кохлеарни импланти, уређаји за појачавање звука, процесори звука, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"оштећење слуха, губитак слуха, титл, телепринтер, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"три дугмета"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"спретност, моторика, старије особе, артритис, учестала трауматска истегнућа зглоба, мождани удар, тремор, мултипла склероза, церебрална парализа, дрхтавица, повреда изазвана понављајућим покретима, рука"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"одлагање, спретност, старија особа"</string>
<string name="print_settings" msgid="8519810615863882491">"Штампање"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Искључено"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 услуга штампања је укључена}one{# услуга штампања је укључена}few{# услуге штампања су укључене}other{# услуга штампања је укључено}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Упозорење за потрошњу података: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Ограничење потрошње података: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Упозорење за потрошњу података: <xliff:g id="ID_1">^1</xliff:g>/Ограничење потрошње података: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Обрачун података код мобилног оператера се можда разликује од обрачуна уређаја."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Не обухвата податке које користе мреже мобилних оператера"</string>
<string name="data_used_template" msgid="8229342096562327646">"Потрошили сте <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Подеси упозорење о подацима"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Услуга аутоматског попуњавања"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Подразумевана услуга аутоматског попуњавања"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Лозинке"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Услуге за лозинке, приступне кодове и податке"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Услуге за лозинке, приступне кодове и податке"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Додатни добављачи услуга"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# лозинка}one{# лозинка}few{# лозинке}other{# лозинки}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"аутоматски, попунити, аутоматски попунити, лозинка"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"аутоматски, попуњавање, аутоматско попуњавање, подаци, приступни кôд, лозинка"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Уверите се да је ова апликација поуздана</b> <br/> <br/> <xliff:g id=app_name example=Google аутоматско попуњавање>%1$s</xliff:g> користи садржај екрана за утврђивање података који могу аутоматски да се попуне."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"Услуге за лозинке, приступне кодове и податке"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Услуге за лозинке, приступне кодове и податке"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Желите да искључите: %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Желите да искључите ову услугу?</b> <br/> <br/> Сачуване информације као што су лозинке, приступни кодови, начини плаћања и други подаци се неће попуњавати када сте пријављени. Да бисте користили сачуване информације, одаберите услугу за лозинке, приступне кодове или податке."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Желите да користите %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s користи садржај на екрану да би утврдио шта може аутоматски да се попуни."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Ограничење услуга за лозинке, приступне кодове и податке"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Можете истовремено да имате највише 5 услуга за лозинке, приступне кодове и податке. Искључите неку од њих да бисте додали још."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Ограничење услуга за лозинке, приступне кодове и податке"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Можете истовремено да имате највише 5 услуга за лозинке, приступне кодове и податке. Искључите неку од њих да бисте додали још."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Искључи"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Аутоматско попуњавање"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Ниво евидентирања"</string>
@@ -4673,6 +4709,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звук компатибилних медија постаје реалистичнији"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Праћење главе"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звук се мења како померате главу да би деловао природније"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудио уређаја"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Непознато"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Звучник"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Слушалице"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Опрема за аутомобил"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Друго"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ограничење брзине преузимања на мрежи"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Конфигуришите ограничење брзине долазног пропусног опсега мреже које се примењује на све мреже које пружају интернет везу."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Конфигуришите ограничење брзине преузимања на мрежи"</string>
@@ -4751,10 +4795,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Средње"</string>
<string name="contrast_high" msgid="3988567609694797696">"Високо"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ова апликација може да се отвори само у једном прозору"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Услуга је укључена"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Услуга је искључена"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Пречица је искључена"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Укључeно"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Искључено"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Искључено"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Искључено"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Укључено"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Искључено"</string>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index e4c73a8..107f77f 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Efter 1 minut"</item>
<item msgid="1574040255478150028">"Efter 5 minuter"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Aktivera anpassad ljusstyrka för att förlänga batteritiden"</item>
+ <item msgid="2256666063790193306">"Sänk skärmens tidsgräns för att förlänga batteritiden"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 78597ee..730a13c 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Inte angivet"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Femininformer"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Maskulinformer"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Vill du ta bort det valda språket?}other{Vill du ta bort de valda språken?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Text visas på ett annat språk."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Det går inte att ta bort alla språk"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ansikte och <xliff:g id="WATCH">%s</xliff:g> har lagts till"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ansikte, fingeravtryck och <xliff:g id="WATCH">%s</xliff:g> har lagts till"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ansikte, fingeravtryck och <xliff:g id="WATCH">%s</xliff:g> har lagts till"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Konfigurera klockan"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Med upplåsning med klockan kan du smidigt låsa upp telefonen, till exempel när dina fingrar är fuktiga eller ditt ansikte inte känns igen.\n\nDu kan låsa upp den här telefonen med klockan så här:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Inte nu"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Fortsätt"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Mer"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Så fungerar det"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Klockan måste vara upplåst, på handleden och i närheten av telefonen. Du behöver inte låsa upp klockan igen när den är på handleden."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"När den här telefonen låses upp får du en avisering på klockan. Om den låstes upp oavsiktligt kan du trycka på aviseringen och låsa telefonen igen."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Du bestämmer själv"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Du kan ta bort klockan när som helst från Upplåsning med klockan i inställningarna."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Trycka på en avisering"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Svepa uppåt på låsskärmen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Välj klocka"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Tillgängliga klockor"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Avbryt"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Bekräfta"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Nu är det klart!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Nu kan du låsa upp den här telefonen med klockan när du sveper uppåt på låsskärmen eller trycker på en avisering"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Klar"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Upplåsning med klockan"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Du kan låsa upp den här telefonen med klockan när du sveper uppåt på låsskärmen eller trycker på en avisering"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Du kan bara använda upplåsning med klockan om klockan är upplåst, sitter på handleden, i närheten av telefonen och ansluten till den. Om anslutningen avbryts behöver du låsa upp telefonen innan du kan använda upplåsning med klockan\n\nTänk på följande:\nDu kan bara ha en klocka konfigurerad åt gången. Om du vill lägga till en annan klocka måste du först ta bort den befintliga."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Läs mer om upplåsning med klockan"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Lägg till klocka"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Ta bort klockan"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Fingeravtryck och ansiktslås"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ansikts- och fingeravtryckslås för jobbprofilen"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Konfigurering krävs"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Du kan också behöva ange lösenordet på den andra enheten."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Bekräfta för att parkoppla med koordinerat set"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Tillåt åtkomst till kontakter och sökhistorik"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Ge även åtkomst till kontakter och samtalshistorik"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Uppgifterna används för samtalsaviseringar med mera"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Det gick inte att ansluta till <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Tillgängliga enheter"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi delas med den här enheten …"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Ansluter …"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Dela surfzon"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifiera din identitet"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifiera din identitet"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wifi-lösenord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Lösenord till surfzon: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatisk anslutning"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Nätverket är inte inom räckvidd"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Glöm"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Ändra"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Det gick inte att glömma nätverket"</string>
<string name="wifi_save" msgid="2312643132472226807">"Spara"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Det gick inte att spara närverket"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Avbryt"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Om den föredragna frekvensen inte är tillgänglig kan surfzonen använda en annan. Säkerhetsinställningarna för surfzonen kan ändras om du ändrar frekvens."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Inte tillgängligt för 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Säkerhetsinställningar kan ändras om du ändrar surfzonens frekvens"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Aktiverar surfzon ..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Surfzon inaktiveras ..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Internetdelning är inte tillgängligt"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Har du glömt lösenordet?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Har du glömt mönstret?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Har du glömt pinkoden?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Ange mönstret för enheten om du vill fortsätta"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Ange pinkoden för enheten om du vill fortsätta"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Ange lösenordet för enheten om du vill fortsätta"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Ange mönstret för jobbprofilen om du vill fortsätta"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Rita mönstret för att fortsätta"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Ange pinkoden för att fortsätta"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Ange lösenordet för att fortsätta"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Ange mönstret för arbetet om du vill fortsätta"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Ange pinkoden för jobbprofilen om du vill fortsätta"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Ange lösenordet för jobbprofilen om du vill fortsätta"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Använd mönstret för enheten för att öka säkerheten"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Ingen beskrivning har angetts."</string>
<string name="settings_button" msgid="2195468788019730377">"Inställningar"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ljuskänslighet, fotofobi, mörkt tema, migrän, huvudvärk, läsläge, nattläge, minska ljusstyrkan, vitpunkt"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Användarvänlighet, enkel åtkomst, hjälp, stöd"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"syn, hörsel, blind, döv, motorik, fingerfärdighet, assisterande, stöd, användarvänlighet, tillgänglighet, hand, hjälp"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Fönsterförstoring, Zoom, Förstoring, Nedsatt syn, Förstora, göra större"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Textning, undertexter, undertextning, Transkribering, hörselskada, hörselnedsättning, CART, tal till text, undertext"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"färgkontrast"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motorik, mus"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"hörapparater, hörselnedsättning, hörselskada, cochleaimplantat, ljudförstärkande enheter, ljudbehandlare"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorik, mus, extern mus, huvudstyrning, anpassad mus, rullstol, styrspak"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"hörapparater, hörselskada, hörselnedsättning, cochleaimplantat, ljudförstärkande enheter, ljudbehandlare, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"hörselskada, hörselnedsättning, textning, teleprinter, texttelefon"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tre knappar"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"fingerfärdighet, motorik, senior, artrit, förslitningsskada, stroke, darrning, multipel skleros, cerebral pares, skakning, belastningsskada, hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"fördröjning, fingerfärdighet, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"Utskrift"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Av"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 utskriftstjänst är på}other{# utskriftstjänster är på}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Datavarning vid <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Datagräns på <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Datavarning vid <xliff:g id="ID_1">^1</xliff:g>/datagräns på <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operatörens dataredovisning kan skilja sig från enhetens dataredovisning."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Data som används via operatörer utesluts"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> har använts"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Ställ in en datavarning"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Autofylltjänst"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Standardtjänst för autofyll"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Lösenord"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Lösenord, nycklar och datatjänster"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Lösenord, nycklar och datatjänster"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Ytterligare leverantörer"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# lösenord}other{# lösenord}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"auto, fyll, autofyll, lösenord"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fyll, autofyll, data, nyckel, lösenord"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Kontrollera att du litar på den här appen</b> <br/> <br/> <xliff:g id=app_name example=Google Autofyll>%1$s</xliff:g> identifierar vad som kan fyllas i automatiskt utifrån vad som visas på skärmen."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Vill du använda <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> använder det som visas på skärmen för att avgöra vad som kan fyllas i automatiskt. Nya lösenord, nycklar och annan information sparas här från och med nu."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Lösenord, nycklar och datatjänster"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Lösenord, nycklar och datatjänster"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vill du stänga av %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Vill du inaktivera den här tjänsten?</b> <br/> <br/> Sparade uppgifter som lösenord, nycklar, betalningsmetoder och annan information fylls inte i när du loggar in. Om du vill använda dina sparade uppgifter väljer du en lösenords-, nyckel- eller datatjänst."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Vill du använda %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s använder det som visas på skärmen för att avgöra vad som kan fyllas i automatiskt."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Gräns för lösenord, nycklar och datatjänster"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Du kan ha upp till fem lösenord, nycklar och datatjänster aktiva samtidigt. Inaktivera en tjänst om du vill lägga till fler."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Gräns för lösenord, nycklar och datatjänster"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Du kan ha upp till fem lösenord, nycklar och datatjänster aktiva samtidigt. Inaktivera en tjänst om du vill lägga till fler."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Stäng av"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Autofyll"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Loggningsnivå"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Ljud från kompatibel media blir mer omgivande"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Huvudspårning"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ljudet ändras när du rör på huvudet för att låta mer naturligt"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Ljudenhetstyp"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Okänd"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Högtalare"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Hörlurar"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Bilsats"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Annan"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Gräns för nedladdningshastighet i nätverket"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurera den inkommande bandbredden i nätverket som ska gälla för alla nätverk med internetanslutning."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurera gräns för nedladdningshastighet i nätverket"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Avinstallera appen"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Appar som installerades den senaste månaden (# månad)}other{Appar som installerades de senaste # månaderna}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Appar som installerades för över # månad sedan}other{Appar som installerades för över # månader sedan}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Bildformat"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Välj ett bildformat att visa appen i om den inte har utformats för att passa din <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Föreslagna appar"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Appar som du har åsidosatt"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Standard för appen"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Helskärm"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halvskärm"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Enhetens bildformat"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Appen startas om när du ändrar bildformatet. Du kan förlora ändringar som inte har sparats."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingeravtryckssensor"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Blinkande aviseringar"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Om blinkande aviseringar"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Medelhög"</string>
<string name="contrast_high" msgid="3988567609694797696">"Hög"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Denna app kan bara vara öppen i ett fönster"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Tjänsten är på"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Tjänsten är av"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Genvägen är av"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"På"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Av"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Av"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Av"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"På"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Av"</string>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index c448b3b..4f07cb0 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Baada ya dakika 1"</item>
<item msgid="1574040255478150028">"Baada ya dakika 5"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Washa kipengele cha mwangaza unaojirekebisha ili uongeze muda wa matumizi ya betri"</item>
+ <item msgid="2256666063790193306">"Punguza muda wa skrini kujizima ili uongeze muda wa matumizi ya betri"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 8b8c8e9..a8a3d2d 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Hayajabainishwa"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Jinsia ya kike"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Jinsia ya kiume"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Ungependa kuondoa lugha iliyochaguliwa?}other{Ungependa kuondoa lugha zilizochaguliwa?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Maandishi yataonyeshwa katika lugha nyingine."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Haiwezi kuondoa lugha zote"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Umeweka uso na <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Umeweka uso, alama ya kidole na <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Umeweka uso, alama za vidole na <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Weka mipangilio ya saa yako"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Kipengele cha Kufungua kupitia Saa ni njia nyingine rahisi ya kufungua simu hii, kwa mfano, wakati vidole vyako vina unyevu au uso wako hautambuliwi.\n\nUnaweza kutumia saa yako kufungua simu wakati:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Si sasa"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Endelea"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Zaidi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Jinsi inavyofanya kazi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Lazima uwe umefungua saa yako, umeivaa na iwe karibu na simu hii. Hutahitaji kufungua tena saa yako ukiwa umeivaa."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Ukifungua simu hii, utaarifiwa kwenye saa yako. Ikiwa umeifungua bila kukusudia, gusa arifa ili ufunge simu tena."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Uamuzi ni wako"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Unaweza kuondoa saa yako kwenye kipengele cha Kufungua kupitia Saa wakati wowote katika Mipangilio"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Gusa arifa"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Telezesha kidole juu kwenye skrini iliyofungwa"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Chagua saa yako"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Saa zinazopatikana"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Ghairi"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Thibitisha"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Kila kitu ni shwari!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Sasa unaweza kutumia saa yako kufungua simu hii unapotelezesha kidole juu kwenye skrini iliyofungwa au unapogusa arifa"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Nimemaliza"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Kufungua kupitia Saa"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Unaweza kutumia simu yako kufungua simu hii unapotelezesha kidole kwenda juu kwenye skrini iliyofungwa au kugusa arifa"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Ili utumie kipengele cha Kufungua kupitia Saa, ni sharti saa yako iwe imefunguliwa, uwe umeivaa, iweze kuifikia na iunganishwe kwenye simu hii. Muunganisho ukikatizwa, utahitaji kufungua simu kabla ya kuweza kutumia kipengele cha Kufungua kupitia Saa.\n\nKumbuka:\nUnaweza kuweka mipangilio ya saa moja tu kwa wakati mmoja. Ili uweke mipangilio ya saa nyingine, ondoa kwanza mipangilio ya saa iliyopo."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Pata maelezo zaidi kuhusu Kufungua Kupitia Saa"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Weka saa"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Ondoa saa"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Alama ya Kidole na Kufungua kwa Uso"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Kazini: Kufungua kwa Uso na Alama ya Kidole"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Unahitaji kuweka mipangilio"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Unaweza pia kuhitaji kucharaza nenosiri hili kwenye kifaa kingine."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Thibitisha ili uoanishe na seti inayolengwa"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Ruhusu ufikiaji wa anwani na historia ya simu ulizopiga"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Ruhusu pia ufikiaji wa anwani na rekodi ya simu zilizopigwa"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Maelezo yatatumiwa kwa matangazo ya simu na zaidi"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Haikuweza kuunganisha kwa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Vifaa vinavyopatikana"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Inashiriki Wi‑Fi na kifaa hiki…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Inaunganisha…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Shiriki mtandaopepe"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Thibitisha kwamba ni wewe"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Thibitisha kuwa ni wewe"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Nenosiri la Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Nenosiri la mtandaopepe: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Unganisha kiotomatiki"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Mtandao hauko karibu"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Sahau"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Rekebisha"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Imeshindwa kusahau mtandao"</string>
<string name="wifi_save" msgid="2312643132472226807">"Hifadhi"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Imeshindwa kuhifadhi mtandao"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Ghairi"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Iwapo masafa unayopendelea hayapatikani, mtandao wako pepe unaweza kutumia masafa tofauti. Mipangilio ya usalama wa mtandao pepe inaweza kubadilika ukibadilisha masafa."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Haitumii GHz 6"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Mipangilio ya usalama huenda ikabadilika ukibadilisha masafa ya mtandao pepe"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Inawezesha mtandaopepe…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Inazima intaneti..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Kipengele cha kusambaza mtandao hakipatikani"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Je, umesahau nenosiri lako?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Je, umesahau mchoro wako?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Je, umesahau PIN yako?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Weka mchoro wa kufungua kifaa chako ili uendelee"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Weka PIN ya kifaa chako ili uendelee"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Weka nenosiri la kifaa chako ili uendelee"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Tumia mchoro wa kazini ili uendelee"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Chora mchoro wako ili uendelee"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Weka PIN yako ili uendelee"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Weka nenosiri lako ili uendelee"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Chora mchoro wa wasifu wako wa kazini ili uendelee"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Weka PIN ya kazini ili uendelee"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Weka nenosiri lako ili uendelee"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Ili kuimarisha usalama, tumia mchoro wa kufungua kifaa chako"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Hakuna maelezo yaliyotolewa."</string>
<string name="settings_button" msgid="2195468788019730377">"Mipangilio"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ung\'avu wa mwangaza, woga wa mwangaza, mandhari meusi, kipandauso, maumivu ya kichwa, hali ya kusoma, hali ya usiku, kupunguza mwangaza, sehemu nyeupe"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Urahisi wa kutumia, urahisi wa kufikia, usaidizi, saidizi"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"kuona, kusikia, vipofu, viziwi, ulemavu wa misuli, umahiri wa kutumia vidole, saidizi, usaidizi, urahisi wa kutumia, urahisi wa kufikia, mkono, usaidizi"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Kikuza Dirisha, Kuza, Ukuzaji, Uwezo mdogo wa kuona, Kuza, fanya iwe kubwa"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Manukuu, manukuu, manukuu, Nukuu Papo Hapo, tatizo la kusikia, kupoteza uwezo wa kusikia, KIKAPU, kunukuu matamshi, manukuu"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"utofautishaji wa rangi"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"mota, kipanya"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"visaidizi vya kusikia, tatizo la kusikia, kupoteza uwezo wa kusikia, vifaa vinavyosaidia kusikia vinavyopachikwa ndani ya sikio, vifaa vya kukuza sauti, vichakataji sauti"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"ulemavu wa misuli, kipanya, kipanya cha nje, kipanya cha kichwani, kipanya maalum, kiti cha magurudumu, usukani"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"visaidizi vya kusikia, tatizo la kusikia, kupoteza uwezo wa kusikia, vifaa vinavyosaidia kusikia vinavyopachikwa ndani ya sikio, vifaa vya kukuza sauti, vichakataji sauti, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"tatizo la kusikia, kupoteza uwezo wa kusikia, manukuu, mashine ya chapa, TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"vitufe vitatu"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"umahiri wa kutumia vidole, ulemavu wa misuli, ukongwe, yabisi-kavu, rsi, kiharusi, kutetema, kuathirika kwa mfumo wa neva, kupooza ubongo, kutetemeka, kuumia misuli"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"kuchelewa, umahiri wa kutumia vidole, ukongwe"</string>
<string name="print_settings" msgid="8519810615863882491">"Kuchapisha"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Imezimwa"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Huduma 1 ya kuchapisha imewashwa}other{Huduma # za kuchapisha zimewashwa}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Onyo la matumizi ya data: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Kikomo cha data: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Onyo la matumizi ya data: <xliff:g id="ID_1">^1</xliff:g> / Kikomo cha data: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Huenda hesabu ya data ya mtoa huduma ikawa tofauti na ya kifaa chako"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Haijumuishi data inayotumiwa na mitandao ya mtoa huduma"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> zimetumika"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Weka onyo la matumizi ya data"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Huduma ya kujaza kiotomatiki"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Huduma chaguomsingi ya kujaza kiotomatiki"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Manenosiri"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Manenosiri, funguo za siri na huduma za data"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Manenosiri, funguo za siri na huduma za data"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Watoa huduma wa ziada"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{Nenosiri #}other{Manenosiri #}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"otomatiki, jaza, kujaza kiotomatiki, nenosiri"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"kiotomatiki, jaza, jaza kiotomatiki, data, ufunguo wa siri, nenosiri"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Hakikisha kuwa unaamini programu hii</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> hutumia kilicho kwenye skrini yako kubaini kinachoweza kujazwa kiotomatiki."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Tumia <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> hutumia kilicho kwenye skrini yako kubaini kinachoweza kujazwa kiotomatiki. Manenosiri, funguo za siri na maelezo mengine mapya yatahifadhiwa hapa kuanzia sasa."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Manenosiri, funguo za siri na huduma za data"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Manenosiri, funguo za siri na huduma za data"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Ungependa kuzima %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Ungependa kuzima huduma hii?</b> <br/> <br/> Maelezo yaliyohifadhiwa kama vile manenosiri, funguo za siri, njia za kulipa na maelezo mengine hayatajazwa utakapoingia katika akaunti. Ili utumie maelezo uliyohifadhi, chagua nenosiri, ufunguo wa siri au huduma ya data."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Ungependa kutumia %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s hutumia maudhui kwenye skrini yako kubaini kinachoweza kujazwa kiotomatiki."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Manenosiri, funguo za siri na kikomo cha huduma za data"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Unaweza kutumia hadi manenosiri 5, funguo za siri na huduma za data zinazotumika kwa wakati mmoja. Zima huduma ili uweke zaidi."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Manenosiri, funguo za siri na kikomo cha huduma za data"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Unaweza kutumia hadi manenosiri 5, funguo za siri na huduma za data zinazotumika kwa wakati mmoja. Zima huduma ili uweke zaidi."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Zima"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Kujaza Kiotomatiki"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Kiwango cha kumbukumbu"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Sauti kutoka kwenye maudhui yanayooana huwa murua zaidi"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Ufuatiliaji wa kichwa"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Sauti hubadilika kadiri unavyosogeza kichwa chako ili isikike kuwa ya asili zaidi"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Aina ya Kifaa cha Sauti"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Haijulikani"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Spika"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Vipokea sauti vya kichwani"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kifaa cha Gari"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Mengineyo"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Kiwango cha kikomo cha upakuaji wa mtandao"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Weka mipangilio ya kiwango cha kikomo cha uingiaji kipimo data cha mtandao ambacho kinatumika katika mitandao yote inayotoa muunganisho wa intaneti."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Weka mipangilio ya kiwango cha kikomo cha upakuaji wa mtandao"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Ondoa programu"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Programu zilizosakinishwa mwezi # uliopita}other{Programu zilizosakinishwa miezi # iliyopita}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Programu zilizosakinishwa zaidi ya mwezi # uliopita}other{Programu zilizosakinishwa zaidi ya miezi # iliyopita}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Uwiano"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Chagua uwiano ili uangalie programu hii iwapo haijaundwa ili kutoshea kwenye <xliff:g id="DEVICE_NAME">%1$s</xliff:g> yako"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Programu unazopendekezewa"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Programu ambazo umebatilisha"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Chaguomsingi wa programu"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Skrini nzima"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Nusu skrini"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Uwiano wa kifaa"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Programu itazima na kisha iwake utakapobadilisha uwiano. Huenda ukapoteza mabadiliko ambayo hujahifadhi."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Kitambua alama ya kidole"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Arifa za mweko"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Kuhusu arifa za mweko"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Wastani"</string>
<string name="contrast_high" msgid="3988567609694797696">"Juu"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Programu hii inaweza kufunguliwa katika dirisha 1 pekee"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Huduma imewashwa"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Huduma imezimwa"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Njia ya mkato imezimwa"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Kimewashwa"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Kimezimwa"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Kimezimwa"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Imezimwa"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Imewashwa"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Imezimwa"</string>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index 00cb41b..6ae1747 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 நிமிடத்திற்குப் பிறகு"</item>
<item msgid="1574040255478150028">"5 நிமிடங்களுக்குப் பிறகு"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"பேட்டரி ஆயுளை நீட்டிக்க, சூழலுக்கேற்ற ஒளிர்வை இயக்குங்கள்"</item>
+ <item msgid="2256666063790193306">"பேட்டரி ஆயுளை நீட்டிக்க, திரை அணைவு நேரத்தைக் குறையுங்கள்"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 42718f7..c1c2724 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"குறிப்பிடப்படவில்லை"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"பெண்"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"ஆண்"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{தேர்ந்தெடுக்கப்பட்ட மொழியை அகற்றவா?}other{தேர்ந்தெடுக்கப்பட்ட மொழிகளை அகற்றவா?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"உரை மற்றொரு மொழியில் காட்டப்படும்."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"எல்லா மொழிகளையும் அகற்ற முடியாது"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"முகம் மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"முகம், கைரேகை மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"முகம், கைரேகைகள் மற்றும் <xliff:g id="WATCH">%s</xliff:g> சேர்க்கப்பட்டன"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"உங்கள் வாட்ச்சை அமையுங்கள்"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"இந்த மொபைலை அன்லாக் செய்ய வாட்ச் அன்லாக் அம்சம் மற்றொரு எளிதான வழியாகும். உதாரணத்திற்கு, உங்கள் விரல்கள் ஈரமாக இருக்கும்போது அல்லது முகத்தை அடையாளங்காண முடியாதபோது.\n\nபின்வரும் சூழல்களில் இந்த மொபைலை அன்லாக் செய்ய உங்கள் வாட்ச்சைப் பயன்படுத்தலாம்:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"இப்போது வேண்டாம்"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"தொடர்க"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"மேலும் காட்டு"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"இது எப்படிச் செயல்படுகிறது?"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"கையில் அணிந்திருக்கும் வாட்ச் அன்லாக் செய்யப்பட்டு, மொபைலின் வரம்பிற்குள் இருக்க வேண்டும். கையில் வாட்ச் அணிந்திருக்கும்போது மீண்டும் அதை அன்லாக் செய்ய வேண்டியதில்லை."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"இந்த மொபைல் அன்லாக் செய்யப்பட்டால் உங்கள் வாட்ச்சில் அறிவிப்பைப் பெறுவீர்கள். தற்செயலாக அது அன்லாக் செய்யப்பட்டிருந்தால் மீண்டும் மொபைலைப் பூட்ட அறிவிப்பைத் தட்டவும்."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"முழுமையான கட்டுப்பாட்டைப் பெற்றுள்ளீர்கள்"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"எப்போது வேண்டுமானாலும் அமைப்புகளுக்குச் சென்று வாட்ச் அன்லாக்கிலிருந்து உங்கள் வாட்ச்சை அகற்றலாம்"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"அறிவிப்பைத் தட்டுங்கள்"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"பூட்டுத் திரையை மேல்நோக்கி ஸ்வைப் செய்யுங்கள்"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"உங்கள் வாட்ச்சைத் தேர்வுசெய்யுங்கள்"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"கிடைக்கும் வாட்ச்சுகள்"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ரத்துசெய்"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"உறுதிசெய்"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"அமைக்கப்பட்டது!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"தற்போது, பூட்டுத் திரையில் மேலே ஸ்வைப் செய்தோ அறிவிப்பைத் தட்டுவதன் மூலமோ இந்த மொபைலை அன்லாக் செய்து உங்கள் வாட்ச்சைப் பயன்படுத்தலாம்"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"முடிந்தது"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"வாட்ச் அன்லாக்"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"பூட்டுத் திரையில் மேலே ஸ்வைப் செய்தோ அறிவிப்பைத் தட்டுவதன் மூலமோ இந்த மொபைலை அன்லாக் செய்து உங்கள் வாட்ச்சைப் பயன்படுத்தலாம்"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"வாட்ச் அன்லாக் அம்சத்தைப் பயன்படுத்த, கையில் அணிந்திருக்கும் வாட்ச் அன்லாக் செய்யப்பட்ட நிலையிலும் இணைக்கும் வரம்பிற்குள்ளும் இந்த மொபைலுடன் இணைக்கப்பட்டும் இருக்க வேண்டும். இணைப்பில் இடையூறு ஏற்பட்டால் வாட்ச் அன்லாக் அம்சத்தைப் பயன்படுத்துவதற்கு முன்பு மொபைலை அன்லாக் செய்ய வேண்டும்.\n\nநினைவில் கொள்ளுங்கள்:\nஒரு நேரத்தில் ஒரு வாட்ச்சை மட்டுமே அமைக்க முடியும். மற்றொரு வாட்ச்சைச் சேர்க்க, தற்போதுள்ள வாட்ச்சை முதலில் அகற்றுங்கள்."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"வாட்ச் அன்லாக் அம்சம் குறித்து மேலும் அறிக"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"வாட்ச்சைச் சேர்"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"வாட்ச்சை அகற்றும்"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"கைரேகை & முகம் காட்டித் திறத்தல்"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"பணிக்கான முகம் & கைரேகை அன்லாக்"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"அமைவு தேவை"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"நீங்கள் இந்தக் கடவுச்சொல்லை வேறொரு சாதனத்திலும் உள்ளிட வேண்டியிருக்கலாம்."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ஒருங்கிணைக்கப்பட்ட தொகுப்பில் உள்ள சாதனங்களுடன் இணைப்பதை உறுதிசெய்துகொள்ளுங்கள்"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"உங்கள் தொடர்புகள் மற்றும் அழைப்புப் பதிவை அணுக அனுமதிக்கவும்"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"தொடர்புகளுக்கும் அழைப்புப் பதிவுகளுக்கும் அனுமதி அளியுங்கள்"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"அழைப்பு அறிவிப்புகளுக்கும் பலவற்றுக்கும் தகவல் பயன்படுத்தப்படும்"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> உடன் இணைக்க முடியவில்லை."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"கிடைக்கும் சாதனங்கள்"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"இந்தச் சாதனத்துடன் வைஃபை பகிரப்படுகிறது…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"இணைக்கிறது…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ஹாட்ஸ்பாட்டைப் பகிர்தல்"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"நீங்கள்தான் என்பதை உறுதிப்படுத்தவும்"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"நீங்கள்தான் என உறுதிசெய்க"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"வைஃபை கடவுச்சொல்: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ஹாட்ஸ்பாட் கடவுச்சொல்: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"தானாக இணைத்தல்"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"நெட்வொர்க் தொடர்பு எல்லையில் இல்லை"</string>
<string name="wifi_forget" msgid="3485573280364015620">"மறந்துவிடு"</string>
<string name="wifi_modify" msgid="5127926476383659412">"மாற்று"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"நெட்வொர்க்கை நீக்குவதில் தோல்வி"</string>
<string name="wifi_save" msgid="2312643132472226807">"சேமி"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"நெட்வொர்க்கைச் சேமிப்பதில் தோல்வி"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"ரத்துசெய்"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"உங்களுக்கு வேண்டிய அதிர்வெண் இல்லையென்றால் உங்கள் ஹாட்ஸ்பாட் வேறொரு இணைப்பைப் பயன்படுத்தலாம். அதிர்வெண்ணை மாற்றினால் ஹாட்ஸ்பாட்டின் பாதுகாப்பு அமைப்புகள் மாறலாம்."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz உடன் கிடைக்கவில்லை"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"ஹாட்ஸ்பாட்டின் அலைவரிசையை நீங்கள் மாற்றினால் பாதுகாப்பு அமைப்புகள் மாறக்கூடும்"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"ஹாட்ஸ்பாட்டை இயக்குகிறது…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"ஹாட்ஸ்பாட்டை முடக்குகிறது…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"இணைப்பு முறை கிடைக்கவில்லை"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"கடவுச்சொல்லை மறந்துவிட்டீர்களா?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"பேட்டர்னை மறந்துவிட்டீர்களா?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"பின்னை மறந்துவிட்டீர்களா?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"தொடர, சாதனப் பேட்டர்னை வரையவும்"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"தொடர, சாதனப் பின்னை உள்ளிடவும்"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"தொடர, சாதனக் கடவுச்சொல்லை உள்ளிடவும்"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"தொடர, பணிப் பேட்டர்னை வரையவும்"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"தொடர, உங்கள் பேட்டர்னை வரையவும்"</string>
+ <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_strong_auth_required_device_pattern" msgid="113817518413715557">"கூடுதல் பாதுகாப்பிற்கு, சாதனப் பேட்டர்னை வரையவும்"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"விளக்கம் எதுவும் வழங்கப்படவில்லை."</string>
<string name="settings_button" msgid="2195468788019730377">"அமைப்பு"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ஒளி உணர்திறன், ஃபோட்டோஃபோபியா, டார்க் தீம், ஒற்றைத் தலைவலி, தலைவலி, வாசிப்புப் பயன்முறை, இரவுப் பயன்முறை, ஒளிர்வைக் குறைத்தல், ஒயிட் பாயிண்ட்"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"எளிதாகப் பயன்படுத்தக்கூடியது, எளிதாக அணுகக்கூடியது, உதவி, உதவிகரமானது"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"பார்வை, கேட்கும் திறன், பார்வையற்றவர்கள், காது கேளாதோர், உடலியக்கம், கைத்திறன், உதவிகரமானது, உதவி, எளிதாகப் பயன்படுத்தக்கூடியது, எளிதாக அணுகக்கூடியது, கை, உதவி"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"சாளரப் பெரிதாக்கி, அளவை மாற்றுதல், பெரிதாக்கல், குறைந்த பார்வைத் திறன், பெரிதாக்கல், பெரிதாக்கு"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"வசனங்கள், விவரிப்பு சப்டைட்டில்கள், CC, உடனடி உரையாக்கம், கேட்பதில் சிரமம், கேட்கும் திறன் இன்மை, CART, பேச்சிலிருந்து உரை, சப்டைட்டில்"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"நிற வேறுபாடு"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"உடல் இயக்கத் திறன், மவுஸ்"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"செவித்துணைக் கருவிகள், செவித்திறன் குறைபாடு, செவித்திறன் இழப்பு, கோக்லியார் இம்பிளான்ட் சாதனங்கள், ஒலிபெருக்கிச் சாதனங்கள், சவுண்டு பிராசஸர்கள்"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"உடலியக்கம், மவுஸ், வெளிப்புற மவுஸ், ஹெட் மவுஸ், அடாப்டிவ் மவுஸ், வீல்சேர், ஜாய்ஸ்டிக்"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"செவித்துணைக் கருவிகள், செவித்திறன் குறைபாடு, செவித்திறன் இழப்பு, செவித்திறன் சாதனங்கள், ஒலிபெருக்கிச் சாதனங்கள், சவுண்டு பிராசஸர்கள், PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"கேட்பதில் சிரமம், கேட்கும் திறன் இன்மை, வசனங்கள், டெலிடைப், TTY"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"மூன்று பட்டன்கள்"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"கைத்திறன், உடல் இயக்கத் திறன், முதியோர், கீல்வாதம், rsi, பக்கவாதம், நடுக்கம், மல்ட்டிபில் ஸ்க்லரோசிஸ், செரிப்ரல் பால்சி, ஷேக்கிங், திரும்பத் திரும்ப ஏற்படும் காயம், கை"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"தாமதம், கைத்திறன், முதியோர்"</string>
<string name="print_settings" msgid="8519810615863882491">"அச்சிடுதல்"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ஆஃப்"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 பிரிண்ட் சேவை இயக்கப்பட்டுள்ளது}other{# பிரிண்ட் சேவைகள் இயக்கப்பட்டுள்ளன}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> டேட்டா எச்சரிக்கை"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> டேட்டா வரம்பு"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> டேட்டா எச்சரிக்கை / <xliff:g id="ID_2">^2</xliff:g> டேட்டா வரம்பு"</string>
- <string name="operator_warning" msgid="5672761970087591211">"மொபைல் நிறுவனம் கணக்கிடும் டேட்டா அளவும், சாதனம் கணக்கிடும் டேட்டா அளவும் மாறுபடலாம்"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"மொபைல் நிறுவன நெட்வொர்க்குகள் பயன்படுத்திய டேட்டா அளவு சேர்க்கப்படவில்லை"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> பயன்படுத்தப்பட்டது"</string>
<string name="set_data_warning" msgid="1685771882794205462">"டேட்டா பயன்பாட்டு எச்சரிக்கையை அமை"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"தானாக நிரப்பும் சேவை"</string>
<string name="default_autofill_app" msgid="372234803718251606">"இயல்புநிலைத் தன்னிரப்பிச் சேவை"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"கடவுச்சொற்கள்"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகள்"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகள்"</string>
<string name="credman_credentials" msgid="4931371941253324143">"கூடுதல் வழங்குநர்கள்"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# கடவுச்சொல்}other{# கடவுச்சொற்கள்}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"தானியங்கு, நிரப்பு, தன்னிரப்பி, கடவுச்சொல்"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"தானியங்கு, நிரப்பு, தன்னிரப்பி, தரவு, கடவுச்சாவி, கடவுச்சொல்"</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="4951846866327737417">"<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="2642776965060619988">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகள்"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகள்"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s ஐ முடக்கவா?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>இந்தச் சேவையை முடக்கவா?</b> <br/> <br/> கடவுச்சொற்கள், கடவுச்சாவிகள், பேமெண்ட் முறைகள் போன்ற சேமிக்கப்பட்ட தகவல்களும் பிற தகவல்களும் நீங்கள் உள்நுழையும்போது நிரப்பப்படாது. உங்கள் சேமிக்கப்பட்ட தகவல்களைப் பயன்படுத்த ஒரு கடவுச்சொல், கடவுச்சாவி அல்லது தரவுச் சேவையைத் தேர்ந்தெடுங்கள்."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ஐப் பயன்படுத்தலாமா?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"எவற்றைத் தானாக நிரப்பலாம் என்பதைத் தீர்மானிக்க உங்கள் திரையில் உள்ளவற்றை %1$s பயன்படுத்தும்."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகளுக்கான வரம்பு"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"ஒரே நேரத்தில் 5 கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகளைச் செயலில் வைத்திருக்கலாம். மேலும் ஒன்றைச் சேர்க்க ஒரு சேவையை முடக்கவும்."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகளுக்கான வரம்பு"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"ஒரே நேரத்தில் 5 கடவுச்சொற்கள், கடவுச்சாவிகள் மற்றும் தரவுச் சேவைகள் வரை செயலில் வைத்திருக்கலாம். மேலும் ஒன்றைச் சேர்க்க ஒரு சேவையை முடக்கவும்."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"முடக்கு"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"தன்னிரப்பி"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Logging நிலை"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"இணக்கமான மீடியாவிலிருந்து வரும் ஆடியோ இன்னும் ஆழ்ந்த இசை அனுபவத்தைத் தரும்"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ஹெட் டிராக்கிங்"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ஒலிக்கு ஏற்றாற்போல உங்கள் தலையை மிக இயல்பாக நகர்த்தும்போது ஆடியோவும் மாறும்"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ஆடியோ சாதனத்தின் வகை"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"தெரியாதவை"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ஸ்பீக்கர்"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ஹெட்ஃபோன்கள்"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"கார் கிட்"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"மற்றவை"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"நெட்வொர்க் பதிவிறக்க விகிதத்திற்கான வரம்பு"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"இணைய இணைப்பை வழங்கும் அனைத்து நெட்வொர்க்குகளுக்கும் பொருந்தக்கூடிய நெட்வொர்க் இணைய வேகப் பதிவிறக்க விகிதத்திற்கான வரம்பை உள்ளமையுங்கள்."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"நெட்வொர்க் பதிவிறக்க விகிதத்திற்கான வரம்பை உள்ளமையுங்கள்"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ஆப்ஸை நிறுவல் நீக்கு"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{கடந்த # மாதத்தில் நிறுவப்பட்ட ஆப்ஸ்}other{கடந்த # மாதங்களில் நிறுவப்பட்ட ஆப்ஸ்}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# மாதத்திற்கு முன்பு நிறுவப்பட்ட ஆப்ஸ்}other{# மாதங்களுக்கு முன்பு நிறுவப்பட்ட ஆப்ஸ்}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"தோற்ற விகிதம்"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"இந்த ஆப்ஸ் உங்கள் <xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்திற்கு ஏற்றவாறு வடிவமைக்கப்படவில்லை எனில் ஆப்ஸைப் பயன்படுத்துவதற்கான தோற்ற விகிதத்தைத் தேர்வுசெய்யுங்கள்"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"பரிந்துரைக்கப்படும் ஆப்ஸ்"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"மீறிச் செயல்படுதல் அமைக்கப்பட்ட ஆப்ஸ்"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ஆப்ஸ் இயல்புநிலை"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"முழுத்திரை"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"பாதித்திரை"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"சாதனத்தின் தோற்ற விகிதம்"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"தோற்ற விகிதத்தை நீங்கள் மாற்றும்போது ஆப்ஸ் மீண்டும் தொடங்கும். சேமிக்கப்படாத மாற்றங்களை நீங்கள் இழக்க நேரிடலாம்."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"கைரேகை சென்சார்"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"ஃபிளாஷ் அறிவிப்புகள்"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"ஃபிளாஷ் அறிவிப்புகள் குறித்த அறிமுகம்"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"நடுத்தரம்"</string>
<string name="contrast_high" msgid="3988567609694797696">"அதிகம்"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"இந்த ஆப்ஸை 1 சாளரத்தில் மட்டுமே திறக்க முடியும்"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"சேவை இயக்கப்பட்டுள்ளது"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"சேவை முடக்கப்பட்டுள்ளது"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"ஷார்ட்கட் முடக்கப்பட்டுள்ளது"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"இயக்கத்தில்"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"முடக்கத்தில்"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"முடக்கத்தில்"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"முடக்கப்பட்டுள்ளது"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"இயக்கப்பட்டுள்ளது"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"முடக்கப்பட்டுள்ளது"</string>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 0f9d73c..e96d381 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 నిమిషం తర్వాత"</item>
<item msgid="1574040255478150028">"5 నిమిషాల తర్వాత"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"బ్యాటరీ లైఫ్ను పొడిగించడానికి పరిసర అనుకూల ప్రకాశం ఫీచర్ను ఆన్ చేయండి"</item>
+ <item msgid="2256666063790193306">"బ్యాటరీ లైఫ్ను పొడిగించడానికి స్క్రీన్ గడువు ముగింపు మయాన్ని తగ్గించండి"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 40a411b..a0190d6 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"పేర్కొనబడలేదు"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"స్త్రీ"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"పురుషుడు"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{ఎంచుకున్న భాషను తీసివేయాలా?}other{ఎంచుకున్న భాషలను తీసివేయాలా?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"వచనం మరొక భాషలో ప్రదర్శించబడుతుంది."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"అన్ని భాషలను తీసివేయలేరు"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"ముఖం, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"ముఖం, వేలిముద్ర, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"ముఖం, వేలిముద్రలు, <xliff:g id="WATCH">%s</xliff:g> జోడించబడ్డాయి"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"మీ వాచ్ను సెటప్ చేయండి"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"వాచ్ అన్లాక్ అనేది ఈ ఫోన్ను అన్లాక్ చేయడానికి మరొక అనుకూలమైన మార్గం, ఉదాహరణకు, మీ వేళ్లు తడిగా ఉన్నప్పుడు లేదా ముఖం గుర్తించబడనప్పుడు.\n\nమీరు ఈ సందర్భాలలో ఈ ఫోన్ను అన్లాక్ చేయడానికి మీ వాచ్ను ఉపయోగించవచ్చు:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ఇప్పుడు కాదు"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"కొనసాగండి"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"మరింత సమాచారం"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"ఇది ఎలా పని చేస్తుంది"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"మీ వాచ్ తప్పనిసరిగా అన్లాక్ చేయబడి ఉండాలి, ఇంకా మీ మణికట్టుపై ధరించి ఉండి, ఈ ఫోన్కు దగ్గరగా ఉండాలి. మీ వాచ్ మీ మణికట్టు మీద ఉన్నప్పుడు మీరు దాన్ని మళ్లీ అన్లాక్ చేయాల్సిన అవసరం లేదు."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"ఈ ఫోన్ అన్లాక్ చేయబడినప్పుడు, మీ వాచ్లో మీకు తెలియజేయబడుతుంది. మీకు అవసరం లేనప్పుడు అది అన్లాక్ చేయబడితే, ఫోన్ను మళ్లీ లాక్ చేయడానికి నోటిఫికేషన్ను ట్యాప్ చేయండి."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"మీరు కంట్రోల్ చేయవచ్చు"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"మీరు సెట్టింగ్లలో ఎప్పుడైనా వాచ్ అన్లాక్ నుండి మీ వాచ్ను తీసివేయవచ్చు"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"నోటిఫికేషన్ను ట్యాప్ చేయండి"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"లాక్ స్క్రీన్ మీద పైకి స్వైప్ చేయండి"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"మీ వాచ్ను ఎంచుకోండి"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"అందుబాటులోని వాచ్లు"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"రద్దు చేయండి"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"నిర్ధారించండి"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"మీరు సెటప్ను పూర్తి చేశారు!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"మీరు ఇప్పుడు లాక్ స్క్రీన్పై స్వైప్ చేసినప్పుడు లేదా నోటిఫికేషన్ను ట్యాప్ చేసినప్పుడు ఈ ఫోన్ను అన్లాక్ చేయడానికి మీ వాచ్ను ఉపయోగించవచ్చు"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"పూర్తయింది"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"వాచ్ అన్లాక్"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"మీరు లాక్ స్క్రీన్పై స్వైప్ చేసినప్పుడు లేదా నోటిఫికేషన్ను ట్యాప్ చేసినప్పుడు ఈ ఫోన్ను అన్లాక్ చేయడానికి మీ వాచ్ను ఉపయోగించవచ్చు"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"వాచ్ అన్లాక్ను ఉపయోగించడానికి, మీ వాచ్ తప్పనిసరిగా అన్లాక్ చేయబడి, మీ మణికట్టుపై ధరించి ఉండి, ఫోన్కు దగ్గరలో ఉండి, ఇంకా ఈ ఫోన్కు కనెక్ట్ చేయబడి ఉండాలి. కనెక్షన్కు అంతరాయం ఏర్పడితే, మీరు వాచ్ అన్లాక్ను ఉపయోగించే ముందు మీరు ఫోన్ను అన్లాక్ చేయాలి.\n\nవీటిని గుర్తుంచుకోండి:\nమీరు ఒకసారి ఒక వాచ్ను మాత్రమే సెటప్ చేయవచ్చు. మరొక వాచ్ను జోడించడానికి, ముందుగా ప్రస్తుతం ఉన్న వాచ్ను తీసివేయండి."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"వాచ్ అన్లాక్ గురించి మరింత తెలుసుకోండి"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"వాచ్ను జోడించండి"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"వాచ్ను తీసివేయండి"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"వేలిముద్ర & ఫేస్ అన్లాక్"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"వర్క్ కోసం ముఖం & వేలిముద్ర అన్లాక్"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"సెటప్ అవసరం"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"మీరు ఈ పాస్కీని ఇతర పరికరంలో కూడా టైప్ చేయాల్సి రావచ్చు."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"కోఆర్డినేటెడ్ సెట్తో పెయిర్ చేయడానికి నిర్ధారించండి"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"మీ కాంటాక్ట్లకు, కాల్ హిస్టరీకి యాక్సెస్ను అనుమతించండి"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"కాంటాక్ట్లకు, కాల్ హిస్టరీకి కూడా యాక్సెస్ను అనుమతించండి"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"సమాచారం, కాల్ అనౌన్స్మెంట్లు, ఇంకా మరిన్నింటి కోసం ఉపయోగించబడుతుంది"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>కి కనెక్ట్ చేయడం సాధ్యపడలేదు."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"అందుబాటులో ఉన్న పరికరాలు"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ఈ పరికరంతో Wi‑Fiని షేర్ చేస్తోంది…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"కనెక్ట్ అవుతోంది…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"హాట్స్పాట్ను షేర్ చేయండి"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"అది మీరేనని ధృవీకరించండి"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ఇది మీరేనని ధృవీకరించండి"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi పాస్వర్డ్: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"హాట్స్పాట్ పాస్వర్డ్: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"ఆటోమేటిక్-కనెక్ట్"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"నెట్వర్క్ పరిధిలో లేదు"</string>
<string name="wifi_forget" msgid="3485573280364015620">"విస్మరించు"</string>
<string name="wifi_modify" msgid="5127926476383659412">"ఎడిట్ చేయండి"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"నెట్వర్క్ను ఉపేక్షించడంలో విఫలమైంది"</string>
<string name="wifi_save" msgid="2312643132472226807">"సేవ్ చేయండి"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"నెట్వర్క్ను సేవ్ చేయడం విఫలమైంది"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"రద్దు చేయండి"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"మీ ప్రాధాన్య ఫ్రీక్వెన్సీ అందుబాటులో లేకుంటే, మీ హాట్స్పాట్ వేరొక దానిని ఉపయోగించవచ్చు. మీరు ఫ్రీక్వెన్సీని మార్చినట్లయితే, హాట్స్పాట్ సెక్యూరిటీ సెట్టింగ్లు మారవచ్చు."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHzతో అందుబాటులో లేదు"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"మీరు హాట్స్పాట్ ఫ్రీక్వెన్సీని మార్చినట్లయితే, సెక్యూరిటీ సెట్టింగ్లు మారవచ్చు"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"హాట్స్పాట్ను ప్రారంభిస్తోంది…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"హాట్స్పాట్ను ఆపివేస్తోంది…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"టెథరింగ్ అందుబాటులో లేదు"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"మీ పాస్వర్డ్ను మరచిపోయారా?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"మీ ఆకృతిని మర్చిపోయారా?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"మీ పిన్ను మర్చిపోయారా?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"కొనసాగించడానికి మీ పరికరం ఆకృతిని ఉపయోగించండి"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"కొనసాగడానికి మీ డివైజ్ PINను ఎంటర్ చేయండి"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"కొనసాగడానికి మీ పరికర పాస్వర్డ్ను ఎంటర్ చేయండి."</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"కొనసాగడానికి మీ కార్యాలయ నమూనాను ఉపయోగించండి"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"కొనసాగడానికి మీ ఆకృతిని డ్రా చేయండి"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"కొనసాగడానికి మీ PINను ఎంటర్ చేయండి"</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_strong_auth_required_device_pattern" msgid="113817518413715557">"అదనపు సెక్యూరిటీ కోసం, మీ పరికర ఆకృతిని ఉపయోగించండి"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"వివరణ ఏదీ అందించబడలేదు."</string>
<string name="settings_button" msgid="2195468788019730377">"సెట్టింగ్లు"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"లైట్ సెన్సిటివిటీ, ఫోటోఫోబియా, ముదురు రంగు రూపం, మైగ్రేన్, తలనొప్పి, రీడింగ్ మోడ్, నైట్ మోడ్, బ్రైట్నెస్ను తగ్గించండి, వైట్ పాయింట్"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"సులభమైన వాడకం, సులభంగా యాక్సెస్, సహాయం, సహాయకరం"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"విజన్, వినికిడి, అంధత్వం, చెవుడు, మోటార్, నేర్పరితనం, సహాయకరం, అసిస్టెన్స్, ఉపయోగించడం సులభం, యాక్సెస్ చేయడం సులభం, చేయి, సహాయం"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"విండో మాగ్నిఫైయర్, జూమ్, మ్యాగ్నిఫికేషన్, తక్కువ విజన్, పెద్దదిగా చేయి, పెద్దగా చేయి"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"క్యాప్షన్లు, సబ్టైటిల్స్, CC, Live Transcribe, వినడంలో సమస్య, వినికిడి ఎర్రర్, CART, స్పీచ్ టూ టెక్స్ట్, సబ్టైటిల్"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"రంగు కాంట్రాస్ట్"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"మోటార్, మౌస్"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"వినికిడి పరికారాలు, వినికిడి సమస్యలు, వినికిడి లోపం, కోక్లియర్ ఇంప్లాంట్లు, యాంప్లిఫికేషన్ పరికరాలు, సౌండ్ ప్రాసెసర్లు"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"మోటార్, మౌస్, ఎక్స్టర్నల్ మౌస్, హెడ్ మౌస్, అడాప్టివ్ మౌస్, చక్రాల కుర్చీ, జాయ్స్టిక్"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"వినికిడి పరికారాలు, వినికిడి సమస్యలు, వినికిడి లోపం, కోక్లియర్ ఇంప్లాంట్లు, యాంప్లిఫికేషన్ పరికరాలు, సౌండ్ ప్రాసెసర్లు, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"వినడంలో సమస్య, వినికిడి ఎర్రర్, క్యాప్షన్లు, టెలీటైప్, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"మూడు బటన్లు"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"నేర్పరితనం, మోటార్, సీనియర్, ఆర్థరైటిస్, rsi, స్ట్రోక్, వణుకు, మల్టిపుల్ స్క్లేరోసిస్, సెరిబ్రల్ పాల్సీ, వణుకు, రిపీటీటివ్ స్ట్రెయిన్ గాయం, చేయి"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ఆలస్యం, నేర్పరితనం, సీనియర్"</string>
<string name="print_settings" msgid="8519810615863882491">"ప్రింటింగ్"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ఆఫ్"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ప్రింట్ సర్వీస్ ఆన్లో ఉంది}other{# ప్రింట్ సర్వీస్లు ఆన్లో ఉన్నాయి}}"</string>
@@ -2940,7 +2977,7 @@
<string name="keywords_payment_settings" msgid="6268791289277000043">"చెల్లించడం, నొక్కడం, పేమెంట్లు"</string>
<string name="keywords_backup" msgid="707735920706667685">"బ్యాకప్, బ్యాకప్"</string>
<string name="keywords_face_unlock" msgid="545338452730885392">"ముఖం, అన్లాక్, ప్రామాణీకరణ, సైన్ ఇన్"</string>
- <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ఫేస్, అన్లాక్, ప్రామాణీకరణ, సైన్ ఇన్ చేయి, వేలిముద్ర, బయోమెట్రిక్"</string>
+ <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ఫేస్, అన్లాక్, ప్రామాణీకరణ, సైన్ ఇన్, వేలిముద్ర, బయోమెట్రిక్"</string>
<string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl వెర్షన్, imei sv"</string>
<string name="keywords_sim_status" msgid="4221401945956122228">"నెట్వర్క్, మొబైల్ నెట్వర్క్ స్టేటస్, సర్వీస్ స్టేటస్, సిగ్నల్ సామర్థ్యం, మొబైల్ నెట్వర్క్ రకం, రోమింగ్"</string>
<string name="keywords_sim_status_esim" msgid="3338719238556853609">"నెట్వర్క్, మొబైల్ నెట్వర్క్ స్టేటస్, సర్వీస్ స్టేటస్, సిగ్నల్ సామర్థ్యం, మొబైల్ నెట్వర్క్ రకం, రోమింగ్, EID"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> డేటా హెచ్చరిక"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> డేటా పరిమితి"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> డేటా హెచ్చరిక / <xliff:g id="ID_2">^2</xliff:g> డేటా పరిమితి"</string>
- <string name="operator_warning" msgid="5672761970087591211">"క్యారియర్ డేటా అకౌంటింగ్, పరికర డేటా అకౌంటింగ్ మధ్య తేడా ఉండవచ్చు"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"క్యారియర్ నెట్వర్క్లు వినియోగించిన డేటా మినహాయించబడుతుంది"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> వినియోగించబడింది"</string>
<string name="set_data_warning" msgid="1685771882794205462">"డేటా హెచ్చరికను సెట్ చేయండి"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"ఆటోఫిల్ సర్వీస్"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ఆటోమేటిక్ ఆటోఫిల్ సర్వీస్ సెట్టింగ్"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"పాస్వర్డ్లు"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"పాస్వర్డ్లు, పాస్-కీలు, డేటా సర్వీస్లు"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"పాస్వర్డ్లు, పాస్-కీలు, అలాగే డేటా సర్వీస్లు"</string>
<string name="credman_credentials" msgid="4931371941253324143">"అదనపు ప్రొవైడర్లు"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# పాస్వర్డ్}other{# పాస్వర్డ్లు}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"ఆటో, పూరించు, ఆటోఫిల్, పాస్వర్డ్"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"ఆటోమేటిక్, ఫిల్, ఆటోఫిల్, డేటా, పాస్-కీ, పాస్వర్డ్"</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="4951846866327737417">"<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="2642776965060619988">"పాస్వర్డ్లు, పాస్-కీలు, డేటా సర్వీస్లు"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"పాస్వర్డ్లు, పాస్-కీలు, అలాగే డేటా సర్వీస్లు"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$sను ఆఫ్ చేయాలా?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ఈ సర్వీస్ను ఆఫ్ చేయాలా?</b> <br/> <br/> మీరు సైన్ ఇన్ చేసినప్పుడు, పాస్వర్డ్లు, పాస్-కీలు, పేమెంట్ ఆప్షన్లు, ఇంకా ఇతర సమాచారం వంటి సేవ్ చేసిన సమాచారం పూరించడం జరగదు. మీరు సేవ్ చేసిన సమాచారాన్ని ఉపయోగించడానికి, పాస్వర్డ్ను, పాస్-కీని, లేదా డేటా సర్వీస్ను ఎంచుకోండి."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$sని ఉపయోగించాలా?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"ఏది ఆటోఫిల్ చేయవచ్చో గుర్తించడానికి %1$s మీ స్క్రీన్పై ఉన్న వాటిని ఉపయోగిస్తుంది."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"పాస్వర్డ్లు, పాస్-కీలు అలాగే డేటా సర్వీస్ల పరిమితి"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"మీరు ఒకే సమయంలో గరిష్ఠంగా 5 పాస్వర్డ్లు, పాస్-కీలు అలాగే డేటా సర్వీస్లను యాక్టివ్గా కలిగి ఉండవచ్చు. మరిన్నింటిని జోడించడం కోసం ఇప్పటికే ఉన్న ఒక సర్వీస్ను ఆఫ్ చేయండి."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"పాస్వర్డ్లు, పాస్-కీలు, అలాగే డేటా సర్వీస్ల పరిమితి"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"మీరు ఒకే సమయంలో గరిష్ఠంగా 5 పాస్వర్డ్లు, పాస్-కీలు, అలాగే డేటా సర్వీస్లను యాక్టివ్గా జోడించవచ్చు. మరిన్నింటిని జోడించడం కోసం ఇప్పటికే ఉన్న ఒక సర్వీస్ను ఆఫ్ చేయండి."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ఆఫ్ చేయండి"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ఆటోఫిల్"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"లాగింగ్ స్థాయి"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"అనుకూల మీడియా నుండి వచ్చే ఆడియో మరింతగా లీనమయ్యేలా చేస్తుంది"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"హెడ్ ట్రాకింగ్"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"మీరు మీ తలను మరింత సహజంగా వినిపించేలా కదిపేటప్పుడు ఆడియో మారుతుంది"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ఆడియో పరికరం రకం"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"తెలియనిది"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"స్పీకర్"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"హెడ్ఫోన్స్"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"కార్ కిట్"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"ఇతరం"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"నెట్వర్క్ డౌన్లోడ్ రేట్ పరిమితి"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ఇంటర్నెట్ కనెక్టివిటీని అందించే అన్ని నెట్వర్క్లకు వర్తించే నెట్వర్క్ బ్యాండ్విడ్త్ ఎంటర్ రేటు పరిమితిని కాన్ఫిగర్ చేయండి."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"నెట్వర్క్ డౌన్లోడ్ రేట్ పరిమితిని కాన్ఫిగర్ చేయండి"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"మధ్యస్థం"</string>
<string name="contrast_high" msgid="3988567609694797696">"అధికం"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"ఈ యాప్ను 1 విండోలో మాత్రమే తెరవవచ్చు"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"సర్విస్ ఆన్లో ఉంది"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"సర్విస్ ఆఫ్లో ఉంది"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"షార్ట్కట్ ఆఫ్లో ఉంది"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"ఆన్లో ఉంది"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ఆఫ్లో ఉంది"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ఆఫ్లో ఉంది"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ఆఫ్లో ఉంది"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"ఆన్లో ఉంది"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ఆఫ్లో ఉంది"</string>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index dd07c77..cf4a250 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"หลังจาก 1 นาที"</item>
<item msgid="1574040255478150028">"หลังจาก 5 นาที"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"เปิดฟีเจอร์ปรับความสว่างอัตโนมัติเพื่อยืดอายุการใช้งานแบตเตอรี่"</item>
+ <item msgid="2256666063790193306">"ลดระยะหมดเวลาหน้าจอเพื่อยืดอายุการใช้งานแบตเตอรี่"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index caa2e84..4f5acee 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"ไม่ระบุ"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"เพศหญิง"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"เพศชาย"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{นำภาษาที่เลือกออกใช่ไหม}other{นำภาษาที่เลือกออกใช่ไหม}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"ข้อความจะแสดงเป็นภาษาอื่น"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ไม่สามารถนำทุกภาษาออกได้"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"เพิ่มใบหน้าและ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"เพิ่มใบหน้า ลายนิ้วมือ และ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"เพิ่มใบหน้า ลายนิ้วมือ และ<xliff:g id="WATCH">%s</xliff:g> แล้ว"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"ตั้งค่านาฬิกา"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"การปลดล็อกด้วยนาฬิกาเป็นอีกวิธีหนึ่งที่สะดวกในการปลดล็อกโทรศัพท์เครื่องนี้ เช่น เมื่อนิ้วเปียกอยู่หรือระบบจดจำใบหน้าไม่ได้\n\nคุณใช้นาฬิกาเพื่อปลดล็อกโทรศัพท์เครื่องนี้ได้เมื่อคุณทำดังต่อไปนี้"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ไว้ทีหลัง"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"ต่อไป"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"เพิ่มเติม"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"วิธีการทำงาน"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"นาฬิกาต้องปลดล็อกไว้ สวมอยู่บนข้อมือของคุณ และอยู่ในระยะสัญญาณของโทรศัพท์เครื่องนี้ คุณจะไม่ต้องปลดล็อกนาฬิกาอีกครั้งขณะสวมไว้บนข้อมือ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"เมื่อโทรศัพท์เครื่องนี้ปลดล็อกแล้ว คุณจะได้รับการแจ้งเตือนที่นาฬิกา หากเป็นการปลดล็อกโดยไม่ได้ตั้งใจ ให้แตะการแจ้งเตือนเพื่อล็อกโทรศัพท์อีกครั้ง"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"คุณควบคุมได้"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"คุณนำนาฬิกาออกจากฟีเจอร์การปลดล็อกด้วยนาฬิกาได้ทุกเมื่อในการตั้งค่า"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"แตะการแจ้งเตือน"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"ปัดขึ้นบนหน้าจอล็อก"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"เลือกนาฬิกา"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"นาฬิกาที่พร้อมใช้งาน"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"ยกเลิก"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"ยืนยัน"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"ตั้งค่าเรียบร้อยแล้ว"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"ตอนนี้คุณสามารถใช้นาฬิกาเพื่อปลดล็อกโทรศัพท์เครื่องนี้เมื่อปัดขึ้นบนหน้าจอล็อกหรือแตะการแจ้งเตือน"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"เสร็จสิ้น"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"การปลดล็อกด้วยนาฬิกา"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"คุณสามารถใช้นาฬิกาเพื่อปลดล็อกโทรศัพท์เครื่องนี้เมื่อปัดขึ้นบนหน้าจอล็อกหรือแตะการแจ้งเตือน"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"หากต้องการใช้การปลดล็อกด้วยนาฬิกาก็จะต้องปลดล็อกนาฬิกาไว้ สวมอยู่บนข้อมือของคุณ อยู่ในระยะสัญญาณ และเชื่อมต่อกับโทรศัพท์เครื่องนี้ หากการเชื่อมต่อเกิดติดขัด คุณจะต้องปลดล็อกโทรศัพท์ก่อนจึงจะใช้การปลดล็อกด้วยนาฬิกาได้\n\nข้อควรทราบ\nคุณตั้งค่านาฬิกาได้ครั้งละ 1 เรือนเท่านั้น หากต้องการเพิ่มนาฬิกาอื่น ให้นำนาฬิกาปัจจุบันออกก่อน"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"ดูข้อมูลเพิ่มเติมเกี่ยวกับการปลดล็อกด้วยนาฬิกา"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"เพิ่มนาฬิกา"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"นำนาฬิกาออก"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"การปลดล็อกด้วยลายนิ้วมือและใบหน้า"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"การปลดล็อกด้วยใบหน้าและลายนิ้วมือสำหรับการทำงาน"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"ต้องตั้งค่า"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"คุณอาจจำเป็นต้องพิมพ์รหัสผ่านนี้ลงในอุปกรณ์อีกเครื่องหนึ่งด้วยเช่นกัน"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"ยืนยันการจับคู่กับชุดที่ทำงานร่วมกัน"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"ให้สิทธิ์เข้าถึงรายชื่อติดต่อและประวัติการโทร"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"อนุญาตให้เข้าถึงรายชื่อติดต่อและประวัติการโทรด้วย"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"จะมีการใช้ข้อมูลเพื่อประกาศการติดต่อและอื่นๆ"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"ไม่สามารถเชื่อมต่อกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"อุปกรณ์ที่ใช้ได้"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"กำลังแชร์ Wi‑Fi กับอุปกรณ์เครื่องนี้…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"กำลังเชื่อมต่อ…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"แชร์ฮอตสปอต"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ยืนยันว่าเป็นคุณ"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ยืนยันว่าเป็นคุณ"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"รหัสผ่าน Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"รหัสผ่านฮอตสปอต: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"เชื่อมต่ออัตโนมัติ"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"เครือข่ายไม่อยู่ในพื้นที่ให้บริการ"</string>
<string name="wifi_forget" msgid="3485573280364015620">"ลบ"</string>
<string name="wifi_modify" msgid="5127926476383659412">"แก้ไข"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"ไม่สามารถเลิกการจดจำเครือข่าย"</string>
<string name="wifi_save" msgid="2312643132472226807">"บันทึก"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"ไม่สามารถบันทึกเครือข่าย"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"ยกเลิก"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"หากไม่มีความถี่ที่ต้องการ ฮอตสปอตอาจใช้ความถี่อื่น การตั้งค่าความปลอดภัยฮอตสปอตอาจเปลี่ยนแปลงหากคุณเปลี่ยนความถี่"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"ไม่พร้อมใช้งานคลื่นความถี่ 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"การตั้งค่าความปลอดภัยอาจเปลี่ยนแปลงหากคุณเปลี่ยนคลื่นความถี่ของฮอตสปอต"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"กำลังเปิดฮอตสปอต…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"กำลังปิดฮอตสปอต…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ไม่มีบริการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"หากลืมรหัสผ่าน"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"หากลืมรูปแบบ"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"หากลืม PIN"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ใช้รูปแบบของอุปกรณ์เพื่อดำเนินการต่อ"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ป้อน PIN ของอุปกรณ์เพื่อดำเนินการต่อ"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ป้อนรหัสผ่านของอุปกรณ์เพื่อดำเนินการต่อ"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ใช้รูปแบบของที่ทำงานเพื่อดำเนินการต่อ"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"วาดรูปแบบเพื่อดำเนินการต่อ"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ป้อน PIN เพื่อดําเนินการต่อ"</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">"ป้อน PIN ของโปรไฟล์งานเพื่อดำเนินการต่อ"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ป้อนรหัสผ่านของโปรไฟล์งานเพื่อดำเนินการต่อ"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ใช้รูปแบบของอุปกรณ์เพื่อเพิ่มความปลอดภัย"</string>
@@ -2128,10 +2162,10 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"ไม่มีคำอธิบาย"</string>
<string name="settings_button" msgid="2195468788019730377">"การตั้งค่า"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ความไวต่อแสง อาการกลัวแสง ธีมมืด ไมเกรน ปวดหัว โหมดอ่านหนังสือ โหมดกลางคืน ลดความสว่าง จุดสีขาว"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"ใช้งานง่าย, เข้าถึงง่าย, ความช่วยเหลือ, การช่วยเหลือพิเศษ"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"การมองเห็น, การได้ยิน, ตาบอด, หูหนวก, การเคลื่อนไหว, ความคล่องแคล่ว, อำนวยความสะดวก, การสนับสนุน, ใช้งานง่าย, เข้าถึงง่าย, มือ, ความช่วยเหลือ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"แว่นขยายหน้าจอ, ซูม, การขยาย, สายตาเลือนราง, ขยาย, ทำให้ใหญ่ขึ้น"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
- <string name="keywords_live_caption" msgid="1667203998080567556">"คำบรรยายแทนเสียง, คำบรรภาพ, คำบรรยาย, Live Transcribe, มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, CART, การแปลงคำพูดเป็นข้อความ"</string>
+ <string name="keywords_live_caption" msgid="1667203998080567556">"คำบรรยายแทนเสียง, คำบรรภาพ, คำบรรยาย, Live Transcribe, มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, CART, การแปลงเสียงพูดเป็นข้อความ"</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>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"คอนทราสต์ของสี"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"การเคลื่อนไหว, เมาส์"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"เครื่องช่วยฟัง, มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, ประสาทหูเทียม, อุปกรณ์ขยายเสียง, เครื่องแปลงสัญญาณเสียง"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"การเคลื่อนไหว, เมาส์, เมาส์ภายนอก, เมาส์แบบคาดศีรษะ, เมาส์แบบปรับได้, วีลแชร์, จอยสติ๊ก"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"เครื่องช่วยฟัง, มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, ประสาทหูเทียม, อุปกรณ์ขยายเสียง, เครื่องแปลงสัญญาณเสียง, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, คำบรรยายแทนเสียง, โทรพิมพ์, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ปุ่ม 3 ปุ่ม"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"ความคล่องแคล่ว, การเคลื่อนไหว, ผู้สูงอายุ, ภาวะข้ออักเสบ, RSI, โรคหลอดเลือดสมอง, อาการสั่น, โรคปลอกประสาทเสื่อมแข็ง, ภาวะสมองพิการ, การสั่น, การบาดเจ็บจากการทำงานซ้ำๆ, มือ"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ล่าช้า, ความคล่องแคล่ว, ผู้สูงอายุ"</string>
<string name="print_settings" msgid="8519810615863882491">"การพิมพ์"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"ปิด"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{เปิดบริการพิมพ์ 1 รายการ}other{เปิดบริการพิมพ์ # รายการ}}"</string>
@@ -3679,8 +3716,8 @@
<string name="ignore_optimizations_off_desc" msgid="3324571675983286177">"แนะนำเพื่ออายุการใช้งานแบตเตอรี่ที่นานขึ้น"</string>
<string name="app_list_preference_none" msgid="1635406344616653756">"ไม่มี"</string>
<string name="work_profile_usage_access_warning" msgid="3477719910927319122">"การปิดสิทธิ์เข้าถึงการใช้งานของแอปนี้ไม่ได้ทำให้ผู้ดูแลระบบติดตามปริมาณการใช้อินเทอร์เน็ตของแอปในโปรไฟล์งานของคุณไม่ได้"</string>
- <string name="draw_overlay" msgid="7902083260500573027">"แสดงทับแอปอื่นๆ"</string>
- <string name="system_alert_window_settings" msgid="6458633954424862521">"แสดงทับแอปอื่นๆ"</string>
+ <string name="draw_overlay" msgid="7902083260500573027">"แสดงทับบนแอปอื่นๆ"</string>
+ <string name="system_alert_window_settings" msgid="6458633954424862521">"แสดงทับบนแอปอื่นๆ"</string>
<string name="permit_draw_overlay" msgid="4468994037192804075">"อนุญาตให้แสดงทับแอปอื่นๆ"</string>
<string name="allow_overlay_description" msgid="1607235723669496298">"อนุญาตให้แอปนี้แสดงทับแอปอื่นๆ ที่คุณกำลังใช้อยู่ แอปนี้จะเห็นจุดที่คุณแตะหรือเปลี่ยนแปลงสิ่งที่ปรากฏในหน้าจอได้"</string>
<string name="manage_external_storage_title" msgid="8024521099838816100">"การเข้าถึงไฟล์ทั้งหมด"</string>
@@ -3695,7 +3732,7 @@
<string name="media_management_apps_description" msgid="8000565658455268524">"หากอนุญาต แอปนี้จะแก้ไขหรือลบไฟล์สื่อที่สร้างขึ้นด้วยแอปอื่นๆ โดยไม่ต้องถาม แอปต้องมีสิทธิ์เข้าถึงไฟล์และสื่อ"</string>
<string name="keywords_media_management_apps" msgid="7499959607583088690">"สื่อ ไฟล์ การจัดการ ตัวจัดการ จัดการ แก้ไข ตัวแก้ไข แอป แอปพลิเคชัน โปรแกรม"</string>
<string name="keywords_vr_listener" msgid="902737490270081131">"VR Virtual Reality Listener บริการตัวช่วยสเตอริโอ"</string>
- <string name="overlay_settings" msgid="2030836934139139469">"แสดงทับแอปอื่นๆ"</string>
+ <string name="overlay_settings" msgid="2030836934139139469">"แสดงทับบนแอปอื่นๆ"</string>
<string name="filter_overlay_apps" msgid="2483998217116789206">"แอปที่มีสิทธิ์"</string>
<string name="app_permission_summary_allowed" msgid="1155115629167757278">"อนุญาต"</string>
<string name="app_permission_summary_not_allowed" msgid="2673793662439097900">"ไม่อนุญาต"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"คำเตือนปริมาณอินเทอร์เน็ต <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"ขีดจำกัดอินเทอร์เน็ต <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"คำเตือนปริมาณอินเทอร์เน็ต <xliff:g id="ID_1">^1</xliff:g>/ขีดจำกัดอินเทอร์เน็ต <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"การบันทึกการใช้อินเทอร์เน็ตของผู้ให้บริการอาจแตกต่างไปจากการบันทึกในอุปกรณ์"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"ไม่รวมอินเทอร์เน็ตที่ใช้โดยเครือข่ายผู้ให้บริการ"</string>
<string name="data_used_template" msgid="8229342096562327646">"ใช้ไป <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ตั้งค่าเตือนการใช้อินเทอร์เน็ต"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"บริการป้อนข้อความอัตโนมัติ"</string>
<string name="default_autofill_app" msgid="372234803718251606">"บริการป้อนข้อความอัตโนมัติเริ่มต้น"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"รหัสผ่าน"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"รหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"รหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</string>
<string name="credman_credentials" msgid="4931371941253324143">"ผู้ให้บริการเพิ่มเติม"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{รหัสผ่าน # รายการ}other{รหัสผ่าน # รายการ}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"อัตโนมัติ ป้อนข้อความ ป้อนข้อความอัตโนมัติ รหัสผ่าน"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"อัตโนมัติ, ป้อน, ป้อนข้อความอัตโนมัติ, ข้อมูล, พาสคีย์, รหัสผ่าน"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>ตรวจดูว่าคุณเชื่อถือแอปนี้ได้</b> <br/> <br/> <xliff:g id=app_name example=Google ป้อนอัตโนมัติ>%1$s</xliff:g> ใช้สิ่งที่อยู่บนหน้าจอเพื่อดูว่าจะป้อนข้อมูลใดโดยอัตโนมัติได้บ้าง"</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"รหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"รหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"ปิด %1$s ไหม"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>ปิดบริการนี้ไหม</b> <br/> <br/> ระบบจะไม่กรอกข้อมูลที่บันทึกไว้ เช่น รหัสผ่าน พาสคีย์ วิธีการชำระเงิน และข้อมูลอื่นๆ เมื่อคุณลงชื่อเข้าใช้ หากต้องการใช้ข้อมูลที่บันทึกไว้ ให้เลือกรหัสผ่าน พาสคีย์ หรือบริการข้อมูล"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"ใช้ %1$s ใช่ไหม"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ใช้สิ่งที่อยู่บนหน้าจอเพื่อดูว่าจะป้อนข้อมูลใดโดยอัตโนมัติได้บ้าง"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"ขีดจำกัดรหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"คุณสามารถใช้งานรหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ตได้พร้อมกันสูงสุด 5 รายการ ปิดบริการใดบริการหนึ่งเพื่อเพิ่มอีก"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"ขีดจำกัดรหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ต"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"คุณสามารถใช้งานรหัสผ่าน พาสคีย์ และบริการอินเทอร์เน็ตได้พร้อมกันสูงสุด 5 รายการ ปิดบริการใดบริการหนึ่งเพื่อเพิ่มอีก"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"ปิด"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"ป้อนอัตโนมัติ"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"ระดับการบันทึก"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"เสียงจากสื่อที่เข้ากันได้จะสมจริงยิ่งขึ้น"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"การติดตามการเคลื่อนไหวของศีรษะ"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"เสียงจะเปลี่ยนตามการขยับศีรษะเพื่อให้ฟังดูเป็นธรรมชาติมากยิ่งขึ้น"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ประเภทอุปกรณ์เสียง"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ไม่ทราบ"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ลำโพง"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"หูฟัง"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"ชุดอุปกรณ์ในรถยนต์"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"อื่นๆ"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"ขีดจำกัดอัตราการดาวน์โหลดของเครือข่าย"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"กำหนดค่าขีดจำกัดอัตราแบนด์วิดท์สำหรับการดาวน์โหลดขั้นต่ำและสูงสุดของเครือข่ายซึ่งใช้กับเครือข่ายทั้งหมดที่ให้การเชื่อมต่ออินเทอร์เน็ต"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"กำหนดค่าขีดจำกัดอัตราการดาวน์โหลดของเครือข่าย"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ถอนการติดตั้งแอป"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{แอปที่ติดตั้งใน # เดือนที่ผ่านมา}other{แอปที่ติดตั้งใน # เดือนที่ผ่านมา}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{แอปที่ติดตั้งนานกว่า # เดือนที่ผ่านมา}other{แอปที่ติดตั้งนานกว่า # เดือนที่ผ่านมา}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"สัดส่วนการแสดงผล"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"เลือกสัดส่วนการแสดงผลเพื่อดูแอปนี้หากแอปไม่ได้ออกแบบมาให้เหมาะกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ของคุณ"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"แอปที่แนะนำ"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"แอปที่คุณลบล้าง"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ค่าเริ่มต้นของแอป"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"เต็มหน้าจอ"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ครึ่งหน้าจอ"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"สัดส่วนการแสดงผลในอุปกรณ์"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"แอปจะรีสตาร์ทเมื่อคุณเปลี่ยนสัดส่วนการแสดงผล การเปลี่ยนแปลงที่ไม่ได้บันทึกไว้อาจหายไป"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"เซ็นเซอร์ลายนิ้วมือ"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"การแจ้งเตือนด้วยแฟลช"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"เกี่ยวกับการแจ้งเตือนด้วยแฟลช"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"ปานกลาง"</string>
<string name="contrast_high" msgid="3988567609694797696">"สูง"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"แอปนี้เปิดได้ใน 1 หน้าต่างเท่านั้น"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"บริการเปิดอยู่"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"บริการปิดอยู่"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"ทางลัดปิดอยู่"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"เปิดอยู่"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"ปิดอยู่"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"ปิดอยู่"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"ปิด"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"เปิด"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"ปิด"</string>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index f9ef5e2..887a9cb 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Pagkalipas ng 1 minuto"</item>
<item msgid="1574040255478150028">"Pagkalipas ng 5 minuto"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"I-on ang adaptive brightness para pahabain ang tagal ng baterya"</item>
+ <item msgid="2256666063790193306">"Bawasan ang timeout ng screen para pahabain ang tagal ng baterya"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 65d26b6..18b14b6 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Hindi tinukoy"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Pambabae"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Panlalaki"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Alisin ang piniling wika?}one{Alisin ang mga piniling wika?}other{Alisin ang mga piniling wika?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Ipapakita ang text sa ibang wika."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Hindi maaalis ang lahat ng wika"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Naidagdag ang mukha at <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Naidagdag ang mukha, fingerprint, at <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Naidagdag ang mukha, mga fingerprint, at <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"I-set up ang iyong relo"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Ang Pag-unlock Gamit ang Relo ay isa pang madaling paraan para i-unlock ang teleponong ito, halimbawa, kapag basa ang iyong mga daliri o kung hindi nakikilala ang mukha mo.\n\nMagagamit mo ang iyong relo para i-unlock ang teleponong ito kapag ikaw ay:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Hindi ngayon"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Magpatuloy"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Higit pa"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Paano ito gumagana"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Ang iyong relo ay dapat na naka-unlock, nasa iyong pulso, at malapit sa teleponong ito. Hindi mo kakailanganing i-unlock ulit ang iyong relo habang nasa pulso mo ito."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Kapag naka-unlock ang teleponong ito, maaabisuhan ka sa iyong relo. Kung na-unlock ito nang hindi mo sinadadya, i-tap ang notification para i-lock ulit ang telepono."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Ikaw ang may kontrol"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Puwede mong alisin ang iyong relo sa Pag-unlock Gamit ang Relo anumang oras sa Mga Setting"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Mag-tap ng notification"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Mag-swipe pataas sa lock screen"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Piliin ang iyong relo"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Mga available na relo"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Kanselahin"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Kumpirmahin"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Handa ka na!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Puwede mo nang gamitin ang iyong relo para i-unlock ang teleponong ito kapag nag-swipe ka pataas sa lock screen o nag-tap ka ng notification"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Tapos na"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Pag-unlock Gamit ang Relo"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Puwede mong gamitin ang iyong relo para i-unlock ang teleponong ito kapag nag-swipe ka pataas sa lock screen o nag-tap ka ng notification"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Para magamit ang Pag-unlock Gamit ang Relo, dapat naka-unlock, suot mo sa iyong kamay, nasa malapit, at nakakonekta sa teleponong ito ang iyong relo. Kung maaantala ang koneksyon, kakailanganin mong i-unlock ang telepono bago mo magamit ang Pag-unlock Gamit ang Relo.\n\nTandaan:\nIsang relo lang ang magagamit mo sa bawat pagkakataon. Para magdagdag ng isa pang relo, alisin muna ang kasalukuyang relo."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Matuto pa tungkol sa Pag-unlock Gamit ang Relo"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Magdagdag ng relo"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Alisin ang relo"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Pag-unlock Gamit ang Fingerprint at Mukha"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Pag-unlock Gamit ang Mukha at Fingerprint para sa trabaho"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Kinakailangan ang pag-set up"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Maaari mo ring kailanganing i-type ang passkey na ito sa iba pang device."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Kumpirmahin para ipares sa coordinated na set"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Payagan ang access sa iyong mga contact at history ng tawag"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Payagan din ang access sa mga contact at history ng tawag"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Gagamitin ang impormasyon para sa mga anunsyo sa tawag at higit pa"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Hindi makakonekta sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Mga available na device"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Ibinabahagi ang Wi‑Fi sa device na ito…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Kumokonekta…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Ibahagi ang hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"I-verify na ikaw ito"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"I-verify na ikaw ito"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Password ng Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Password ng hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Walang signal ang network"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Kalimutan"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Baguhin"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Nabigong kalimutan ang network"</string>
<string name="wifi_save" msgid="2312643132472226807">"I-save"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Nabigong i-save ang network"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Kanselahin"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Kung hindi available ang mas gusto mong frequency, posibleng iba ang gamitin ng iyong hotspot. Posibleng magbago ang mga setting ng seguridad ng hotspot kung babaguhin mo ang frequency."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Hindi available sa 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Puwedeng magbago ang mga setting ng seguridad kung babaguhin mo ang frequency ng hotspot"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Pag-on sa hotspot…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Pag-off sa hotspot…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Hindi available ang pag-tether"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Nakalimutan ang iyong password?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Nakalimutan ang iyong pattern?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Nakalimutan ang iyong PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gamitin ang iyong pattern sa device upang magpatuloy"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Ilagay ang iyong PIN sa device upang magpatuloy"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Ilagay ang iyong password sa device upang magpatuloy"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gamitin ang iyong pattern sa trabaho upang magpatuloy"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Iguhit ang iyong pattern para magpatuloy"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Ilagay ang iyong PIN para magpatuloy"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Ilagay ang iyong password para magpatuloy"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Iguhit ang iyong pattern sa trabaho para magpatuloy"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Ilagay ang iyong PIN sa trabaho para magpatuloy"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Ilagay ang iyong password sa trabaho upang magpatuloy"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para sa karagdagang seguridad, gamitin ang pattern ng iyong device"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Walang ibinigay na paglalarawan."</string>
<string name="settings_button" msgid="2195468788019730377">"Mga Setting"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"pagkasensitibo sa ilaw, photophobia, madilim na tema, matinding pananakit ng ulo, pananakit ng ulo, reading mode, night mode, bawasan ang liwanag, white point"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Dali ng paggamit, dali ng pag-access, tulong, nakakatulong"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"paningin, pandinig, bulag, bingi, paggalaw, kagalingan sa paggalaw, nakakatulong, pagtulong, dali ng paggamit, dali ng pag-access, kamay, tulong"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Magnifier ng Window, Zoom, Pag-magnify, Malabo ang paningin, Palakihin, gawing mas malaki"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Mga caption, mga closed caption, CC, Instant Transcribe, may problema sa pandinig, walang pandinig, CART, speech to text, subtitle"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"contrast ng kulay"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"mga hearing aid, may problema sa pandinig, pagkawala ng pandinig, mga cochlear implant, mga device sa pag-amplify, mga processor ng tunog"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"paggalaw, mouse, external na mouse, head mouse, adaptive na mouse, wheelchair, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"mga hearing aid, may problema sa pandinig, pagkawala ng pandinig, mga cochlear implant, mga device sa pag-amplify, mga sound processor, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"may problema sa pandinig, walang pandinig, mga caption, Teletype, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"tatlong button"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"kagalingan sa paggalaw, paggalaw, nakatatanda, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, panginginig, paulit-ulit na pinsala sa kalamnan, kamay"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"pagkaantala, kagalingan sa paggalaw, nakatatanda"</string>
<string name="print_settings" msgid="8519810615863882491">"Pag-print"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Naka-off"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{May 1 serbisyo ng pag-print na naka-on}one{May # serbisyo ng pag-print na naka-on}other{May # na serbisyo ng pag-print na naka-on}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Babala kapag umabot na sa <xliff:g id="ID_1">^1</xliff:g> ang data"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> na limitasyon sa data"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Babala kapag umabot na sa <xliff:g id="ID_1">^1</xliff:g> ang data / <xliff:g id="ID_2">^2</xliff:g> na limitasyon sa data"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Maaaring iba ang accounting ng data ng carrier kumpara sa accounting ng device"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Hindi kasama ang data na ginagamit ng mga carrier network"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> ang nagamit"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Magtakda ng babala sa data"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Serbisyo ng autofill"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Default na serbisyo ng autofill"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Mga Password"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Mga password, passkey, at serbisyo sa data"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Mga password, passkey, at serbisyo sa data"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Mga karagdagang provider"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# password}one{# password}other{# na password}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"auto, punan, autofill, password"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"auto, fill, autofill, data, passkey, password"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Tiyaking pinagkakatiwalaan mo ang app na ito</b> <br/> <br/> Ginagamit ng <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> ang nasa iyong screen para matukoy kung ano ang pwedeng i-autofill."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Gamitin ang <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> Ginagamit ng <xliff:g id=app_name example=Provider>%1$s</xliff:g> kung ano ang nasa screen mo para matukoy kung ano ang puwedeng i-autofill. Mula ngayon, mase-save na rito ang mga bagong password, passkey, at iba pang impormasyon."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Mga password, passkey, at serbisyo sa data"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Mga password, passkey, at serbisyo sa data"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"I-off ang %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>I-off ang serbisyong ito?</b> <br/> <br/> Hindi pupunan ang mga naka-save na impormasyon tulad ng mga password, passkey, paraan ng pagbabayad, at iba pang impormasyon kapag nag-sign in ka. Para magamit ang iyong naka-save na impormasyon, pumili ng serbisyo ng password, passkey, o data."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Gamitin ang %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"Ginagamit ng %1$s kung ano ang nasa iyong screen para tukuyin kung ano ang puwedeng i-autofill."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Limitasyon sa mga password, passkey, at serbisyo sa data"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Puwede kang magkaroon ng hanggang 5 aktibong password, passkey, at serbisyo sa data nang sabay-sabay. Mag-off ng serbisyo para makapagdagdag ng higit pa."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Limitasyon sa mga password, passkey, at serbisyo sa data"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Puwede kang magkaroon ng hanggang 5 aktibong password, passkey, at serbisyo sa data nang sabay-sabay. Mag-off ng serbisyo para makapagdagdag ng higit pa."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"I-off"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"I-autofill"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Antas ng pag-log"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Nagiging mas immersive ang audio mula sa compatible na media"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pag-track ng ulo"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Nagbabago ang audio habang iginagalaw mo ang iyong ulo para maging mas natural ang tunog"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Uri ng Audio Device"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Hindi alam"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Headphones"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Car Kit"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Iba pa"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitasyon sa rate ng pag-download ng network"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"I-configure ang limitasyon sa rate ng ingress ng bandwith ng network na inilalapat sa lahat ng network na nagbibigay ng koneksyon sa internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"I-configure ang limitasyon sa rate ng pag-download ng network"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"I-uninstall ang app"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Mga app na na-install sa nakalipas na # buwan}one{Mga app na na-install sa nakalipas na # buwan}other{Mga app na na-install sa nakalipas na # na buwan}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Mga app na na-install nang higit sa # buwan na ang nakalipas}one{Mga app na na-install nang higit sa # buwan na ang nakalipas}other{Mga app na na-install nang higit sa # na buwan na ang nakalipas}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Aspect ratio"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Pumili ng aspect ratio para tingnan ang app na ito kung hindi pa ito idinisenyo para magkasya sa iyong <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Mga iminumungkahing app"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Mga app na na-override mo"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Default ng app"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Full screen"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Kalahating screen"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Aspect ratio ng device"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Magre-restart ang app kapag binago mo ang aspect ratio. Posibleng mawala mo ang mga hindi na-save na pagbabago."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensor para sa fingerprint"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Mga flash notification"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Tungkol sa mga flash notification"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Katamtaman"</string>
<string name="contrast_high" msgid="3988567609694797696">"Mataas"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Sa 1 window lang puwedeng buksan ang app na ito"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Naka-on ang serbisyo"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Naka-off ang serbisyo"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Naka-off ang shortcut"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Naka-on"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Naka-off"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Naka-off"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Naka-off"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Naka-on"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Naka-off"</string>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 5892ae1..9c1daf1 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 dakika sonra"</item>
<item msgid="1574040255478150028">"5 dakika sonra"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Pil ömrünü uzatmak için otomatik parlaklığı açın"</item>
+ <item msgid="2256666063790193306">"Pil ömrünü uzatmak için ekran zaman aşımını azaltın"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 36efa64..9e011c9 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Belirtilmedi"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Kadın"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Erkek"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Seçilen dil kaldırılsın mı?}other{Seçilen diller kaldırılsın mı?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Metin başka bir dilde görüntülenecek."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Tüm diller kaldırılamaz"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Yüz ve <xliff:g id="WATCH">%s</xliff:g> eklendi"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Yüz, parmak izi ve <xliff:g id="WATCH">%s</xliff:g> eklendi"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Yüz, parmak izleri ve <xliff:g id="WATCH">%s</xliff:g> eklendi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Kol saatinizi kurma"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Saat ile Kilit Açma, bu telefonun kilidini açabileceğiniz pratik yöntemlerden biridir. Örneğin, parmaklarınız ıslak olduğunda veya yüzünüz tanınmadığında bu özelliği kullanabilirsiniz.\n\nAşağıdaki durumlarda bu telefonun kilidini açmak için kol saatinizi kullanabilirsiniz:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Şimdi değil"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Devam"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Daha fazla"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"İşleyiş şekli"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Kol saatiniz kilidi açık, bileğinize takılı ve bu telefona yakın mesafede olmalıdır. Bileğinizdeyken kol saatinizin kilidini tekrar açmanız gerekmez."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Bu telefonun kilidi açıldığında kol saatinize bildirim gelir. Kilidi yanlışlıkla açtıysanız bildirime dokunarak telefonu tekrar kilitleyebilirsiniz."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Kontrol sizde"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"İstediğiniz zaman Ayarlar\'a giderek kol saatinizi Saat ile Kilit Açma özelliğinden kaldırabilirsiniz"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Bildirime dokunanarak"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Kilit ekranını yukarı kaydırarak"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Kol saatinizi seçin"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Mevcut kol saatleri"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"İptal"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Onayla"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Hazırsınız."</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Kilit ekranında yukarı kaydırdığınızda veya bir bildirime dokunduğunuzda bu telefonun kilidini açmak için artık kol saatinizi kullanabilirsiniz"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Bitti"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Saat ile Kilit Açma"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Kilit ekranında yukarı kaydırdığınızda veya bir bildirime dokunduğunuzda bu telefonun kilidini açmak için kol saatinizi kullanabilirsiniz"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Saat ile Kilit Açma özelliğini kullanmak için kol saatiniz kilidi açık, bileğinize takılı, yakın mesafede ve bu telefona bağlı olmalıdır. Bağlantı kesilirse Saat ile Kilit Açma\'yı kullanabilmek için önce telefonun kilidini açmanız gerekir.\n\nHatırlatma:\nAynı anda yalnızca bir tane kol saati ayarlayabilirsiniz. Başka bir kol saati eklemek için önce mevcut kol saatini kaldırın."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Saat ile Kilit Açma hakkında daha fazla bilgi"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Kol saati ekle"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Kol saatini kaldır"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Parmak İzi ve Yüz Tanıma Kilidi"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"İş profili için Yüz Tanıma ve Parmak İzi Kilidi"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Kurulum gerekiyor"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Bu parolayı diğer cihazda da girmeniz gerekebilir."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Koordine grupla eşlemeyi onaylayın"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Kişilerime ve çağrı geçmişime erişime izin ver"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Kişilere ve çağrı geçmişine erişim izni de verin"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Bilgiler, arama duyuruları ve diğer özellikler için kullanılacak"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> adlı cihaza bağlanılamadı."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Kullanılabilir cihazlar"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Bu cihazla kablosuz bağlantı paylaşılıyor…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Bağlanıyor…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot\'u paylaşın"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Kimliğinizi doğrulayın"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Siz olduğunuzu doğrulayın"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Kablosuz ağ şifresi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot şifresi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Otomatik bağlan"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ağ, kapsama alanında değil"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Unut"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Değiştir"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Ağ unutulamadı"</string>
<string name="wifi_save" msgid="2312643132472226807">"Kaydet"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Ağ kaydedilemedi"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"İptal"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Tercih ettiğiniz sıklık mevcut değilse hotspot\'unuz farklı bir sıklık kullanabilir. Sıklığı değiştirirseniz Hotspot güvenlik ayarları değişebilir."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz\'de kullanılamaz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Hotspot\'un sıklığını değiştirirseniz güvenlik ayarları değişebilir"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Hotspot açılıyor…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Hotspot kapatılıyor…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Tethering kullanılamıyor"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Şifrenizi mi unuttunuz?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Deseninizi mi unuttunuz?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN\'inizi mi unuttunuz?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Devam etmek için cihazınızın desenini kullanın"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Devam etmek için cihazınızın PIN\'ini girin"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Devam etmek için cihazınızın şifresini girin"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Devam etmek için iş profilinizin desenini kullanın"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Devam etmek için deseninizi çizin"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Devam etmek için PIN\'inizi girin"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Devam etmek için şifrenizi girin"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Devam etmek için iş profilinizin desenini çizin"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Devam etmek için iş profilinizin PIN\'ini girin"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Devam etmek için iş profilinizin şifresini girin"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Daha fazla güvenlik için cihaz deseninizi kullanın"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Hiçbir açıklama sağlanmadı."</string>
<string name="settings_button" msgid="2195468788019730377">"Ayarlar"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ışık hassasiyeti, ışık korkusu, karanlık tema, migren, baş ağrısı, okuma modu, gece modu, parlaklığı azalt, beyaz nokta"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Kullanım kolaylığı, erişim kolaylığı, destek, yardımcı"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"görme, işitme, kör, sağır, motor, el becerisi, yardımcı, yardım, kullanım kolaylığı, erişim kolaylığı, el, yardım"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Pencere büyütücü, Yakınlaştırma, Büyütme, Az görme, Genişlet, büyüt"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Altyazı, altyazılar, alt yazılar, Canlı Altyazı, duyma zorluğu, duyma kaybı, gerçek zamanlı altyazı, sesle yazma, alt yazı"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"renk kontrastı"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, fare"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"işitme cihazları, duyma zorluğu, duyma kaybı, koklear implantlar, ses yükseltme cihazları, ses işlemcileri"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motor, fare, harici fare, kafa faresi, uyarlanan fare, tekerlekli sandalye, kontrol çubuğu"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"işitme cihazları, işitme zorluğu, işitme kaybı, koklear implantlar, ses yükseltme cihazları, ses işlemcileri, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"duyma zorluğu, duyma kaybı, altyazı, işitme engelli iletişim cihazı, işitme engelli iletişim"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"üç düğme"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"el becerisi, motor, yaşlı, eklem iltihabı, rsi, inme, titreme, multipl skleroz, beyin felci, sallanma, aşırı kullanım sonucu kas rahatsızlığı, el"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"gecikme, el becerisi, yaşlı"</string>
<string name="print_settings" msgid="8519810615863882491">"Yazdırma"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Kapalı"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 yazdırma hizmeti açık}other{# yazdırma hizmeti açık}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> veri uyarısı"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> veri limiti"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> veri uyarısı / <xliff:g id="ID_2">^2</xliff:g> veri sınırı"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Operatörünüzün veri kullanımı hesaplaması, cihazdaki hesaplamadan farklı olabilir"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Operatör ağları tarafından kullanılan verileri hariç tutar"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> kullanıldı"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Veri uyarısı oluştur"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Otomatik doldurma hizmeti"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Varsayılan otomatik doldurma hizmeti"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Şifreler"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Şifreler, geçiş anahtarları ve veri hizmetleri"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Şifreler, geçiş anahtarları ve veri hizmetleri"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Ek sağlayıcılar"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# şifre}other{# şifre}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"otomatik, doldurma, otomatik doldurma, şifre"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"otomatik, doldurma, otomatik doldurma, veriler, geçiş anahtarı, şifre"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Bu uygulamaya güvendiğinizden emin olun</b> <br/> <br/> <xliff:g id=app_name example=Google Otomatik Doldurma>%1$s</xliff:g> otomatik doldurulabilecek öğeleri belirlemek için ekranınızdaki bilgileri kullanır."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b><xliff:g id=app_name example=Provider>%1$s</xliff:g> kullanılsın mı?</b> <br/> <br/><xliff:g id=app_name example=Provider>%1$s</xliff:g> otomatik doldurulabilecek alanları belirlemek için ekranınızdaki bilgileri kullanır. Artık yeni şifreler, geçiş anahtarları ve diğer bilgiler buraya kaydedilecek."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Şifreler, geçiş anahtarları ve veri hizmetleri"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Şifreler, geçiş anahtarları ve veri hizmetleri"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s kapatılsın mı?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Bu hizmet kapatılsın mı?</b> <br/> <br/> Şifreler, geçiş anahtarları, ödeme yöntemleri gibi kayıtlı bilgiler ve diğer bilgiler oturum açtığınızda doldurulmaz. Kayıtlı bilgilerinizi kullanmak için bir şifre, geçiş anahtarı veya veri hizmeti seçin."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s kullanılsın mı?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s, nelerin otomatik olarak doldurulabileceğini belirlemek için ekranınızdan aldığı bilgiyi kullanır."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Şifre, geçiş anahtarı ve veri hizmetlerinin sayısı sınırı aştı"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Aynı anda en fazla 5 etkin şifre, geçiş anahtarı ve veri hizmetiniz olabilir. Başka hizmet eklemek için bir hizmeti devre dışı bırakın."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Şifre, geçiş anahtarı ve veri hizmetlerinin sayısı sınırı aştı"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Aynı anda en fazla 5 etkin şifre, geçiş anahtarı ve veri hizmetiniz olabilir. Başka hizmet eklemek için bir hizmeti devre dışı bırakın."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Kapat"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Otomatik doldur"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Günlük kaydı düzeyi"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Uyumlu medyadaki sesler daha yoğun gelir"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Kafa hareketi izleme"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ses, kulağa daha doğal gelmesi için kafanızı hareket ettirdikçe değişir"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Ses Cihazı Türü"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Bilinmiyor"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Hoparlör"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Kulaklık"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Araç Kiti"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Diğer"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ağ indirme hızı sınırı"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"İnternet bağlantısı sağlayan tüm ağlarda geçerli ağ bant genişliği indirme hızı sınırını yapılandırın."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Ağ indirme hızı sınırını yapılandır"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Orta"</string>
<string name="contrast_high" msgid="3988567609694797696">"Yüksek"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Bu uygulama yalnızca 1 pencerede açılabilir"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Hizmet açık"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Hizmet kapalı"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Kısayol kapalı"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Açık"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Kapalı"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Kapalı"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Kapalı"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Açık"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Kapalı"</string>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index a4f69f8..78efb3a 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Через 1 хвилину"</item>
<item msgid="1574040255478150028">"Через 5 хвилин"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Увімкніть адаптивну яскравість, щоб збільшити час роботи акумулятора"</item>
+ <item msgid="2256666063790193306">"Зменште час вимкнення екрана, щоб збільшити час роботи акумулятора"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 9a6985e..eafaeaa 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Не вказано"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Жіночий рід"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Чоловічий рід"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Вилучити вибрану мову?}one{Вилучити вибрані мови?}few{Вилучити вибрані мови?}many{Вилучити вибрані мови?}other{Вилучити вибрані мови?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Текст відображатиметься іншою мовою"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Не можна видалити всі мови"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Додано обличчя та годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Додано обличчя, відбиток пальця та годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Додано обличчя, відбитки пальців і годинник \"<xliff:g id="WATCH">%s</xliff:g>\""</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Налаштуйте свій годинник"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Розблокування годинником – ще один зручний спосіб розблоковувати цей телефон (наприклад, коли у вас мокрі руки чи пристрій не може розпізнати ваше обличчя).\n\nЗа допомогою годинника можна розблоковувати цей телефон, коли ви:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Не зараз"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Продовжити"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Більше"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Як це працює"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Годинник має бути розблокований, перебувати на вашому зап’ясті й у радіусі дії цього телефона. Вам не потрібно буде розблоковувати годинник ще раз, поки він на руці."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Коли цей телефон розблокується, ви отримаєте сповіщення на годиннику. Якщо це сталося випадково, натисніть сповіщення, щоб знову заблокувати телефон."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Повний контроль"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Ви будь-коли можете вимкнути функцію розблокування годинником у налаштуваннях"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Натисніть сповіщення"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Проведіть пальцем угору по заблокованому екрану"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Виберіть свій годинник"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Доступні годинники"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Скасувати"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Підтвердити"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Готово."</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Тепер за допомогою годинника ви можете розблоковувати цей телефон, провівши вгору по заблокованому екрану або торкнувшись сповіщення"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Готово"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Розблокування годинником"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Ви можете розблоковувати цей телефон за допомогою годинника, провівши вгору по заблокованому екрану або торкнувшись сповіщення"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Щоб використовувати розблокування годинником, він має бути розблокований, підключений до цього телефона, перебувати в радіусі дії і на вашому зап’ясті. Якщо підключення перерветься, вам потрібно буде розблокувати телефон, перш ніж скористатись розблокуванням годинником.\n\nВажливо.\nУ вас не може бути налаштовано кілька годинників одночасно. Щоб додати інший годинник, спершу вилучіть наявний."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Докладніше про розблокування годинником"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Додати годинник"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Вилучити годинник"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Розблокування відбитком пальця й фейс-контроль"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Фейс-контроль і відбиток пальця для роботи"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Потрібно налаштувати"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Також потрібно ввести цей ключ доступу на іншому пристрої."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Підтвердьте, щоб підключатися до набору узгоджених пристроїв"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Дозволити доступ до контактів та історії викликів"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Надати доступ також до контактів і історії викликів"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Інформація використовуватиметься для сповіщень про виклики тощо"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Не вдалося з’єднатися з пристроєм <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Доступні пристрої"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Цьому пристрою надається доступ до Wi‑Fi…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"З’єднання…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Поділитися точкою доступу"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Підтвердьте, що це ви"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Підтвердьте, що це ви"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Пароль Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Пароль точки доступу: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автоматичне підключення"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Ви знаходитеся поза зоною покриття мережі"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Видалити"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Змінити"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Помилка видалення мережі"</string>
<string name="wifi_save" msgid="2312643132472226807">"Зберегти"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Помилка збереження мережі"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Скасувати"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Якщо бажана частота недоступна, ваша точка доступу може використовувати іншу. Якщо ви зміните частоту, налаштування безпеки точки доступу також можуть змінитися."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Недоступно на частоті 6 ГГц"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Якщо ви зміните частоту точки доступу, налаштування безпеки також можуть змінитися."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Увімкнення точки доступу…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Вимкнення точки доступу…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Використання телефона як модема недоступне"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Забули пароль?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Забули ключ?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Забули PIN-код?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Щоб продовжити, введіть ключ пристрою"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Щоб продовжити, введіть PIN-код пристрою"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Щоб продовжити, введіть пароль пристрою"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Щоб продовжити, введіть ключ робочого профілю"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Щоб продовжити, намалюйте ключ"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Щоб продовжити, введіть PIN-код"</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">"Щоб продовжити, введіть PIN-код робочого профілю"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Щоб продовжити, введіть пароль робочого профілю"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"З міркувань безпеки введіть ключ пристрою"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Немає опису."</string>
<string name="settings_button" msgid="2195468788019730377">"Налаштування"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"світлова чутливість, фотофобія, темна тема, мігрень, головний біль, режим читання, нічна тема, зменшення яскравості, біла точка"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Просте використання, простий доступ, допомога, допоміжний"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"зір, слух, незрячий, глухий, моторика, координація рухів, допоміжний, допомога, простота використання, простий доступ, рука"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"збільшення вікна, масштаб, збільшення, поганий зір, масштабування, збільшити"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Підписи, субтитри, субтитрування, миттєва транскрипція, поганий слух, втрата слуху, системи CART, перетворення мовлення на текст, субтитр"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"контраст кольорів"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"моторика, миша"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"слуховий апарат, поганий слух, утрата слуху, кохлеарні імплантати, пристрої для підсилення звуку, звукові процесори"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"моторика, миша, зовнішня миша, миша-окуляри, адаптивна миша, інвалідний візок, джойстик"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"слуховий апарат, поганий слух, утрата слуху, кохлеарні імплантати, пристрої для підсилення звуку, звукові процесори, персональні вироби для підсилення звуку"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"проблеми зі слухом, втрата слуху, підписи, телетайп, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"три кнопки"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"координація рухів, моторика, літня людина, артрит, хронічне розтягнення сухожиль, інсульт, тремор, розсіяний склероз, дитячий церебральний параліч, тремтіння, рука"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"затримка, координація рухів, літня людина"</string>
<string name="print_settings" msgid="8519810615863882491">"Друк"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Вимкнено"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Увімкнено 1 сервіс друку}one{Увімкнено # сервіс друку}few{Увімкнено # сервіси друку}many{Увімкнено # сервісів друку}other{Увімкнено # сервісу друку}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Застереження, коли використано <xliff:g id="ID_1">^1</xliff:g> трафіку"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Обмеження обсягу даних – <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Застереження, коли використано <xliff:g id="ID_1">^1</xliff:g> трафіку / Обмеження трафіку: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Оператор може по-іншому вимірювати статистику використання трафіку"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Не включає дані, що використовуються в мережах операторів мобільного зв\'язку"</string>
<string name="data_used_template" msgid="8229342096562327646">"Використано <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Сповіщення щодо трафіку"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Автозаповнення"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Сервіс автозаповнення за умовчанням"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Паролі"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Сервіси керування паролями, ключами доступу й даними"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Сервіси керування паролями, ключами доступу й даними"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Інші постачальники"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# пароль}one{# пароль}few{# паролі}many{# паролів}other{# пароля}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"автоматичний, заповнення, автозаповнення, пароль"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"автоматично, заповнення, автозаповнення, дані, ключ доступу, пароль"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Переконайтеся, що додаток надійний</b> <br/> <br/> <xliff:g id=app_name example=Функція Автозаповнення Google>%1$s</xliff:g> використовує інформацію на екрані, щоб визначати поля для автозаповнення."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<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="2642776965060619988">"Сервіси керування паролями, ключами доступу й даними"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Сервіси керування паролями, ключами доступу й даними"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Вимкнути %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Вимкнути цей сервіс?</b> <br/> <br/> Збережена інформація, наприклад паролі, ключі доступу, способи оплати тощо, не буде підставлятись автоматично, коли ви ввійдете в обліковий запис. Щоб використовувати збережену інформацію, виберіть сервіс для паролів, ключів доступу або даних."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Використовувати %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s використовує інформацію на екрані, щоб визначати поля для автозаповнення."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Вибрано забагато сервісів керування паролями, ключами доступу й даними"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Одночасно можуть бути активними щонайбільше 5 сервісів керування паролями, ключами доступу й даними. Вимкніть один із сервісів, щоб додати інший."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Вибрано забагато сервісів керування паролями, ключами доступу й даними"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Одночасно можуть бути активними щонайбільше 5 сервісів керування паролями, ключами доступу й даними. Вимкніть один із сервісів, щоб додати інший."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Вимкнути"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Автозаповнення"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Рівень реєстрації"</string>
@@ -4674,6 +4710,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звук із сумісних носіїв стає реалістичнішим"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Відстеження рухів голови"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Коли ви рухаєте головою, звучання стає природнішим"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудіопристрою"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Невідомо"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Колонка"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Навушники"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Гарнітура для автомобіля"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Інше"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ліміт швидкості завантаження в мережі"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Налаштуйте ліміт вхідної пропускної спроможності мережі, який застосовуватиметься до всіх мереж, що забезпечують інтернет-з’єднання."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Налаштувати ліміт швидкості завантаження в мережі"</string>
@@ -4706,24 +4750,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Видалити додаток"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Додатки, установлені протягом останнього # місяця}one{Додатки, установлені протягом останнього # місяця}few{Додатки, установлені протягом останніх # місяців}many{Додатки, установлені протягом останніх # місяців}other{Додатки, установлені протягом останнього # місяця}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Додатки, установлені понад # місяць тому}one{Додатки, установлені понад # місяць тому}few{Додатки, установлені понад # місяці тому}many{Додатки, установлені понад # місяців тому}other{Додатки, установлені понад # місяця тому}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Формат"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Виберіть формат для перегляду цього додатка, якщо він не відповідає параметрам вашого пристрою (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Рекомендовані додатки"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Додатки з перевизначеним форматом"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Формат додатка за умовчанням"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"На весь екран"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"На половину екрана"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Формат пристрою"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Якщо змінити формат, додаток перезапуститься. Ви можете втратити незбережені зміни."</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сканер відбитків пальців"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Сповіщення зі спалахом"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Про сповіщення зі спалахом"</string>
@@ -4758,10 +4796,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Середній"</string>
<string name="contrast_high" msgid="3988567609694797696">"Високий"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Цей додаток можна відкрити лише в одному вікні"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Сервіс увімкнено"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Сервіс вимкнено"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Швидку команду вимкнено"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Увімкнено"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Вимкнено"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Вимкнено"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Вимкнено"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Увімкнено"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Вимкнено"</string>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index d469c60..1915740 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 منٹ کے بعد"</item>
<item msgid="1574040255478150028">"5 منٹ کے بعد"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"بیٹری لائف کو بڑھانے کے لیے تغیر پذیر چمک کو آن کریں"</item>
+ <item msgid="2256666063790193306">"بیٹری لائف کو بڑھانے کے لیے اسکرین ٹائم آؤٹ کو کم کریں"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index cccd9fe..babab02 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"متعین نہیں ہے"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"مؤنث"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"مذکر"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{منتخب کردہ زبان ہٹائیں؟}other{منتخب کردہ زبانوں کو ہٹائیں؟}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"متن ایک دوسری زبان میں ڈسپلے کیا جائے گا۔"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"ساری زبانیں نہیں ہٹا سکتا"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"چہرہ اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"چہرہ، فنگر پرنٹ اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"چہرہ، فنگر پرنٹس اور <xliff:g id="WATCH">%s</xliff:g> شامل کیے گئے"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"اپنی گھڑی سیٹ اپ کریں"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"واچ اَن لاک اس فون کو غیر مقفل کرنے کا ایک اور آسان طریقہ ہے، مثال کے طور پر، جب آپ کی انگلیاں گیلی ہوں یا چہرے کی شناخت نہ ہو پا رہی ہو۔\n\nآپ اس فون کو غیر مقفل کرنے کے لیے اپنی گھڑی استعمال کر سکتے ہیں جب آپ:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"ابھی نہیں"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"جاری رکھیں"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"مزید"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"اس کے کام کرنے کا طریقہ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"آپ کی گھڑی غیر مقفل، آپ کی کلائی پر اور اس فون کے قریب ہونی چاہیے۔ آپ کی گھڑی کے آپ کی کلائی پر ہونے پر آپ کو اسے دوبارہ غیر مقفل کرنے کی ضرورت نہیں ہوگی۔"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"اس فون کے غیر مقفل ہونے پر، آپ کو اپنی گھڑی پر مطلع کیا جائے گا۔ اگر یہ آپ کے نہ چاہنے پر بھی غیر مقفل تھا تو فون کو دوبارہ مقفل کرنے کے لیے اطلاع پر تھپتھپائیں۔"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"یہ سب آپ کے زیر کنٹرول ہے"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"آپ ترتیبات میں کسی بھی وقت واچ اَن لاک سے اپنی گھڑی کو ہٹا سکتے ہیں"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"اطلاع پر تھپتھپائیں"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"لاک اسکرین پر اوپر سوائپ کریں"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"اپنی گھڑی منتخب کریں"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"دستیاب گھڑیاں"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"منسوخ کریں"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"توثیق کریں"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"آپ پوری طرح سے تیار ہیں!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"جب آپ مقفل اسکرین پر اوپر سوائپ کرتے ہیں یا کسی اطلاع کو تھپتھپاتے ہیں تو اب آپ اس فون کو غیر مقفل کرنے کے لیے اپنی گھڑی کا استعمال کر سکتے ہیں"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"ہو گیا"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"واچ اَن لاک"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"جب آپ مقفل اسکرین پر اوپر سوائپ کرتے ہیں یا کسی اطلاع کو تھپتھپاتے ہیں تو آپ اس فون کو غیر مقفل کرنے کے لیے اپنی گھڑی کا استعمال کر سکتے ہیں"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"واچ اَن لاک استعمال کرنے کے لیے، آپ کی گھڑی غیر مقفل، آپ کی کلائی پر، اس فون سے قریب اور اس سے منسلک ہونی چاہیے۔ اگر کنکشن میں خلل پڑتا ہے تو آپ کو واچ اَن لاک استعمال کرنے سے پہلے فون کو غیر مقفل کرنا ہوگا۔\n\nذہن میں رکھیں:\nآپ ایک وقت میں صرف ایک گھڑی سیٹ اپ کر سکتے ہیں۔ دوسری گھڑی شامل کرنے کے لیے، پہلے موجودہ گھڑی کو ہٹائیں۔"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"واچ اَن لاک کے بارے میں مزید جانیں"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"گھڑی شامل کریں"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"گھڑی ہٹائیں"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"فنگر پرنٹ اور فیس انلاک"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"کام کے لیے فیس اور فنگر پرنٹ اَن لاک"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"سیٹ اپ درکار ہے"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"آپ کو دیگر آلہ پر بھی اس پاس کلید کو ٹائپ کرنے کی ضرورت ہو سکتی ہے۔"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"مربوط سیٹ کے ساتھ جوڑا بنانے کی تصدیق کریں"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"اپنے رابطوں اور کال کی سرگزشت تک رسائی کی اجازت دیں"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"رابطوں اور کال کی سرگزشت تک رسائی کی بھی اجازت دیں"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"معلومات کو کال کے اعلانات اور مزید کے لیے استعمال کیا جائے گا"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> سے مربوط نہیں ہو سکا۔"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"دستیاب آلات"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"اس آلہ کے ساتھ Wi‑Fi کا اشتراک کیا جا رہا ہے…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"منسلک ہو رہا ہے…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ہاٹ اسپاٹ کا اشتراک کریں"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"یہ آپ ہی ہیں اس بات کی تصدیق کریں"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"توثیق کریں کہ یہ آپ ہیں"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi کا پاس ورڈ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ہاٹ اسپاٹ کا پاس ورڈ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"خود کار طور پر منسلک کریں"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"نیٹ ورک رینج میں نہیں ہے"</string>
<string name="wifi_forget" msgid="3485573280364015620">"بھول جائیں"</string>
<string name="wifi_modify" msgid="5127926476383659412">"ترمیم کریں"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"نیٹ ورک کو بھولنے میں ناکام ہوگیا"</string>
<string name="wifi_save" msgid="2312643132472226807">"محفوظ کریں"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"نیٹ ورک محفوظ کرنے میں ناکام ہوگیا"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"منسوخ کریں"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"اگر آپ کی ترجیحی فریکوئنسی دستیاب نہیں ہے تو ہاٹ اسپاٹ مختلف فریکوئنسی استعمال کر سکتا ہے اگر آپ فریکوئنسی تبدیل کرتے ہیں تو ہاٹ اسپاٹ سیکیورٹی کی ترتیبات تبدیل ہو سکتی ہیں۔"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz کے ساتھ دستیاب نہیں ہے"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"اگر آپ ہاٹ اسپاٹ کی فریکوئنسی تبدیل کرتے ہیں تو سیکیورٹی کی ترتیبات تبدیل ہو سکتی ہیں"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"ہاٹ اسپاٹ آن ہو رہا ہے…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"ہاٹ اسپاٹ آف ہو رہا ہے…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"ٹیدرنگ دستیاب نہیں ہے"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"اپنا پاس ورڈ بھول گئے؟"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"اپنا پیٹرن بھول گئے؟"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"اپنا PIN بھول گئے؟"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"جاری رکھنے کیلئے اپنے آلہ کا پیٹرن استعمال کریں"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"جاری رکھنے کیلئے اپنے آلہ کا PIN درج کریں"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"جاری رکھنے کیلئے اپنے آلہ کا پاس ورڈ درج کریں"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"جاری رکھنے کیلئے اپنا دفتری پیٹرن استعمال کریں"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"جاری رکھنے کے لیے اپنا پیٹرن ڈرا کریں"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"جاری رکھنے کیلئے اپنا PIN درج کریں"</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">"جاری رکھنے کیلئے اپنا دفتری PIN درج کریں"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"جاری رکھنے کیلئے اپنا دفتری پاس ورڈ درج کریں"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"اضافی سیکیورٹی کیلئے اپنے آلہ کا پیٹرن استعمال کریں"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"کوئی تفصیل فراہم نہيں کی گئی۔"</string>
<string name="settings_button" msgid="2195468788019730377">"ترتیبات"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"لائٹ کی حساسیت، فوٹو فوبیا، گہری تھیم، آدھے سر کا درد، پڑھنے کا موڈ، نائٹ موڈ، چمک کو کم کریں، سفید پوائنٹ"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"استعمال میں آسان، رسائی حاصل کرنے میں آسان، معاون، مددگار"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"بصارت، سماعت، اندھا، بہرا، موٹر، مہارت، معاون، مدد، استعمال میں آسانی، رسائی میں آسانی، ہاتھ، مدد"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"ونڈو میگنیفائر، زوم، میگنیفکیشن، کم وژن، بڑا کرنا، سائز بڑھانا"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"کیپشنز، سب ٹائٹلز، سب ٹائٹلز، لائیو ٹرانسکرائب، اونچا سننے والا، سننے میں دشواری، کارٹ، اسپیچ ٹو ٹیکسٹ، ذیلی عنوان"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"رنگ کنٹراسٹ"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"اعصاب کی حرکی سرگرمی سے متعلق مہارتیں، ماؤس"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"سماعتی آلات، اونچا سننے والا، سننے میں دشواری، کوکلیئر امپلانٹس، ایمپلیفیکیشن آلات، ساؤنڈ پروسیسرز"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"موٹر، ماؤس، بیرونی ماؤس، ہیڈ ماؤس، اڈاپٹیو ماؤس، وہیل چیئر، جوائے اسٹک"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"سماعتی آلات، اونچا سننے والا، سننے میں دشواری، کوکلیئر امپلانٹس، ایمپلیفیکیشن آلات، ساؤنڈ پروسیسرز، PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"اونچا سننے والا، سننے میں دشواری، کیپشنز، ٹیلی ٹائپ، ٹیلی ٹائپ رائٹر"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"تین بٹنز"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"مہارت، موٹر، سینئر، وجمع المفاصل، آر ایس آئی، اسٹروک، رَعشہ، مضاعفِ تصلب، دماغی فالج، ارتعاش، بار بار اعصاب کی کھچھاؤ، ہاتھ"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"تاخیر، مہارت، سینئر"</string>
<string name="print_settings" msgid="8519810615863882491">"پرنٹنگ"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"آف"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 پرنٹ سروس آن ہے}other{# پرنٹ سروسز آن ہیں}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> ڈیٹا وارننگ"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> ڈیٹا کی حد"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> ڈیٹا وارننگ / <xliff:g id="ID_2">^2</xliff:g> ڈیٹا کی حد"</string>
- <string name="operator_warning" msgid="5672761970087591211">"کیریئر ڈیٹا کا حساب آپ کے آلہ کے حساب سے مختلف ہو سکتا ہے"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"کیریئر نیٹ ورکس کے ذریعے استعمال کردہ ڈیٹا شامل نہیں ہے"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> استعمال ہوا"</string>
<string name="set_data_warning" msgid="1685771882794205462">"ڈیٹا وارننگ سیٹ کریں"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"آٹو فل سروس"</string>
<string name="default_autofill_app" msgid="372234803718251606">"ڈیفالٹ آٹو فِل سروس"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"پاس ورڈز"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز"</string>
<string name="credman_credentials" msgid="4931371941253324143">"اضافی فراہم کنندگان"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# پاس ورڈ}other{# پاس ورڈز}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"خودکار، فل، آٹو فل، پاس ورڈ"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"آٹو، فل، آٹو فل، ڈیٹا، پاس کی، پاس ورڈ"</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="4951846866327737417">"<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="2642776965060619988">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s کو آف کریں؟"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>یہ سروس آف کریں؟</b> <br/> <br/> پاس ورڈز، پاس کیز، ادائیگی کے طریقوں جیسی معلومات محفوظ کی گئی ہے اور دیگر معلومات آپ کے سائن ان کرنے پر پُر نہیں ہوں گی۔ اپنی محفوظ کردہ معلومات کا استعمال کرنے کے لیے، پاس ورڈ، پاس کی یا ڈیٹا سروس کا انتخاب کریں۔"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s کا استعمال کرنا ہے؟"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s آپ کی اسکرین پر موجود چیزوں کا استعمال یہ تعین کرنے کے لیے کرتا ہے کہ کیا آٹو فل کیا جا سکتا ہے۔"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز کی حد"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"آپ ایک وقت میں 5 پاس ورڈز، پاس کیز اور ڈیٹا سروسز فعال رکھ سکتے ہیں۔ مزید شامل کرنے کے لیے سروس کو آف کریں۔"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"پاس ورڈز، پاس کیز اور ڈیٹا سروسز کی حد"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"آپ ایک وقت میں 5 پاس ورڈز، پاس کیز اور ڈیٹا سروسز فعال رکھ سکتے ہیں۔ مزید شامل کرنے کے لیے سروس کو آف کریں۔"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"آف کریں"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"آٹو فل"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"لاگنگ کی سطح"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"موافق میڈیا سے آڈیو کا مزید دلچسپ تجربہ فراہم ہوتا ہے"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"سر کی ٹریکنگ"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"خود کو زیادہ فطری دکھانے کے لیے اپنے سر کو حرکت دیتے ہی آڈیو تبدیل ہو جاتی ہے"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"آڈیو آلہ کی قسم"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"نامعلوم"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"اسپیکر"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ہیڈ فونز"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"کار کٹ"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"دیگر"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"نیٹ ورک ڈاؤن لوڈ کرنے کی شرح کی حد"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"نیٹ ورک بینڈ وڈتھ انگریس کی شرح کی حد کو کنفیگر کریں جو انٹرنیٹ کنیکٹویٹی فراہم کرنے والے تمام نیٹ ورکس پر لاگو ہوتی ہے۔"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"نیٹ ورک ڈاؤن لوڈ کرنے کی شرح کی حد کو کنفیگر کریں"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"متوسط"</string>
<string name="contrast_high" msgid="3988567609694797696">"زیادہ"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"یہ ایپ صرف 1 ونڈو میں کھولی جا سکتی ہے"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"سروس آن ہے"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"سروس آف ہے"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"شارٹ کٹ آف ہے"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"آن ہے"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"آف ہے"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"آف ہے"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"آف ہے"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"آن ہے"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"آف ہے"</string>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 1038caa..4d9ee1d 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 daqiqadan keyin"</item>
<item msgid="1574040255478150028">"5 daqiqadan keyin"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Batareya quvvatini tejash uchun moslashuvchan yorqinlik yoqildi"</item>
+ <item msgid="2256666063790193306">"Batareya quvvatini tejash uchun ekranning kutish vaqti kamaytirildi"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 87424ae..c629dd2 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Koʻrsatilmagan"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Ayollar uchun"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Erkaklar uchun"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Tanlangan til olib tashlansinmi?}other{Tanlangan tillar olib tashlansinmi?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Matnlar keyin boshqa tilda chiqadi."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Barcha tillarni o‘chirib tashlash mumkin emas"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Yuz va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Yuz, barmoq izi va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Yuz, barmoq izlari va <xliff:g id="WATCH">%s</xliff:g> qoʻshildi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Soatingizni sozlang"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Barmoqlar hoʻl boʻlsa yoki yuzingizni tanimasa, soat bilan ochish funksiyasi telefonni qulfdan chiqarishning yana bir qulay usuli hisoblanadi.\n\nBu telefonni quyidagi hollarda soat bilan qulfdan chiqarish mumkin:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Hozir emas"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Davom etish"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Yana"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Ishlash tartibi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Soat qulflanmagan, bilagingizda va bu telefonga yaqin joyda tursin. Soat bilakda turganida yana qulfdan chiqarish shart emas."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Bu telefon qulfdan chiqarilganda soatga bildirishnoma keladi. Agar istamaganingizda qulfdan chiqarilsa, telefonni qayta qulflash uchun bildirishnomaga teging."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Boshqaruv oʻz qoʻlingizda"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Soatni istalgan vaqt Sozlamalar orqali Soat bilan ochish funksiyasidan olib tashlash mumkin"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Bildirishnomaga tegining"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Qulflangan ekranda tepaga suring"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Soatingizni tanlang"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Mavjud soatlar"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Bekor qilish"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"OK"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Hammasi tayyor!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Endi bloklangan ekranda tepaga surib yoki bildirishnomaga teginib, bu telefonni soat orqali qulfdan chiqarish mumkin"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Tayyor"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"[qurilma qulfini] soat bilan ochish"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Bloklangan ekranda tepaga surib yoki bildirishnomaga tegib, bu telefonni soat orqali qulfdan chiqarish mumkin"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Soat bilan ochish uchun soat qulfdan chiqarilgan, bilagingizda, yaqin joyda va bu telefonga ulangan boʻlishi kerak. Agar aloqa uzilsa, soat bilan ochishdan oldin telefonni qulfdan chiqarish kerak.\n\nYodda tuting:\nBir vaqtning oʻzida faqat bitta soatni sozlash mumkin. Boshqa soat qoʻshish uchun hozirgisini olib tashlang."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Soat bilan ochish haqida batafsil"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Soat kiritish"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Soatni olib tashlash"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Barmoq izi va yuz bilan ochish"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ish uchun Yuz va Barmoq izi bilan ochish"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Sozlash talab etiladi"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Shuningdek, bu kirish kalitini ikkinchi qurilmada kiritishingiz talab qilinishi mumkin."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Sozlangan toʻplamga ulanishni tasdiqlang"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Kontakt va chaqiruvlar tarixiga ruxsat berish"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Shuningdek, kontaktlar va chaqiruvlar tarixiga kirish uchun ruxsat bering"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Maʼlumotlar chaqiruvlar haqida xabar berish uchun ishlatiladi"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ga o‘zaro bog‘lanmadi."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Mavjud qurilmalar"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi bu qurilma bilan ulashilmoqda…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Ulanmoqda…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspotni ulashish"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Oʻzingiz ekanligingizni tasdiqlang"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Bu siz ekaningizni isbotlang"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi paroli: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot paroli: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Avtoulanish"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Tarmoq xizmat doirasidan tashqarida"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Olib tashlash"</string>
<string name="wifi_modify" msgid="5127926476383659412">"O‘zgartirish"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Tarmoqni unutmadi"</string>
<string name="wifi_save" msgid="2312643132472226807">"Saqlash"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Tarmoqni saqlamadi"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Bekor qilish"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Afzal chastota mavjud boʻlmasa, hotspot boshqa boshasidan foydalanishi mumkin. Chastotani oʻzgartirsangiz, hotspot boshqa xavfsizlik sozlamalarini tanlashi mumkin."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"6 GHz bilan ishlamaydi"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Hotspot chastotani oʻzgartirsangiz, xavfsizlik sozlamalari ham oʻzgarishi mumkin."</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Ulanish nuqtasi yoqilmoqda…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Ulanish nuqtasi o‘chirilmoqda…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Modem rejimi ishlamaydi"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Parolni unutdingizmi?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Chizmali kalitni unutdingizmi?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN kodni unutdingizmi?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Davom etish uchun grafik kalitni chizing"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Davom etish uchun qurilmangiz PIN kodini kiriting"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Davom etish uchun qurilmangiz parolini kiriting"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Davom etish uchun ishchi profilingiz grafik kalitini kiriting"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Davom etish uchun grafik kalitni kiriting"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Davom etish uchun PIN kodni kiriting"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Davom etish uchun parolni kiriting"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Davom etish uchun ishxona grafik kalitini kiriting"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Davom etish uchun ish profilingiz PIN kodini kiriting"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Davom etish uchun ishchi profilingiz parolini kiriting"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Grafik kalitni kiriting"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Hech qanday tavsif berilmagan."</string>
<string name="settings_button" msgid="2195468788019730377">"Sozlamalar"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"yorugʻlikka taʼsirchanlik, fotofobiya, tungi mavzu, migren, bosh ogʻrigʻi, oʻqish rejimi, tungi rejim, xiralashtirish, oq nuqta"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Foydalanish oson, ochish oson, yordam beradi, foydali"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"koʻrish, eshitish, koʻr, kar, motorika, tezkorlik, yordamchi, yordam, foydalanish oson, ochish oson, dastak, yordam"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Oyna lupasi, zum, kattalashtirish, zaif koʻrish, kattalashtirish, katta qilish"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Taglavhalar, yopiq taglavhalar, CC, Jonli transkripsiya, nuqsonli eshitish, karlik, CART, nutq sintezatori, taglavha"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"rang kontrasti"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"motor, sichqoncha"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"eshitish apparatlari, nuqsonli eshitish, karlik, koxlear implantlar, ovoz kuchaytiruvchi qurilmalar va tovush protsessorlari"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"motorika, sichqoncha, tashqi sichqoncha, bosh uchun sichqoncha, moslashuvchan sichqoncha, nogironlar aravachasi, joystik"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"eshitish apparatlari, nuqsonli eshitish, karlik, koxlear implantlar, ovoz kuchaytiruvchi qurilmalar va tovush protsessorlari, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"nuqsonli eshitish, karlik, taglavhalar, teletayp, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"uchta tugma"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"tezkorlik, motorika, keksalar, artrit, rsi, insult, tremor, surunkali skleroz, bolalar falaji, qaltirash, qayta shikastlanish, dastak"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"kechikish, tezkorlik, keksalar"</string>
<string name="print_settings" msgid="8519810615863882491">"Chop etish"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Oʻchiq"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 ta chop etish xizmati yoniq}other{# ta chop etish xizmati yoniq}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Trafik sarfiga oid ogohlantirish: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Trafik limiti: <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Trafik sarfiga oid ogohlantirish: <xliff:g id="ID_1">^1</xliff:g> / trafik limiti: <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Aloqa operatorining hisob-kitobi qurilmanikidan farq qilishi mumkin"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Aloqa operatori orqali uzatilgan trafik kiritilmagan"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> sarflandi"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Trafik sarfiga oid ogohlantirish"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Avtomatik kiritish"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Birlamchi avtomatik kiritish xizmati"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Parollar"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Parollar, kirish kalitlari va maʼlumotlar uchun xizmatlar"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Parollar, kalitlar va maʼlumot xizmatlari"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Qoʻshimcha taʼminotchilar"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# ta parol}other{# ta parol}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"avto, toʻldirish, avtotoʻldirish, parol"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"avtomatik, kiritish, avtomatik kiritish, maʼlumotlar, kalit, parol"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Bu ilova ishonchli ekanini tekshiring</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> ekraningizda nimani avtomatik kiritish kerakligini aniqlaydi."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b><xliff:g id=app_name example=Provider>%1$s</xliff:g> ishlatilsinmi?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g> ekrandagi avtomatik kiritish mumkin axborotlarni aniqlaydi. Endi yangi parollar, kalitlar va boshqa maʼlumotlar saqlanadi."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Parollar, kirish kalitlari va maʼlumotlar uchun xizmatlar"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Parollar, kalitlar va maʼlumot xizmatlari"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"%1$s faolsizlantirilsinmi?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Bu xizmat faolsizlantirilsinmi?</b> <br/> <br/> Hisobga kirganingizda saqlangan parollar, kalitlar, toʻlov usullari va boshqa maʼlumotlar avtomatik kiritilmaydi. Saqlangan axborotdan foydalanish uchun parol, kalit yoki axborot xizmatini tanlang."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"%1$s ishlatilsinmi?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s ekraningizda nimani avtomatik kiritish kerakligini aniqlaydi."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Parollar, kalitlar va maʼlumotlarni saqlash uchun xizmatlar soni cheklangan"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Bir vaqtda parollar, kalitlar va maʼlumotlarni saqlash uchun 5 tadan ortiq xizmat faol boʻlishi mumkin emas. Yangi xizmat qoʻshish uchun birortasini oʻchiring."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Parollar, kodlar va maʼlumotlarni saqlash boʻyicha xizmatlar soni cheklangan"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Bir vaqtda parollar, kodlar va maʼlumotlarni saqlash uchun 5 tadan ortiq xizmat faol boʻlishi mumkin emas. Yangi xizmat qoʻshish uchun birortasini oʻchiring."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Faolsizlantirish"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Avtomatik kiritish"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Jurnal yuritish darajasi"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Mos mediadan olingan audio yanada qiziqarli chiqadi"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Boshni kuzatish"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ovoz tabiiyroq chiqishi uchun boshingizni harakatlantirganda oʻzgaradi"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio qurilma turi"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Noaniq"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Karnay"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Quloqliklar"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Avto-toʻplam"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Boshqa"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Tarmoq uchun yuklab olish tezligi limiti"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Tarmoq uchun kiruvchi tezlik limitini internet aloqasini taʼminlovchi barcha tarmoqlar uchun belgilash mumkin."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Tarmoq uchun yuklab olish tezligi limitini sozlash"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Oʻrtacha"</string>
<string name="contrast_high" msgid="3988567609694797696">"Yuqori"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Bu ilovani faqat 1 ta oynada ochish mumkin"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Xizmat yoniq"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Xizmat oʻchiq"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Tugmalar birikmasi oʻchiq"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Yoniq"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Oʻchiq"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Oʻchiq"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Oʻchiq"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Yoniq"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Oʻchiq"</string>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index afbf7b3..c6991ad 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Sau 1 phút"</item>
<item msgid="1574040255478150028">"Sau 5 phút"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Bật tính năng độ sáng thích ứng để kéo dài thời lượng pin"</item>
+ <item msgid="2256666063790193306">"Giảm thời gian chờ khoá màn hình để kéo dài thời lượng pin"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 094770a..6a873c7 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Chưa chỉ định"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Nữ giới"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Nam giới"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Xoá ngôn ngữ đã chọn?}other{Xoá các ngôn ngữ đã chọn?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Văn bản sẽ hiển thị bằng ngôn ngữ khác."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Không thể xóa tất cả ngôn ngữ"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Đã thêm khuôn mặt và <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Đã thêm khuôn mặt, vân tay và <xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Đã thêm khuôn mặt, vân tay và <xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Thiết lập đồng hồ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Mở khoá bằng đồng hồ là một tính năng tiện lợi giúp bạn mở khoá điện thoại khi tay bạn dính nước hoặc khi điện thoại không nhận dạng được khuôn mặt của bạn.\n\nBạn có thể dùng đồng hồ của mình để mở khoá điện thoại bằng cách:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Để sau"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Tiếp tục"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Xem thêm"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Cách thức hoạt động"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Bạn phải mở khoá đồng hồ, đeo đồng hồ trên tay và để trong phạm vi của điện thoại này. Khi đeo đồng hồ trên tay, bạn không cần phải mở khoá đồng hồ thêm lần nữa."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Khi điện thoại mở khoá, bạn sẽ nhận được thông báo trên đồng hồ. Nếu điện thoại được mở khoá khi bạn không định làm vậy, hãy nhấn vào thông báo để khoá điện thoại lại."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Bạn nắm quyền kiểm soát"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Lúc nào bạn cũng có thể mở phần Cài đặt để xoá đồng hồ của mình khỏi tính năng Mở khoá bằng đồng hồ"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Nhấn vào thông báo"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Vuốt màn hình khoá từ dưới lên"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Chọn đồng hồ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Những đồng hồ hỗ trợ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Huỷ"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Xác nhận"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Bạn đã hoàn tất!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Giờ đây, bạn có thể dùng đồng hồ của mình để mở khoá điện thoại này bằng cách vuốt màn hình khoá từ dưới lên hoặc nhấn vào thông báo"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Xong"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Mở khoá bằng đồng hồ"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Bạn có thể dùng đồng hồ của mình để mở khoá điện thoại bằng cách vuốt màn hình khoá từ dưới lên hoặc nhấn vào một thông báo"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Để sử dụng tính năng Mở khoá bằng đồng hồ, đồng hồ của bạn phải được mở khoá, đeo trên tay, nằm trong phạm vi của điện thoại và được kết nối với điện thoại. Nếu kết nối bị gián đoạn, bạn sẽ phải mở khoá điện thoại trước khi sử dụng tính năng Mở khoá bằng đồng hồ.\n\nLưu ý:\nMỗi lần, bạn chỉ có thể thiết lập một đồng hồ. Nếu muốn thêm đồng hồ khác thì trước tiên, bạn phải xoá đồng hồ hiện tại."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Tìm hiểu thêm về tính năng Mở khoá bằng đồng hồ"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Thêm đồng hồ"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Xoá đồng hồ"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Mở khoá bằng vân tay và Mở khoá bằng khuôn mặt"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Mở khoá bằng khuôn mặt và vân tay cho công việc"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Cần thiết lập"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Bạn cũng có thể cần nhập mã xác nhận này trên thiết bị khác."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Xác nhận ghép nối với bộ thiết bị"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Cho phép truy cập vào danh bạ và nhật ký cuộc gọi của bạn"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Cho phép truy cập cả danh bạ và nhật ký cuộc gọi"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Thông tin sẽ được sử dụng cho tính năng thông báo cuộc gọi và nhiều tính năng khác"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Không thể kết nối với <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Thiết bị có sẵn"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Chia sẻ Wi‑Fi với thiết bị này…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Đang kết nối…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Chia sẻ điểm phát sóng"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Xác minh rằng đó là bạn"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Xác minh danh tính của bạn"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Mật khẩu Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Mật khẩu điểm phát sóng: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Tự động kết nối"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Đang nằm ngoài vùng phủ sóng của mạng"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Xóa"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Sửa đổi"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Không thể xóa mạng"</string>
<string name="wifi_save" msgid="2312643132472226807">"Lưu"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Không thể lưu mạng"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Hủy"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Nếu bạn không chọn tần số ưu tiên, thì có thể điểm phát sóng của bạn sử dụng một tần số khác. Nếu bạn thay đổi tần số, thì có thể chế độ cài đặt bảo mật của điểm phát sóng đó sẽ thay đổi."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Không dùng được với 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Các chế độ cài đặt bảo mật có thể thay đổi nếu bạn thay đổi tần số của điểm phát sóng"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Đang bật điểm phát sóng…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Đang tắt điểm phát sóng…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Không dùng được tính năng chia sẻ Internet"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Bạn quên mật khẩu?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Bạn quên hình mở khóa?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Bạn quên mã PIN?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Sử dụng hình mở khóa thiết bị của bạn để tiếp tục"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Nhập mã PIN thiết bị của bạn để tiếp tục"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Nhập mật khẩu thiết bị của bạn để tiếp tục"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Sử dụng hình mở khóa công việc của bạn để tiếp tục"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Hãy vẽ hình mở khoá để tiếp tục"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Hãy nhập mã PIN để tiếp tục"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Hãy nhập mật khẩu để tiếp tục"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Hãy vẽ hình mở khoá cho hồ sơ công việc của bạn để tiếp tục"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Nhập mã PIN công việc của bạn để tiếp tục"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Nhập mật khẩu công việc của bạn để tiếp tục"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Để tăng cường bảo mật, hãy sử dụng hình mở khóa thiết bị của bạn"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Không có mô tả nào được cung cấp."</string>
<string name="settings_button" msgid="2195468788019730377">"Cài đặt"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"nhạy cảm với ánh sáng, chứng sợ ánh sáng, giao diện tối, chứng đau nửa đầu, chứng nhức đầu, chế độ đọc, chế độ ban đêm, giảm độ sáng, điểm trắng"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Dễ sử dụng, dễ truy cập, trợ giúp, hỗ trợ"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"thị giác, thính giác, khiếm thị, khiếm thính, vận động, khéo léo, hỗ trợ, trợ giúp, dễ sử dụng, dễ tiếp cận, tay, giúp đỡ"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Phóng to cửa sổ, Thu phóng, Phóng to, Thị lực kém, Tăng kích cỡ, làm cho lớn hơn"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Phụ đề, phụ đề chi tiết, CC, Chép lời trực tiếp, nặng tai, suy giảm thính lực, chép lời theo thời gian thực bằng máy tính (CART), chuyển lời nói thành văn bản"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"độ tương phản màu"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"vận động, chuột"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"thiết bị trợ thính, người có thính giác kém, suy giảm thính lực, ốc tai điện tử, thiết bị tăng âm, bộ xử lý âm thanh"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"vận động, chuột, chuột gắn ngoài, chuột gắn đầu, chuột thích ứng, xe lăn, cần điều khiển"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"thiết bị trợ thính, người có thính giác kém, suy giảm thính lực, ốc tai điện tử, thiết bị tăng âm, bộ xử lý âm thanh, trung tâm nhận cuộc gọi cứu hộ công cộng"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"nặng tai, suy giảm thính lực, phụ đề, Máy chữ điện báo, máy điện báo đánh chữ, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"ba nút"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"khéo léo, vận động, người cao tuổi, viêm khớp, RSI, đột quỵ, run rẩy, bệnh đa xơ cứng, bại não, run, chấn thương do căng cơ lặp đi lặp lại, tay"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"chậm trễ, khéo léo, người cao tuổi"</string>
<string name="print_settings" msgid="8519810615863882491">"In"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Tắt"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 dịch vụ in đang bật}other{# dịch vụ in đang bật}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"Cảnh báo dữ liệu khi dùng đến <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"Hạn mức dữ liệu <xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"Cảnh báo dữ liệu khi dùng đến <xliff:g id="ID_1">^1</xliff:g>/Hạn mức dữ liệu là <xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Cách tính dữ liệu của nhà mạng có thể khác với thiết bị của bạn."</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Không bao gồm dữ liệu do các nhà mạng sử dụng"</string>
<string name="data_used_template" msgid="8229342096562327646">"Đã dùng <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Đặt cảnh báo dữ liệu"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Dịch vụ tự động điền"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Dịch vụ tự động điền mặc định"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Mật khẩu"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Các nhà cung cấp khác"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# mật khẩu}other{# mật khẩu}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"tự động, điền, tự động điền, mật khẩu"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"tự động, điền, tự động điền, dữ liệu, khoá truy cập, mật khẩu"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Hãy đảm bảo bạn tin tưởng ứng dụng này</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> sử dụng thông tin trên màn hình để xác định nội dung nào có thể được tự động điền."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Sử dụng <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> dùng thông tin trên màn hình của bạn để xác định thông tin nào có thể tự động điền. Từ nay, khoá truy cập, mật khẩu mới và thông tin khác sẽ được lưu tại đây."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Tắt %1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Tắt dịch vụ này?</b> <br/> <br/> Thông tin đã lưu (ví dụ: mật khẩu, khoá truy cập, phương thức thanh toán) và thông tin khác sẽ không được điền khi bạn đăng nhập. Để sử dụng thông tin mà bạn đã lưu, hãy chọn một mật khẩu, khoá truy cập hoặc dịch vụ dữ liệu."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Sử dụng %1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s sử dụng nội dung trên màn hình của bạn để xác định thông tin có thể được tự động điền."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Giới hạn dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Bạn có thể đặt tối đa 5 dịch vụ dữ liệu, khoá truy cập và mật khẩu cùng lúc. Hãy tắt một dịch vụ nếu muốn thêm một dịch vụ khác."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Giới hạn về dịch vụ dữ liệu, khoá truy cập và mật khẩu"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Bạn có thể chọn tối đa 5 dịch vụ dữ liệu, khoá truy cập và mật khẩu cùng lúc. Hãy tắt một dịch vụ nếu muốn thêm một dịch vụ khác."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Tắt"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Tự động điền"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Mức ghi nhật ký"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Âm thanh của nội dung nghe nhìn tương thích sẽ trở nên sống động hơn"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Theo dõi chuyển động của đầu"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Âm thanh sẽ thay đổi khi bạn di chuyển đầu nhằm mang lại trải nghiệm nghe tự nhiên hơn"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Loại thiết bị âm thanh"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Không xác định"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Loa"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Tai nghe"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Bộ công cụ dành cho ô tô"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Khác"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Giới hạn tốc độ tải xuống của mạng"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Định cấu hình giới hạn tốc độ truy cập băng thông mạng để áp dụng cho tất cả các mạng cung cấp khả năng kết nối Internet."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Định cấu hình giới hạn tốc độ tải xuống của mạng"</string>
@@ -4704,24 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Gỡ cài đặt ứng dụng"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Ứng dụng được cài đặt trong vòng # tháng gần đây}other{Ứng dụng được cài đặt trong vòng # tháng gần đây}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Ứng dụng được cài đặt từ hơn # tháng trước}other{Ứng dụng được cài đặt từ hơn # tháng trước}}"</string>
- <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
- <skip />
- <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
- <skip />
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"Tỷ lệ khung hình"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"Chọn tỷ lệ khung hình để xem ứng dụng này trong trường hợp ứng dụng này chưa được thiết kế cho vừa với <xliff:g id="DEVICE_NAME">%1$s</xliff:g> của bạn"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Các ứng dụng được đề xuất"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Các ứng dụng bạn đã ghi đè"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Mặc định của ứng dụng"</string>
- <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
- <skip />
- <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
- <skip />
+ <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Toàn màn hình"</string>
+ <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Nửa màn hình"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Tỷ lệ khung hình của thiết bị"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
- <skip />
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Ứng dụng sẽ khởi động lại khi bạn thay đổi tỷ lệ khung hình. Bạn có thể bị mất các thay đổi chưa lưu"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Cảm biến vân tay"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"Thông báo bằng đèn flash"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"Giới thiệu về thông báo bằng đèn flash"</string>
@@ -4756,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Vừa"</string>
<string name="contrast_high" msgid="3988567609694797696">"Cao"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Ứng dụng này chỉ có thể mở trong 1 cửa sổ"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Dịch vụ đang bật"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Dịch vụ đang tắt"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Tính năng lối tắt đang tắt"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Đang bật"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Đang tắt"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Đang tắt"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Đang tắt"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Đang bật"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Đang tắt"</string>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 87604a8..277348f 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -222,7 +222,7 @@
<item msgid="37519917674959757">"读取存储空间"</item>
<item msgid="3868809525697401379">"写入存储空间"</item>
<item msgid="2504191192460059817">"开启屏幕"</item>
- <item msgid="7905819538788103556">"获取帐号"</item>
+ <item msgid="7905819538788103556">"获取账号"</item>
<item msgid="1675025662248079254">"在后台运行"</item>
<item msgid="2553974920157061225">"无障碍功能音量"</item>
</string-array>
@@ -289,7 +289,7 @@
<item msgid="3778165903878569143">"读取存储空间"</item>
<item msgid="555939881912035315">"写入存储空间"</item>
<item msgid="4281352581602735717">"开启屏幕"</item>
- <item msgid="346122795998225472">"获取帐号"</item>
+ <item msgid="346122795998225472">"获取账号"</item>
<item msgid="3756073389408535680">"在后台运行"</item>
<item msgid="2114661179947426734">"无障碍功能音量"</item>
</string-array>
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 分钟后"</item>
<item msgid="1574040255478150028">"5 分钟后"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"开启自适应亮度可延长电池续航时间"</item>
+ <item msgid="2256666063790193306">"缩短屏幕超时时间可延长电池续航时间"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 762d868..9f02bff 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"未指定"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"阴性"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"阳性"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{要移除所选语言吗?}other{要移除所选语言吗?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"系统将以其他语言显示文字。"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"无法移除所有语言"</string>
@@ -265,7 +267,7 @@
<string name="location_settings_footer_general" msgid="1040507068701188821">"具有附近设备权限的应用可以确定已连接的设备的相对位置。"</string>
<string name="location_settings_footer_location_off" msgid="8568995909147566720">"应用和服务的位置信息使用权处于关闭状态。在您拨打紧急电话号码或向该号码发送短信时,系统可能仍会将您的设备位置信息发送给急救人员。"</string>
<string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"详细了解位置信息设置。"</string>
- <string name="account_settings_title" msgid="9138880127246241885">"帐号"</string>
+ <string name="account_settings_title" msgid="9138880127246241885">"账号"</string>
<string name="security_settings_title" msgid="6710768415432791970">"安全"</string>
<string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"加密与凭据"</string>
<string name="lockscreen_settings_title" msgid="4086121748092341549">"锁定屏幕"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已添加面孔和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已添加面孔、指纹和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已添加面孔、指纹和“<xliff:g id="WATCH">%s</xliff:g>”"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"设置手表"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"“手表解锁”功能是解锁这部手机的另一种方便快捷的方式。例如,当您的手指潮湿或设备未能识别出您的面孔时,“手表解锁”将非常有用。\n\n您可以通过以下方式使用您的手表解锁这部手机:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"以后再说"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"继续"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"更多"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"运作方式"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"您必须将手表戴在手上,使其处于解锁状态,并靠近这部手机。只要手表戴在手上,您就不必再次解锁手表。"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"当这部手机解锁后,您会在手表上收到通知。如果误解锁,只需点按通知即可再次锁定手机。"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"一切由您掌控"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"您可以随时前往“设置”部分,从“手表解锁”设置中移除自己的手表"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"点按通知"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"在锁定的屏幕上向上滑动"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"选择您的手表"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"可用的手表"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"取消"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"确认"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"大功告成!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"现在,当您在锁定的屏幕上向上滑动或点按通知时,即可使用您的手表解锁这部手机"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"完成"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"手表解锁"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"当您在锁定的屏幕上向上滑动或在点按通知时,可以使用您的手表解锁这部手机"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"若要使用“手表解锁”功能,您的手表必须满足以下条件:连接到这部手机、处于解锁状态、戴在手腕上,并且靠近这部手机。如果连接中断,您需要先解锁手机才能使用“手表解锁”功能。\n\n注意事项:\n您一次只能设置一块手表。若要再添加一块手表,请先移除当前的手表。"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"详细了解“手表解锁”功能"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"添加手表"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"移除手表"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指纹解锁和人脸解锁"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"用于工作资料的人脸解锁和指纹解锁"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"需要设置"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"您可能还需要在另一台设备上输入此通行密钥。"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"确认与协调组配对"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"允许访问您的通讯录和通话记录"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"还允许访问通讯录和通话记录"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"信息将用于来电通知等用途"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"无法连接到<xliff:g id="DEVICE_NAME">%1$s</xliff:g>。"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"可用的设备"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"正在与此设备分享 WLAN…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"正在连接…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"分享热点"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"验证是您本人"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"验证您的身份"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"WLAN 密码:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"热点密码:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"自动连接"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"网络不在范围内"</string>
<string name="wifi_forget" msgid="3485573280364015620">"取消保存"</string>
<string name="wifi_modify" msgid="5127926476383659412">"修改"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"无法取消保存网络"</string>
<string name="wifi_save" msgid="2312643132472226807">"保存"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"无法保存网络"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"取消"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"如果首选频率不可用,热点可能会使用其他频率。如果您更改频率,热点的安全设置可能也会改变。"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"不适用于 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"如果您更改热点频率,安全设置可能也会改变"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"正在打开热点..."</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"正在关闭热点..."</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"网络共享不可用"</string>
@@ -968,12 +1002,12 @@
<string name="wifi_calling_turn_on" msgid="7687886259199428823">"请开启 WLAN 通话功能"</string>
<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_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>
- <string name="accessibility_personal_account_title" msgid="8535265881509557013">"个人帐号 - <xliff:g id="MANAGED_BY">%s</xliff:g>"</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_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>
+ <string name="accessibility_personal_account_title" msgid="8535265881509557013">"个人账号 - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
<string name="search_settings" msgid="7573686516434589771">"搜索"</string>
<string name="display_settings" msgid="7197750639709493852">"显示"</string>
<string name="accelerometer_title" msgid="7745991950833748909">"自动旋转屏幕"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"忘记了密码?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"忘记了图案?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"忘记了 PIN 码?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"请绘制您的设备解锁图案以继续"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"请输入您的设备 PIN 码以继续"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"请输入您的设备密码以继续"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"请绘制您的工作解锁图案以继续"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"绘制解锁图案才能继续"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"输入 PIN 码才能继续"</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">"需输入您的工作资料 PIN 码才能继续"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"请输入您的工作密码以继续"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"为了提升安全性,请绘制您的设备解锁图案"</string>
@@ -1465,9 +1499,9 @@
<string name="lockpassword_confirm_your_pin_header_frp" msgid="8285647793164729982">"验证 PIN 码"</string>
<string name="lockpassword_confirm_your_password_header_frp" msgid="7932240547542564033">"验证密码"</string>
<string name="lockpassword_remote_validation_header" msgid="4992647285784962073">"验证身份"</string>
- <string name="lockpassword_remote_validation_pattern_details" msgid="4655537780358707983">"如需转移 Google 帐号、设置等,请绘制其他设备的解锁图案。您的解锁图案已经过加密。"</string>
- <string name="lockpassword_remote_validation_pin_details" msgid="2373654227583206297">"如需转移 Google 帐号、设置等,请输入其他设备的 PIN 码。您的 PIN 码已经过加密。"</string>
- <string name="lockpassword_remote_validation_password_details" msgid="3482328925925888340">"如需转移 Google 帐号、设置等,请输入其他设备的密码。您的密码已经过加密。"</string>
+ <string name="lockpassword_remote_validation_pattern_details" msgid="4655537780358707983">"如需转移 Google 账号、设置等,请绘制其他设备的解锁图案。您的解锁图案已经过加密。"</string>
+ <string name="lockpassword_remote_validation_pin_details" msgid="2373654227583206297">"如需转移 Google 账号、设置等,请输入其他设备的 PIN 码。您的 PIN 码已经过加密。"</string>
+ <string name="lockpassword_remote_validation_password_details" msgid="3482328925925888340">"如需转移 Google 账号、设置等,请输入其他设备的密码。您的密码已经过加密。"</string>
<string name="lockpassword_remote_validation_set_pattern_as_screenlock" msgid="7595104317648465901">"还使用解锁图案来解锁此设备"</string>
<string name="lockpassword_remote_validation_set_pin_as_screenlock" msgid="509672303005547218">"还使用 PIN 码来解锁此设备"</string>
<string name="lockpassword_remote_validation_set_password_as_screenlock" msgid="2066701840753591922">"还使用密码来解锁此设备"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"没有提供说明。"</string>
<string name="settings_button" msgid="2195468788019730377">"设置"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"光敏度、畏光、深色主题、偏头痛、头痛、阅读模式、夜间模式、调低亮度、白点"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"易于使用, 易于访问, 协助, 辅助, Ease of use, ease of access, assistance, assistive"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"视觉, 听力, 失明, 失聪, 运动, 灵敏性, 辅助, 协助, 易于使用, 易于访问, 手, 帮助, vision, hearing, blind, deaf, motor, dexterity, assistive, assistance, ease of use, ease of access, hand, help"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"窗口放大镜, 缩放, 放大, 弱视, 增大, 加大, Window Magnifier, Zoom, Magnification, Low vision, Enlarge, make bigger"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"字幕, 实时转写, 听障, 听力受损, 语音转文字, Captions, closed captions, CC, Live Transcribe, hard of hearing, hearing loss, CART, speech to text, subtitle"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"色彩对比度"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"电机, 鼠标, motor, mouse"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"助听器, 听障, 听力减退, 人工耳蜗, 放大设备, 声音处理器, hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"运动, 鼠标, 外部鼠标, 头部鼠标, 自适应鼠标, 轮椅, 操纵杆, motor, mouse, external mouse, head mouse, adaptive mouse, wheelchair, joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"助听器, 听障, 听力减退, 人工耳蜗, 放大设备, 声音处理器, 个人扩音产品, hearing aids, hard of hearing, hearing loss, cochlear implants, amplification devices, sound processors, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"听障, 听力受损, 字幕, 电传, hard of hearing, hearing loss, captions, Teletype, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"三个按钮, three buttons"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"灵敏性, 运动, 老年, 关节炎, 中风, 震颤, 多发性硬化症, 脑瘫, 晃动, 重复性劳损, 手, dexterity, motor, senior, arthritis, rsi, stroke, tremor, multiple sclerosis, cerebral palsy, shaking, repetitive strain injury, hand"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"延迟, 灵敏性, 老年, delay, dexterity, senior"</string>
<string name="print_settings" msgid="8519810615863882491">"打印"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"已关闭"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 个打印服务已开启}other{# 个打印服务已开启}}"</string>
@@ -2458,13 +2495,13 @@
<string name="personal_data_section_title" msgid="6368610168625722682">"个人数据"</string>
<string name="backup_data_title" msgid="507663517227498525">"备份我的数据"</string>
<string name="backup_data_summary" msgid="8054551085241427531">"将应用数据、WLAN密码和其他设置备份到Google服务器"</string>
- <string name="backup_configure_account_title" msgid="8574055186903658842">"备份帐号"</string>
- <string name="backup_data_management_title" msgid="6596830198441939702">"管理备份帐号"</string>
+ <string name="backup_configure_account_title" msgid="8574055186903658842">"备份账号"</string>
+ <string name="backup_data_management_title" msgid="6596830198441939702">"管理备份账号"</string>
<string name="include_app_data_title" msgid="2969603876620594523">"包括应用数据"</string>
<string name="auto_restore_title" msgid="4124345897936637561">"自动还原"</string>
<string name="auto_restore_summary" msgid="6830198851045584001">"重新安装某个应用后,系统会还原已经备份的设置和数据"</string>
<string name="backup_inactive_title" msgid="6753265378043349277">"备份服务未启用"</string>
- <string name="backup_configure_account_default_summary" msgid="5323225330966306690">"目前没有帐号存储备份数据"</string>
+ <string name="backup_configure_account_default_summary" msgid="5323225330966306690">"目前没有账号存储备份数据"</string>
<string name="backup_erase_dialog_title" msgid="5892431263348766484"></string>
<string name="backup_erase_dialog_message" msgid="2250872501409574331">"要停止备份您的WLAN密码、书签、其他设置和应用数据,并清除Google服务器上的所有副本吗?"</string>
<string name="fullbackup_erase_dialog_message" msgid="2379053988557486162">"要停止备份设备数据(例如 WLAN 密码和通话记录)和应用数据(例如应用存储的设置和文件),并清除远程服务器上的所有副本吗?"</string>
@@ -2504,7 +2541,7 @@
<string name="sync_active" msgid="5787407579281739975">"正在同步"</string>
<string name="account_sync_settings_title" msgid="2684888109902800966">"同步"</string>
<string name="sync_is_failing" msgid="6738004111400633331">"同步操作当前遇到了一些问题,很快便可恢复。"</string>
- <string name="add_account_label" msgid="7134707140831385869">"添加帐号"</string>
+ <string name="add_account_label" msgid="7134707140831385869">"添加账号"</string>
<string name="managed_profile_not_available_label" msgid="7500578232182547365">"工作资料尚不可用"</string>
<string name="work_mode_label" msgid="4687734487641548872">"工作应用"</string>
<string name="remove_managed_profile_label" msgid="1294933737673830431">"移除工作资料"</string>
@@ -2529,10 +2566,10 @@
<string name="header_application_sync_settings" msgid="7427706834875419243">"应用同步设置"</string>
<string name="header_data_and_synchronization" msgid="453920312552838939">"数据与同步"</string>
<string name="preference_change_password_title" msgid="5465821666939825972">"更改密码"</string>
- <string name="header_account_settings" msgid="1189339410278750008">"帐号设置"</string>
- <string name="remove_account_label" msgid="4169490568375358010">"移除帐号"</string>
- <string name="header_add_an_account" msgid="3919151542338822661">"添加帐号"</string>
- <string name="really_remove_account_title" msgid="253097435885652310">"要移除帐号吗?"</string>
+ <string name="header_account_settings" msgid="1189339410278750008">"账号设置"</string>
+ <string name="remove_account_label" msgid="4169490568375358010">"移除账号"</string>
+ <string name="header_add_an_account" msgid="3919151542338822661">"添加账号"</string>
+ <string name="really_remove_account_title" msgid="253097435885652310">"要移除账号吗?"</string>
<string name="remove_account_failed" msgid="3709502163548900644">"您的管理员不允许进行这项更改"</string>
<string name="cant_sync_dialog_title" msgid="2613000568881139517">"无法手动同步"</string>
<string name="cant_sync_dialog_message" msgid="7612557105054568581">"此项内容的同步功能目前未开启。要更改此设置,请暂时开启后台流量和自动同步功能。"</string>
@@ -2540,8 +2577,8 @@
<string name="select_all" msgid="7898929601615536401">"全选"</string>
<string name="data_usage_summary_title" msgid="394067070764360142">"流量使用情况"</string>
<string name="data_usage_app_summary_title" msgid="4933742247928064178">"移动数据和 WLAN"</string>
- <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"自动同步个人帐号数据"</string>
- <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"自动同步工作帐号数据"</string>
+ <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"自动同步个人账号数据"</string>
+ <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"自动同步工作账号数据"</string>
<string name="data_usage_change_cycle" msgid="4501026427365283899">"更改周期..."</string>
<string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"每月流量消耗重计日期:"</string>
<string name="data_usage_empty" msgid="5619908658853726866">"没有任何应用在此期间产生过数据流量。"</string>
@@ -2575,7 +2612,7 @@
<string name="data_usage_restrict_denied_dialog" msgid="8599940395497268584">"您必须先设置移动数据流量上限,才能限制后台数据流量。"</string>
<string name="data_usage_auto_sync_on_dialog_title" msgid="2048411447974361181">"要打开自动同步数据功能吗?"</string>
<string name="data_usage_auto_sync_off_dialog_title" msgid="1783917145440587470">"要关闭自动同步数据功能吗?"</string>
- <string name="data_usage_auto_sync_off_dialog" msgid="6523112583569674837">"关闭后可以节省数据流量和电池电量,但您需要手动同步每个帐号才能获得最新信息,并且在有更新时不会收到通知。"</string>
+ <string name="data_usage_auto_sync_off_dialog" msgid="6523112583569674837">"关闭后可以节省数据流量和电池电量,但您需要手动同步每个账号才能获得最新信息,并且在有更新时不会收到通知。"</string>
<string name="data_usage_cycle_editor_title" msgid="2019035830921480941">"流量消耗重置日期"</string>
<string name="data_usage_cycle_editor_subtitle" msgid="1026234456777365545">"每月重置日期:"</string>
<string name="data_usage_cycle_editor_positive" msgid="6110165528024717527">"设置"</string>
@@ -2604,7 +2641,7 @@
<string name="vpn_routes" msgid="1218707725375594862">"转发路线(例如 10.0.0.0/8)"</string>
<string name="vpn_username" msgid="8671768183475960068">"用户名"</string>
<string name="vpn_password" msgid="1183746907642628127">"密码"</string>
- <string name="vpn_save_login" msgid="5986762519977472618">"保存帐号信息"</string>
+ <string name="vpn_save_login" msgid="5986762519977472618">"保存账号信息"</string>
<string name="vpn_not_used" msgid="7229312881336083354">"(未使用)"</string>
<string name="vpn_no_ca_cert" msgid="3687379414088677735">"(不验证服务器)"</string>
<string name="vpn_no_server_cert" msgid="8106540968643125407">"(来自服务器)"</string>
@@ -2697,7 +2734,7 @@
<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>
- <string name="user_cannot_add_accounts_message" msgid="2351326078338805337">"受限个人资料无法添加帐号"</string>
+ <string name="user_cannot_add_accounts_message" msgid="2351326078338805337">"受限个人资料无法添加账号"</string>
<string name="user_remove_user_menu" msgid="2183714948094429367">"将<xliff:g id="USER_NAME">%1$s</xliff:g>从此设备中删除"</string>
<string name="user_lockscreen_settings" msgid="4596612658981942092">"锁定屏幕设置"</string>
<string name="user_add_on_lockscreen_menu" msgid="2539059062034644966">"从锁定屏幕中添加用户"</string>
@@ -2772,7 +2809,7 @@
<string name="restriction_menu_reset" msgid="92859464456364092">"取消限制"</string>
<string name="restriction_menu_change_pin" msgid="2505923323199003718">"更改PIN码"</string>
<string name="help_label" msgid="2896538416436125883">"帮助和反馈"</string>
- <string name="user_account_title" msgid="6389636876210834864">"内容帐号"</string>
+ <string name="user_account_title" msgid="6389636876210834864">"内容账号"</string>
<string name="user_picture_title" msgid="7176437495107563321">"照片 ID"</string>
<string name="extreme_threats_title" msgid="1098958631519213856">"极端威胁"</string>
<string name="extreme_threats_summary" msgid="3560742429496902008">"接收有关生命和财产极端威胁的警报"</string>
@@ -2817,8 +2854,8 @@
<string name="user_rename" msgid="8735940847878484249">"重命名"</string>
<string name="app_restrictions_custom_label" msgid="6949268049087435132">"设置应用限制"</string>
<string name="user_restrictions_controlled_by" msgid="2821526006742851624">"受“<xliff:g id="APP">%1$s</xliff:g>”控制"</string>
- <string name="app_sees_restricted_accounts" msgid="3526008344222566318">"此应用可使用您的帐号"</string>
- <string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"此应用由“<xliff:g id="APP">%1$s</xliff:g>”控制,可使用您的帐号"</string>
+ <string name="app_sees_restricted_accounts" msgid="3526008344222566318">"此应用可使用您的账号"</string>
+ <string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"此应用由“<xliff:g id="APP">%1$s</xliff:g>”控制,可使用您的账号"</string>
<string name="restriction_wifi_config_title" msgid="2630656989926554685">"WLAN和移动网络"</string>
<string name="restriction_wifi_config_summary" msgid="920419010472168694">"允许修改WLAN和移动网络设置"</string>
<string name="restriction_bluetooth_config_title" msgid="220586273589093821">"蓝牙"</string>
@@ -2870,11 +2907,11 @@
<string name="nfc_and_payment_settings_no_payment_installed_summary" msgid="4879818114908207465">"先安装付款应用,然后才能使用感应式付款功能"</string>
<string name="app_and_notification_dashboard_summary" msgid="8047683010984186106">"最近使用的应用、默认应用"</string>
<string name="notification_settings_work_profile" msgid="6076211850526353975">"工作资料中的应用无法访问通知。"</string>
- <string name="account_dashboard_title" msgid="8228773251948253914">"密码和帐号"</string>
- <string name="account_dashboard_default_summary" msgid="1730719656099599488">"保存的密码、自动填充、同步的帐号"</string>
+ <string name="account_dashboard_title" msgid="8228773251948253914">"密码和账号"</string>
+ <string name="account_dashboard_default_summary" msgid="1730719656099599488">"保存的密码、自动填充、同步的账号"</string>
<string name="app_default_dashboard_title" msgid="4071015747629103216">"默认应用"</string>
<string name="cloned_apps_dashboard_title" msgid="5542076801222950921">"克隆应用"</string>
- <string name="desc_cloned_apps_intro_text" msgid="1369621522882622476">"创建应用的第二个实例,这样您就可以同时使用两个帐号。"</string>
+ <string name="desc_cloned_apps_intro_text" msgid="1369621522882622476">"创建应用的第二个实例,这样您就可以同时使用两个账号。"</string>
<string name="desc_cloneable_app_list_text" msgid="3354586725814708688">"可以克隆的应用。"</string>
<string name="cloned_apps_summary" msgid="8805362440770795709">"<xliff:g id="CLONED_APPS_COUNT">%1$s</xliff:g> 个已克隆,<xliff:g id="ALLOWED_APPS_COUNT">%2$d</xliff:g> 个可以克隆"</string>
<string name="delete_all_app_clones" msgid="3489053361980624999">"删除所有应用副本"</string>
@@ -2919,7 +2956,7 @@
<string name="keywords_sounds_and_notifications_interruptions" msgid="1500312884808362467">"勿扰, 请勿打扰, 打扰, 打断"</string>
<string name="keywords_app" msgid="7983814237980258061">"RAM 内存"</string>
<string name="keywords_location" msgid="8016374808099706213">"附近, 位置信息, 历史记录, 报告, GPS"</string>
- <string name="keywords_accounts" msgid="3013897982630845506">"帐号, 添加一个帐号, 工作资料, 添加帐号, 移除, 删除, account, add an account, work profile, add account, remove, delete"</string>
+ <string name="keywords_accounts" msgid="3013897982630845506">"账号, 添加一个账号, 工作资料, 添加账号, 移除, 删除, account, add an account, work profile, add account, remove, delete"</string>
<string name="keywords_users" msgid="3497517660077620843">"限制, 限定, 受限"</string>
<string name="keywords_keyboard_and_ime" msgid="4741098648730042570">"文字, 文本, 更正, 声音, 提示音, 振动, 自动, 语言, 手势, 推荐, 建议, 主题, 主题背景, 令人反感, 字词, 输入, 表情符号, 国际"</string>
<string name="keywords_reset_apps" msgid="8254315757754930862">"重置, 偏好设置, 默认"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"数据流量警告:<xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_limit" msgid="256855024790622112">"数据流量上限:<xliff:g id="ID_1">^1</xliff:g>"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"数据流量警告:<xliff:g id="ID_1">^1</xliff:g>/数据流量上限:<xliff:g id="ID_2">^2</xliff:g>"</string>
- <string name="operator_warning" msgid="5672761970087591211">"运营商的流量计算方式可能与您设备的计算方式不同"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"不包括运营商网络的流量消耗"</string>
<string name="data_used_template" msgid="8229342096562327646">"已使用 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"设置数据流量警告"</string>
@@ -3888,7 +3924,7 @@
<string name="page_tab_title_support" msgid="3235725053332345773">"提示和支持"</string>
<string name="developer_smallest_width" msgid="632354817870920911">"最小宽度"</string>
<string name="premium_sms_none" msgid="8737045049886416739">"没有任何已安装的应用申请付费短信权限"</string>
- <string name="premium_sms_warning" msgid="2192300872411073324">"“付费短信”可能会产生费用,而且相关费用将计入您的运营商帐单。如果您为某个应用启用该权限,那么您将能够使用该应用发送付费短信。"</string>
+ <string name="premium_sms_warning" msgid="2192300872411073324">"“付费短信”可能会产生费用,而且相关费用将计入您的运营商账单。如果您为某个应用启用该权限,那么您将能够使用该应用发送付费短信。"</string>
<string name="premium_sms_access" msgid="5605970342699013212">"付费短信权限"</string>
<string name="bluetooth_disabled" msgid="835838280837359514">"已关闭"</string>
<string name="bluetooth_connected_summary" msgid="8043167194934315712">"已连接到“<xliff:g id="ID_1">%1$s</xliff:g>”"</string>
@@ -3988,10 +4024,10 @@
<string name="instant_apps_settings" msgid="4280942494969957858">"免安装应用偏好设置"</string>
<string name="domain_url_section_title" msgid="9028890472923474958">"已安装的应用"</string>
<string name="automatic_storage_manager_activation_warning" msgid="170508173207142665">"您的存储空间目前是由存储空间管理器管理"</string>
- <string name="account_for_section_header" msgid="7466759342105251096">"<xliff:g id="USER_NAME">%1$s</xliff:g>的帐号"</string>
+ <string name="account_for_section_header" msgid="7466759342105251096">"<xliff:g id="USER_NAME">%1$s</xliff:g>的账号"</string>
<string name="auto_sync_account_title" msgid="1070908045600374254">"自动同步应用数据"</string>
<string name="auto_sync_account_summary" msgid="7580352130028957346">"让应用自动刷新数据"</string>
- <string name="account_sync_title" msgid="7036067017433297574">"帐号同步"</string>
+ <string name="account_sync_title" msgid="7036067017433297574">"账号同步"</string>
<string name="account_sync_summary_some_on" msgid="911460286297968724">"已开启 <xliff:g id="ID_1">%1$d</xliff:g> 项(共 <xliff:g id="ID_2">%2$d</xliff:g> 项)的同步功能"</string>
<string name="account_sync_summary_all_on" msgid="2953682111836599841">"已开启所有项的同步功能"</string>
<string name="account_sync_summary_all_off" msgid="6378301874540507884">"已关闭所有项的同步功能"</string>
@@ -4002,7 +4038,7 @@
<string name="enterprise_privacy_exposure_category" msgid="2507761423540037308">"贵单位可查看的信息类型"</string>
<string name="enterprise_privacy_exposure_changes_category" msgid="5459989751333816587">"贵单位的管理员所做的更改"</string>
<string name="enterprise_privacy_device_access_category" msgid="140157499478630004">"您对此设备的访问权限"</string>
- <string name="enterprise_privacy_enterprise_data" msgid="3963070078195245028">"与您的工作帐号关联的数据(例如电子邮件和日历)"</string>
+ <string name="enterprise_privacy_enterprise_data" msgid="3963070078195245028">"与您的工作账号关联的数据(例如电子邮件和日历)"</string>
<string name="enterprise_privacy_installed_packages" msgid="6707006112254572820">"您设备上的应用列表"</string>
<string name="enterprise_privacy_usage_stats" msgid="6328506963853465534">"每个应用的使用时长和数据用量"</string>
<string name="enterprise_privacy_network_logs" msgid="3081744541193695887">"最新的网络流量日志"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"自动填充服务"</string>
<string name="default_autofill_app" msgid="372234803718251606">"默认自动填充服务"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"密码"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"密码、通行密钥和数据服务"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"密码、通行密钥和数据服务"</string>
<string name="credman_credentials" msgid="4931371941253324143">"其他提供方"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# 个密码}other{# 个密码}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"自动, 填充, 自动填充, 密码, auto, fill, autofill, password"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"自动, 填充, 自动填充, 数据, 通行密钥, 密码, auto, fill, autofill, data, passkey, password"</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="4951846866327737417">"<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="2642776965060619988">"密码、通行密钥和数据服务"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"密码、通行密钥和数据服务"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"要关闭%1$s吗?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>停用此服务?</b> <br/> <br/>停用此服务后,当您登录时,系统不会填充密码、通行密钥、付款方式等已保存的信息以及其他信息。如需使用已保存的信息,请选择一个密码、通行密钥或数据服务。"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"使用%1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"%1$s会根据屏幕上的内容判断可以自动填充的内容。"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"密码、通行密钥和数据服务限制"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"同时最多可以启用 5 个密码、通行密钥和数据服务。若要添加其他服务,请先关闭其中一项服务。"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"密码、通行密钥和数据服务限制"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"同时最多可以启用 5 个密码、通行密钥和数据服务。若要添加其他服务,请先关闭一个已启用的服务。"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"关闭"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"自动填充"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"日志记录级别"</string>
@@ -4164,7 +4200,7 @@
<string name="platform_compat_default_disabled_title" msgid="3975847180953793602">"默认停用的应用兼容性变更"</string>
<string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"只能修改可调试应用的应用兼容性变更。请安装可调试的应用,然后重试。"</string>
<string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"必须一并更改其他设置"</string>
- <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"帐号"</string>
+ <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"账号"</string>
<string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"设备名称"</string>
<string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"基本信息"</string>
<string name="my_device_info_legal_category_title" msgid="7732792841537995127">"法律法规"</string>
@@ -4377,7 +4413,7 @@
<string name="hwui_force_dark_title" msgid="4256904905631994219">"覆盖“强制启用 SmartDark 功能”的设置"</string>
<string name="hwui_force_dark_summary" msgid="6515748781487952769">"覆盖“强制 SmartDark 功能始终开启”的设置"</string>
<string name="privacy_dashboard_title" msgid="6845403825611829558">"隐私"</string>
- <string name="privacy_dashboard_summary" msgid="5775090172422786808">"权限、帐号活动、个人数据"</string>
+ <string name="privacy_dashboard_summary" msgid="5775090172422786808">"权限、账号活动、个人数据"</string>
<string name="privacy_controls_title" msgid="1383047169455206604">"控制"</string>
<string name="contextual_card_dismiss_remove" msgid="8636557343011606722">"移除"</string>
<string name="contextual_card_dismiss_keep" msgid="440516181066490747">"保留"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"播放兼容的媒体时,音频更具沉浸感"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"头部跟踪"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"音频会随着头部移动而变化,让聆听效果更加自然"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"音频设备类型"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"未知"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"扬声器"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"耳机"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"车载套件"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"其他"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"网络下载速率限制"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"配置网络带宽入站流量速率限制,此速率限制将应用到提供互联网连接的所有网络中。"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"配置网络下载速率限制"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"中"</string>
<string name="contrast_high" msgid="3988567609694797696">"高"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"此应用只能在 1 个窗口中打开"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"服务已开启"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"服务已关闭"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"快捷方式已关闭"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"开启"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"关闭"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"关闭"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"已关闭"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"已开启"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"已关闭"</string>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 2e9de69..052cbc7 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 分鐘後"</item>
<item msgid="1574040255478150028">"5 分鐘後"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"開啟自動調校光暗功能以延長電池壽命"</item>
+ <item msgid="2256666063790193306">"縮短螢幕逾時時間以延長電池壽命"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 7642d03..e0e58fb 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"未指定"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"女性"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"男性"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{要移除所選語言嗎?}other{要移除所選語言嗎?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"文字將以其他語言顯示。"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"無法移除所有語言"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已新增面孔和<xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已新增面孔、指紋和<xliff:g id="WATCH">%s</xliff:g>"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已新增面孔、指紋和<xliff:g id="WATCH">%s</xliff:g>"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"設定手錶"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"在你手指弄濕或系統無法識別你的面孔等情況下,「手錶解鎖」是另一個方便的解鎖手機方式。\n\n遇到以下情況時,你可以使用手錶解鎖此手機:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"暫時不要"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"繼續"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"更多"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"運作方式"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"你必須先解鎖手錶,並將手錶戴在手腕上,並靠近此手機。只要手錶仍在腕上,你便無需再次解鎖手錶。"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"此手機解鎖時,手錶就會顯示通知。如果不小心解鎖手機,只要輕按通知,即可再次鎖定。"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"一切由你掌控"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"你可隨時前往「設定」將手錶從「手錶解鎖」中移除"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"輕按通知"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"在上鎖畫面向上滑動"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"選擇手錶"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"可連線的手錶"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"取消"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"確認"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"大功告成!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"你現可在上鎖畫面向上滑動或輕按通知,即可使用手錶解鎖此手機"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"完成"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"手錶解鎖"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"在上鎖畫面向上滑動或輕按通知,即可使用手錶解鎖此手機"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"如要使用「手錶解鎖」,你必須先解鎖手錶,並將手錶戴在手腕上,以及靠近和連接此手機。如果連線中斷,你必須先解鎖手機,才能使用「手錶解鎖」。\n\n注意事項:\n你每次只可設定一隻手錶。如要新增其他手錶,請先移除目前的手錶。"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"進一步瞭解「手錶解鎖」"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"新增手錶"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"移除手錶"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指紋及面孔解鎖"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"用於工作設定檔的面孔和指紋解鎖"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"需要設定"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"你可能也必須在另一部裝置上輸入這個密碼金鑰。"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"確認與協調組合配對"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"允許存取你的聯絡人和通話記錄"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"亦允許存取通訊錄和通話記錄"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"資訊將用於來電通知等用途"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"無法連接「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」。"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"可用的裝置"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"正在與此裝置分享 Wi-Fi…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"連接中…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"共享熱點"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"驗證你的身分"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"驗證這是你本人"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi 密碼:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"熱點密碼:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"自動連線"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"網絡不在覆蓋範圍內"</string>
<string name="wifi_forget" msgid="3485573280364015620">"刪除"</string>
<string name="wifi_modify" msgid="5127926476383659412">"修改"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"無法刪除網絡"</string>
<string name="wifi_save" msgid="2312643132472226807">"儲存"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"無法儲存網絡"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"取消"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"如果偏好的頻率無法使用,熱點可能會改用其他頻率。如果變更頻率,熱點的安全設定亦可能隨之改變。"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"不適用於 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"如果變更熱點頻率,安全設定亦可能隨之改變"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"正在開啟熱點…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"正在關閉熱點…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"不支援網絡共享功能"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"忘記密碼嗎?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"要忘記圖案嗎?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"忘記 PIN 嗎?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"畫出裝置上鎖圖案以繼續操作"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"請輸入裝置 PIN 碼,然後繼續操作"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"輸入裝置密碼即可繼續"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"畫出工作設定檔上鎖圖案即可繼續"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"畫出上鎖圖案即可繼續"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"輸入 PIN 即可繼續"</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">"輸入工作專用 PIN 碼即可繼續"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"輸入工作設定檔密碼即可繼續"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"為提升安全性,請畫出你的裝置上鎖圖案"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"未提供說明。"</string>
<string name="settings_button" msgid="2195468788019730377">"設定"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"光敏度, 光敏, 深色主題背景, 偏頭痛, 頭痛, 朗讀模式, 夜間模式, 調低亮度, 白點"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"易於使用, 易於存取, 協助, 輔助"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"視力, 聽力, 失明, 失聰, 動作, 靈活度, 輔助, 容易使用, 容易操作, 手, 協助"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"視窗放大鏡, 縮放, 放大, 低視力"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"字幕, CC, 即時轉錄, 聽障, 失聰, CART, 語音轉文字"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"色彩對比度"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"行動, 滑鼠"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"助聽器, 聽障, 失聰, 人工耳蝸, 擴音器, 聲音處理器"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"行動, 滑鼠, 外置滑鼠, 頭部控制滑鼠, 無障礙共融滑鼠, 輪椅, 搖桿"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"助聽器, 聽障, 聽力受損, 人工耳蝸, 擴音裝置, 聲音處理器, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"聽障, 失聰, 字幕, 電傳打字, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"三個按鈕"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"靈活性, 行動, 年長, 關節炎, rsi, 中風, 顫抖, 多發性硬化症, 大腦麻痺, 抖動, 重複性勞損, 手"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"延遲, 靈活度, 年長"</string>
<string name="print_settings" msgid="8519810615863882491">"列印"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"關閉"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{已啟用 1 項列印服務}other{已啟用 # 項列印服務}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> 數據用量警告"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> 數據用量上限"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> 數據用量警告/<xliff:g id="ID_2">^2</xliff:g> 數據用量上限"</string>
- <string name="operator_warning" msgid="5672761970087591211">"流動網絡供應商的數據計算方式可能與裝置有所不同"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"不包括流動網絡供應商網絡使用的數據"</string>
<string name="data_used_template" msgid="8229342096562327646">"已使用 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"設定數據用量警告"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"自動填入服務"</string>
<string name="default_autofill_app" msgid="372234803718251606">"預設的自動填入服務"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"密碼"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"密碼、密鑰及資料服務"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"密碼、密鑰及資料服務"</string>
<string name="credman_credentials" msgid="4931371941253324143">"其他供應商"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# 個密碼}other{# 個密碼}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"自動, 填寫, 自動填入, 密碼"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"自動, 填入, 自動填入, 資料, 密鑰, 密碼"</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="4951846866327737417">"「<b>Use <xliff:g id=app_name example=Provider>%1$s</xliff:g>?</b> <br/> <br/> <xliff:g id=app_name example=Provider>%1$s</xliff:g>」會根據畫面內容判斷要自動填入的資料。從現在起,新密碼、密鑰和其他資料將會儲存在這裡。"</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"密碼、密鑰及資料服務"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"密碼、密鑰及資料服務"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"要關閉「%1$s」嗎?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>要關閉此服務嗎?</b> <br/> <br/> 當你登入後,系統將不會填入密碼、密鑰、付款方法等其他已儲存的資料。如要使用已儲存的資料,請選擇密碼、密鑰或資料服務。"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"要使用「%1$s」嗎?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"「%1$s」會根據畫面內容判斷要自動填入的資料。"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"密碼、密鑰及資料服務限制"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"你最多可同時啟用 5 項密碼、密鑰及資料服務。如要新增服務,請先關閉其中一項服務。"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"密碼、密鑰及資料服務限制"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"你最多可同時啟用 5 項密碼、密鑰及資料服務。如要新增服務,請先關閉其中一項服務。"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"關閉"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"自動填入"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"記錄等級"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"兼容媒體的音效更逼真,讓你身歷其境"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"頭部追蹤"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"音訊會隨著你轉動頭部而變化,因此聽起來更自然"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"音響裝置類型"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"不明"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"喇叭"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"耳機"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"車用套件"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"其他"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"網絡下載頻率限制"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"設定網絡頻寬輸入頻率限制,這項設定會套用至提供互聯網連線的所有網絡。"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"設定網絡下載頻率限制"</string>
@@ -4704,18 +4748,18 @@
<string name="background_install_uninstall_button_description" msgid="1189649052911501249">"解除安裝應用程式"</string>
<string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{過去 # 個月安裝的應用程式}other{過去 # 個月安裝的應用程式}}"</string>
<string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{超過 # 個月前安裝的應用程式}other{超過 # 個月前安裝的應用程式}}"</string>
- <string name="aspect_ratio_title" msgid="2451826875939676101">"顯示比例"</string>
- <string name="aspect_ratio_summary" msgid="5944347596728740547">"如果這個應用程式並未提供適合 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 的設計,請選擇要查看的顯示比例。"</string>
+ <string name="aspect_ratio_title" msgid="2451826875939676101">"長寬比"</string>
+ <string name="aspect_ratio_summary" msgid="5944347596728740547">"如果此應用程式未提供適合「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」的設計,請選擇要查看的長寬比"</string>
<string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"有建議顯示長寬比的應用程式"</string>
<string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"已覆寫顯示長寬比的應用程式"</string>
<string name="user_aspect_ratio_app_default" msgid="270065763307617837">"應用程式預設"</string>
<string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"全螢幕"</string>
<string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"半螢幕"</string>
- <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"裝置顯示比例"</string>
+ <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"裝置長寬比"</string>
<string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
<string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
<string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
- <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"變更顯示比例後,應用程式會重新啟動。你可能會遺失未儲存的變更內容。"</string>
+ <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"變更長寬比後,應用程式會重新啟動。你可能會遺失未儲存的變更內容。"</string>
<string name="accessibility_fingerprint_label" msgid="5017431423168191733">"指紋感應器"</string>
<string name="flash_notifications_title" msgid="4490438861180492311">"閃光燈通知"</string>
<string name="flash_notifications_about_title" msgid="9004351252928121214">"關於閃光燈通知"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"中"</string>
<string name="contrast_high" msgid="3988567609694797696">"高"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"此應用程式只可在 1 個視窗中開啟"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"服務已啟用"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"服務已停用"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"快速鍵已關閉"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"開啟"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"關閉"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"關閉"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"已停用"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"已啟用"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"已停用"</string>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 406bdcf..8f0ff81 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"1 分鐘後"</item>
<item msgid="1574040255478150028">"5 分鐘後"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"開啟自動調整亮度功能可延長電池續航力"</item>
+ <item msgid="2256666063790193306">"縮短螢幕自動關閉時間可延長電池續航力"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 704671a..78fc19c 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"未指定"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"女性"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"男性"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{要移除所選語言嗎?}other{要移除所選語言嗎?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"使用介面的文字會切換成另一種語言。"</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"無法移除所有語言"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"已新增臉孔和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"已新增臉孔、指紋和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"已新增臉孔、指紋和「<xliff:g id="WATCH">%s</xliff:g>」"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"設定智慧手錶"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"「智慧手錶解鎖」功能是另一種方便解鎖手機的方式。舉例來說,假如手指溼溼的或系統無法辨識你的臉,就適合使用這項功能。\n\n你可以使用手解鎖這支手機的情況如下:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"暫時不要"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"繼續"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"顯示更多"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"運作方式"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"你的智慧手錶必須處於解鎖狀態,並戴在手腕上,而且要在這支手機的連線範圍內。如果智慧手錶已戴在手腕上,就不必再解鎖智慧手錶。"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"手機解鎖後,手錶上會顯示通知。如果不小心解鎖手機,只要輕觸通知,即可再次鎖定。"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"一切由你掌控"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"你隨時可以在「設定」中透過「智慧手錶解鎖」移除智慧手錶"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"輕觸通知"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"在螢幕鎖定畫面向上滑動"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"選擇你的智慧手錶"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"可用的智慧手錶"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"取消"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"確認"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"大功告成!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"現在用手指在螢幕鎖定畫面上向上滑動或輕觸通知,即可使用手錶解鎖這支手機"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"完成"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"智慧手錶解鎖"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"在螢幕鎖定畫面向上滑動或輕觸通知,即可使用智慧手錶解鎖這支手機"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"如要使用「智慧手錶解鎖」功能,智慧手錶必須戴在手腕上並處於解鎖狀態,而且要在這支手機的連線範圍內。如果連線中斷,請先解鎖手機,才能使用「智慧手錶解鎖」功能。\n\n注意事項:\n一次只能設定一支手錶。如果還新增,請先移除目前的手錶。"</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"進一步瞭解「智慧手錶解鎖」功能"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"新增智慧手錶"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"移除智慧手錶"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"指紋與人臉解鎖"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"用於工作資料夾的人臉和指紋解鎖"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"需要設定"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"你可能也必須在另一個裝置上輸入這個密碼金鑰。"</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"確認與協同組配對"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"允許存取你的聯絡人和通話記錄"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"也允許存取聯絡人和通話記錄"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"資訊將用於來電通知等用途"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"無法連線至「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」。"</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"可用的裝置"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"正在與這個裝置分享 Wi‑Fi…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"連線中…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"分享無線基地台"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"確認你的身分"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"驗證你的身分"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi 密碼:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"無線基地台密碼:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"自動連線"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"不在網路有效範圍內"</string>
<string name="wifi_forget" msgid="3485573280364015620">"清除"</string>
<string name="wifi_modify" msgid="5127926476383659412">"修改"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"無法刪除網路"</string>
<string name="wifi_save" msgid="2312643132472226807">"儲存"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"無法儲存網路"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"取消"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"如果偏好的頻率無法使用,無線基地台可能會改用其他頻率。如果變更頻率,無線基地台的安全性設定也可能跟著改變。"</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"不適用於 6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"如果變更無線基地台的頻率,安全性設定可能會一併改變"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"正在開啟無線基地台…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"正在關閉無線基地台…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"不支援網路共用功能"</string>
@@ -1449,10 +1483,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"忘記密碼了嗎?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"忘記解鎖圖案了嗎?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"忘記 PIN 碼了嗎?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"請用裝置解鎖圖案解鎖"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"輸入裝置 PIN 碼即可繼續"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"請輸入你的裝置密碼以繼續作業"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"請用工作資料夾的解鎖圖案解鎖以繼續"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"如要繼續操作,請畫出解鎖圖案"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"如要繼續操作,請輸入 PIN 碼"</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">"請輸入你的工作資料夾 PIN 碼以繼續作業"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"請輸入你的 Work 密碼以繼續作業"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"為了提升安全性,請使用裝置解鎖圖案"</string>
@@ -2128,7 +2162,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"未提供說明。"</string>
<string name="settings_button" msgid="2195468788019730377">"設定"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"對光線敏感、畏光、深色主題、偏頭痛、頭痛、閱讀模式、夜間模式、調低亮度、白點"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"容易使用, 容易存取, 輔助功能, 輔助"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"視力, 聽力, 失明, 失聰, 動作, 精細動作, 輔助, 容易使用, 容易操作, 手, 協助"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"視窗放大鏡, 縮放, 放大, 低視能, 加大, 調大"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"字幕, 隱藏式輔助字幕, CC, 即時轉錄, 聽障, 聽力受損, CART, 語音轉文字, 字幕 (Subtitle)"</string>
@@ -2143,10 +2177,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"色彩對比"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"動作, 滑鼠"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"助聽器, 聽障, 聽力受損, 人工電子耳, 擴音裝置, 聲音處理器"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"動作, 滑鼠, 外接滑鼠, 頭控滑鼠, 調適型滑鼠, 輪椅, 搖桿"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"助聽器, 聽障, 聽力受損, 人工電子耳, 擴音裝置, 聲音處理器, PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"聽障, 聽力受損, 字幕, 電傳打字, tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"三個按鈕"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"精細動作, 動作, 年長, 關節炎, rsi, 中風, 顫抖, 多發性硬化症, 腦性麻痺, 震顫, 重複性使力傷害, 手"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"延遲, 精細動作, 年長"</string>
<string name="print_settings" msgid="8519810615863882491">"列印"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"關閉"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{1 個列印服務已啟用}other{# 個列印服務已啟用}}"</string>
@@ -3795,7 +3832,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> 數據用量警告"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> 數據用量上限"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> 數據用量警告/<xliff:g id="ID_2">^2</xliff:g> 數據用量上限"</string>
- <string name="operator_warning" msgid="5672761970087591211">"電信業者與裝置的數據計算方式可能有所不同"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"排除電信業者網路的數據用量"</string>
<string name="data_used_template" msgid="8229342096562327646">"已使用 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="set_data_warning" msgid="1685771882794205462">"設定數據用量警告"</string>
@@ -4094,7 +4130,7 @@
<string name="autofill_app" msgid="7595308061826307921">"自動填入服務"</string>
<string name="default_autofill_app" msgid="372234803718251606">"預設的自動填入服務"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"密碼"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"密碼、密碼金鑰和資料服務"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"密碼、密碼金鑰和資料服務"</string>
<string name="credman_credentials" msgid="4931371941253324143">"其他提供者"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{# 個密碼}other{# 個密碼}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"自動, 填寫, 自動填入, 密碼"</string>
@@ -4102,13 +4138,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"自動、填入、自動填入、資料、密碼金鑰、密碼"</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="4951846866327737417">"<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="2642776965060619988">"密碼、密碼金鑰和資料服務"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"密碼、密碼金鑰和資料服務"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"要停用「%1$s」嗎?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>要關閉這項服務嗎?</b> <br/> <br/> 當你登入後,系統將不會填入密碼、密碼金鑰、付款方式等其他已儲存的資訊。如要使用已儲存的資訊,請選擇所需的密碼、密碼金鑰或資料服務。"</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"要使用「%1$s」嗎?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"「%1$s」會根據畫面內容判斷要自動填入的資訊。"</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"密碼、密碼金鑰和資料服務限制"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"一次最多可選取 5 個密碼、密碼金鑰和資料服務。如要新增其他服務,請先停用其中一項服務。"</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"密碼、密碼金鑰和資料服務限制"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"一次最多可選取 5 個密碼、密碼金鑰和資料服務。如要新增其他服務,請先停用其中一項服務。"</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"停用"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"自動填入"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"記錄層級"</string>
@@ -4672,6 +4708,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"相容媒體裝置可提供更有臨場感的聲音體驗"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"頭部追蹤"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"音訊會隨著你轉動頭部而變化,因此聽起來更自然"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"音訊裝置類型"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"不明"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"揚聲器"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"耳罩式耳機"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"車用套件"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"其他"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"網路下載頻率限制"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"設定網路頻寬輸入頻率限制,這項設定會套用到提供網際網路連線的所有網路。"</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"設定網路下載頻率限制"</string>
@@ -4750,10 +4794,9 @@
<string name="contrast_medium" msgid="384414510709285811">"中"</string>
<string name="contrast_high" msgid="3988567609694797696">"高"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"這個應用程式只能在 1 個視窗中開啟"</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g>/<xliff:g id="SHORTCUT_STATE">%2$s</xliff:g>/<xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"服務已啟用"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"服務已停用"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"捷徑已停用"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"已開啟"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"已關閉"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"已關閉"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"已停用"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"已啟用"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"已停用"</string>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index fbea6d2..49d65c9 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -479,4 +479,12 @@
<item msgid="7025253383416830453">"Ngemuva komzuzu o-1"</item>
<item msgid="1574040255478150028">"Ngemuva kwemizuzu emi-5"</item>
</string-array>
+ <string-array name="power_anomaly_titles">
+ <item msgid="805430591383293145">"Vula ukukhanya okuguqukayo ukuze unwebe impilo yebhethri"</item>
+ <item msgid="2256666063790193306">"Nciphisa ukuphelelwa isikhathi kwesikrini ukuze unwebe impilo yebhethri"</item>
+ </string-array>
+ <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+ <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+ <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 530f40c..44144e3 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -199,6 +199,8 @@
<string name="terms_of_address_not_specified" msgid="4439257779351251973">"Akucacisiwe"</string>
<string name="terms_of_address_feminine" msgid="1743479869695539283">"Okwabesifazane"</string>
<string name="terms_of_address_masculine" msgid="983106046135098856">"Okwabesilisa"</string>
+ <!-- no translation found for terms_of_address_neutral (5475414185543112478) -->
+ <skip />
<string name="dlg_remove_locales_title" msgid="3170501604483612114">"{count,plural, =1{Sula ulimi olukhethiwe?}one{Sula izilimi ezikhethiwe?}other{Sula izilimi ezikhethiwe?}}"</string>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Umbhalo uzoboniswa ngolunye ulimi."</string>
<string name="dlg_remove_locales_error_title" msgid="5875503658221562572">"Ayikwazi ukususa zonke izilimi"</string>
@@ -388,6 +390,31 @@
<string name="security_settings_face_watch_preference_summary" msgid="5817376447253802793">"Ubuso ne-<xliff:g id="WATCH">%s</xliff:g> zingeziwe"</string>
<string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Ubuso, isigxivizo somunwe, ne-<xliff:g id="WATCH">%s</xliff:g> kungeziwe"</string>
<string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Ubuso, izigxivizo zomunwe, ne-<xliff:g id="WATCH">%s</xliff:g> kungeziwe"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_title" msgid="2151004795778999671">"Setha iwashi lakho"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_message" msgid="8737276885766036074">"Ukuvula Iwashi kungenye indlela elula yokuvula le foni, ngokwesibonelo, uma iminwe yakho imanzi noma ubuso bungabonakali.\n\nUngasebenzisa iwashi lakho ukuze uvule le foni uma:"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_disagree" msgid="7639258097401796028">"Hhayi manje"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_agree" msgid="5271119227172049339">"Qhubeka"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_more" msgid="1644105894631257595">"Okwengeziwe"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_how_title" msgid="6604152528267830349">"Indlela esebenza ngayo"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_lock_open" msgid="8570511335628725116">"Iwashi lakho kufanele livulwe, esihlakaleni sakho, futhi ufinyeleleke kalula kule foni. Ngeke kudingeke ukuthi uvule iwashi lakho futhi lapho lisesihlakaleni sakho."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_notifications" msgid="4298855831154039694">"Uma le foni ivuliwe, uzokwaziswa ewashini lakho. Uma beyivuliwe ngenkathi obungahlosile ngayo, thepha isaziso ukuze ukhiye ifoni futhi."</string>
+ <string name="security_settings_remoteauth_enroll_introduction_youre_in_control_title" msgid="7974976673323638524">"Uwena olawulayo"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_info_remove_watch" msgid="1888318677088986801">"Ungasusa iwashi lakho kokuthi Ukuvula Iwashi nganoma yisiphi isikhathi Kumasethingi"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_tap_notification" msgid="1597397399097952974">"Thepha isaziso"</string>
+ <string name="security_settings_remoteauth_enroll_introduction_animation_swipe_up" msgid="2129230804324634653">"Swayipha phezulu esikrini sokukhiya"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_title" msgid="313016997943607675">"Khetha iwashi lakho"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_list_heading" msgid="8227585438932911013">"Amawashi atholakalayo"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_disagree" msgid="1670201454188049863">"Khansela"</string>
+ <string name="security_settings_remoteauth_enroll_enrolling_agree" msgid="7048336252635730908">"Qinisekisa"</string>
+ <string name="security_settings_remoteauth_enroll_finish_title" msgid="3807372930755413112">"Usumi ngomumo!"</string>
+ <string name="security_settings_remoteauth_enroll_finish_description" msgid="4876209907275244653">"Manje usungasebenzisa iwashi lakho ukuze uvule le foni uma uswayiphela phezulu esikrinini sokukhiya noma uthepha isaziso"</string>
+ <string name="security_settings_remoteauth_enroll_finish_btn_next" msgid="8072138423143889592">"Kwenziwe"</string>
+ <string name="security_settings_remoteauth_settings_title" msgid="1564912618737165129">"Ukuvula Iwashi"</string>
+ <string name="security_settings_remoteauth_settings_description" msgid="2758239650119457964">"Ungasebenzisa iwashi lakho ukuze uvule le foni uma uswayiphela phezulu esikrinini sokukhiya noma uthephe isaziso"</string>
+ <string name="security_settings_remoteauth_settings_info_footer" msgid="795894033901478120">"Ukuze usebenzise Ukuvula Iwashi, iwashi lakho kufanele livulwe, esandleni sakho, endaweni ongalifinyelela kuyo, futhi lixhunywe kule foni. Uma ukuxhuma kuphazamiseka, kuzodingeka uvule ifoni ngaphambi kokuba usebenzise okuthi Ukuvula Iwashi.\n\nKhumbula:\nUngaba newashi elilodwa kuphela elisethiwe ngesikhathi esisodwa. Ukuze ufake elinye iwashi, qala ngokususa elamanje."</string>
+ <string name="security_settings_remoteauth_settings_learn_more" msgid="5653556124819260050">"Funda kabanzi mayelana Nokuvula Iwashi"</string>
+ <string name="security_settings_remoteauth_settings_register_new_authenticator" msgid="9191331738306527887">"Faka iwashi"</string>
+ <string name="security_settings_remoteauth_settings_remove_device" msgid="2436226120578851282">"Susa iwashi"</string>
<string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Isigxivizo somunwe Nokuvula Ngobuso"</string>
<string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Ukuvula Ngobuso Nangesigxivizo Somunwe emsebenzini"</string>
<string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Ukusetha kuyadingeka"</string>
@@ -651,6 +678,8 @@
<string name="bluetooth_enter_passkey_other_device" msgid="8270426446247344709">"Kungadingeka ufake lokhiye wokudlula kwenye idivayisi."</string>
<string name="bluetooth_paring_group_msg" msgid="4609515924670823316">"Qinisekisa ukuze ubhangqe nesethi ehlanganisiwe"</string>
<string name="bluetooth_pairing_shares_phonebook" msgid="4329325125260724843">"Vumela ukufinyelela koxhumana nabo nomlando wekholi"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_text" msgid="2474015367387690034">"Phinda futhi uvumele ukufinyelela koxhumana nabo nomlando wekholi"</string>
+ <string name="bluetooth_pairing_phonebook_toggle_details" msgid="1367197978487212581">"Ulwazi luzosetshenziselwa izimemezelo zekholi nokunye okwengeziwe"</string>
<string name="bluetooth_error_title" msgid="2284738188253690278"></string>
<string name="bluetooth_connecting_error_message" msgid="3941893154784152112">"Ayikwazanga ukuxhuma ku-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
<string name="bluetooth_preference_found_media_devices" msgid="830061195998352840">"Amadivayisi atholakalayo"</string>
@@ -812,7 +841,7 @@
<string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Yabelana nge-Wi‑Fi ngale divayisi…"</string>
<string name="wifi_dpp_connecting" msgid="2312769193202897589">"Iyaxhuma…"</string>
<string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Yabelana i-hotspot"</string>
- <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Qinisekisa ukuthi nguwe"</string>
+ <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Qinisekisa ukuthi unguwe"</string>
<string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Iphasiwedi ye-Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Iphasiwedi ye-hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
<string name="wifi_auto_connect_title" msgid="1890342051674657892">"Ukuxhumeka okuzenzakalelayo"</string>
@@ -852,7 +881,6 @@
<string name="wifi_not_in_range_message" msgid="3885327464037574739">"Inethiwekhi ayikho kubanga"</string>
<string name="wifi_forget" msgid="3485573280364015620">"Khohlwa"</string>
<string name="wifi_modify" msgid="5127926476383659412">"Lungisa"</string>
- <string name="wifi_failed_forget_message" msgid="8272732599235525880">"Yehlulekile ukukhohlwa inethiwekhi"</string>
<string name="wifi_save" msgid="2312643132472226807">"Londoloza"</string>
<string name="wifi_failed_save_message" msgid="1830279872341387120">"Yehlulekile ukulondoloza inethiwekhi"</string>
<string name="wifi_cancel" msgid="6698897376888935410">"Khansela"</string>
@@ -924,6 +952,12 @@
<string name="wifi_hotspot_speed_footer" msgid="8846939503916795002">"Uma imvamisa oyincamelayo ingatholakali, i-hotspot yakho ingase isebenzise ehlukile. Amasethingi okuphepha kwe-hotspot angashintsha uma ushintsha imvamisa."</string>
<string name="wifi_hotspot_security_summary_unavailable" msgid="117582979310345853">"Ayitholakali nge-6 GHz"</string>
<string name="wifi_hotspot_security_footer" msgid="4608329688744949796">"Amasethingi okuphepha angashintsha uma ushintsha imvamisa ye-hotspot"</string>
+ <!-- no translation found for wifi_hotspot_instant_title (7052526695338853703) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_on (3142749148673081288) -->
+ <skip />
+ <!-- no translation found for wifi_hotspot_instant_summary_off (8594065628453795615) -->
+ <skip />
<string name="wifi_tether_starting" msgid="8879874184033857814">"Ivula i-hotspot…"</string>
<string name="wifi_tether_stopping" msgid="4416492968019409188">"Ivala i-hotspot…"</string>
<string name="wifi_tether_carrier_unsupport_dialog_title" msgid="3089432578433978073">"Ukusebenzisa ifoni njengemodemu akutholakali"</string>
@@ -1450,10 +1484,10 @@
<string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ukhohlwe iphasiwedi yakho?"</string>
<string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ukhohlwe iphethini yakho?"</string>
<string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Ukhohlwe iphinikhodi yakho?"</string>
- <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Sebenzisa iphethini yakho yedivayisi ukuze uqhubeke"</string>
- <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Faka i-PIN yedivayisi yakho ukuze uqhubeke"</string>
- <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Faka iphasiwedi yedivayisi yakho ukuze uqhubeke"</string>
- <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Sebenzisa iphethini yakho yomsebenzi ukuze uqhubeke"</string>
+ <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dweba iphethini yakho ukuze uqhubeke"</string>
+ <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Faka Iphinikhodi yakho ukuze uqhubeke"</string>
+ <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Faka iphasiwedi yakho ukuze uqhubeke"</string>
+ <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dweba iphethini yakho yasemsebenzini ukuze uqhubeke"</string>
<string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Faka i-PIN yakho yomsebenzi ukuze uqhubeke"</string>
<string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Faka iphasiwedi yakho yomsebenzi ukuze uqhubeke"</string>
<string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Ngokuphepha okungeziwe, faka iphethini yedivayisi yakho"</string>
@@ -2129,7 +2163,7 @@
<string name="accessibility_service_default_description" msgid="7801435825448138526">"Akukho ncazelo enikeziwe."</string>
<string name="settings_button" msgid="2195468788019730377">"Izilungiselelo"</string>
<string name="keywords_reduce_bright_colors" msgid="1683190961013139183">"ukuzwela kokukhanya, ukwesaba izithombe, itimu emnyama, i-migraine, ikhanda elibuhlungu, imodi yokufunda, imodi yasebusuku, nciphisa ukukhanya, iphoyinti elimhlophe"</string>
- <string name="keywords_accessibility" msgid="4263443239404659143">"Ukusetshenziswa kalula, ukutholakala kalula, Umsizo, usizo"</string>
+ <string name="keywords_accessibility" msgid="8593989878379366798">"ukubuka, ukuzwa, impumputhe, isithuli, imoto, i-dexterity, okusizayo, usizo, ukusebenziseka kalula, ukufinyelela kalula, isandla, usizo"</string>
<string name="keywords_magnification" msgid="3908145308269840862">"Isikhulisi Sewindi, Sondeza, Ukukhuliswa, Amehlo aluvindi, Khulisa, yenza kube kukhulu"</string>
<string name="keywords_talkback" msgid="2816435437095102527"></string>
<string name="keywords_live_caption" msgid="1667203998080567556">"Amagama-ncazo, amazwibela avaliwe, i-CC, i-Live Transcribe, inkinga yokuzwa, ukulahleka kokuzwa, UBHASKIDI, inkulumo eya kumbhalo, umbhalo ongezansi"</string>
@@ -2144,10 +2178,13 @@
<string name="keywords_contrast" msgid="4668393735398949873">"ukungafani kombala"</string>
<string name="keywords_accessibility_menu" msgid="4300579436464706608"></string>
<string name="keywords_switch_access" msgid="5813094504384313402"></string>
- <string name="keywords_auto_click" msgid="7151756353013736931">"i-motor, igundwane"</string>
- <string name="keywords_hearing_aids" msgid="4550504337687223314">"imishini yendlebe, onenkinga yokuzwa, ukulahlekelwa ukuzwa, izifakelo ze-cochlear, amadivaysi okukhulisa umsindo, izicubunguli zomsindo"</string>
+ <string name="keywords_auto_click" msgid="6811744211216280998">"imoto, i-mouse, i-mouse yangaphandle, i-mouse eyinhloko, i-mouse evumelana, isihlalo sabakhubazekile, i-joystick"</string>
+ <string name="keywords_hearing_aids" msgid="4657889873249157071">"imishini yendlebe, onenkinga yokuzwa, ukulahlekelwa ukuzwa, izifakelo ze-cochlear, amadivaysi okukhulisa umsindo, izicubunguli zomsindo, i-PSAP"</string>
<string name="keywords_rtt" msgid="2429130928152514402">"onenkinga yokuzwa, ukulahlekelwa ukuzwa, amagama-ncazo, i-Teletype, i-tty"</string>
<string name="keywords_voice_access" msgid="7807335263195876454"></string>
+ <string name="keywords_3_button_navigation" msgid="436361965016404218">"izinkinobho ezintathu"</string>
+ <string name="keywords_touch_and_hold_delay" msgid="7854640156419599912">"i-dexterity, imoto, umuntu omdala, isifo samathambo, i-rsi, ukufa kohlangothi, idumbe, i-multiple sclerosis, i-cerebral palsy, ukuqhaqhazela, ukulimala kokucindezeleka okuphindayo, isandla"</string>
+ <string name="keywords_accessibility_timeout" msgid="8903766864902000346">"ukubambezeleka, i-dexterity, abantu abadala"</string>
<string name="print_settings" msgid="8519810615863882491">"Ukuphrinta"</string>
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Kuvaliwe"</string>
<string name="print_settings_summary" msgid="1458773840720811915">"{count,plural, =1{Isevisi e-1 yephrinta ivulekile}one{Amasevisi angu-# ephrinta avulekile}other{Amasevisi angu-# ephrinta avulekile}}"</string>
@@ -3796,7 +3833,6 @@
<string name="cell_data_warning" msgid="5664921950473359634">"<xliff:g id="ID_1">^1</xliff:g> isexwayiso sedatha"</string>
<string name="cell_data_limit" msgid="256855024790622112">"<xliff:g id="ID_1">^1</xliff:g> umkhawulo wedatha"</string>
<string name="cell_data_warning_and_limit" msgid="8393200831986035724">"<xliff:g id="ID_1">^1</xliff:g> isexwayiso sedatha / <xliff:g id="ID_2">^2</xliff:g> umkhawulo wedatha"</string>
- <string name="operator_warning" msgid="5672761970087591211">"Ukubalwa kwedatha yenkampani yenethiwekhi kungahluka kusuka ekubaleni kwedivayisi"</string>
<string name="non_carrier_data_usage_warning" msgid="4707184871368847697">"Ayifaki phakathi idatha esetshenziswe izinkampani zenethiwekhi"</string>
<string name="data_used_template" msgid="8229342096562327646">"<xliff:g id="ID_1">%1$s</xliff:g> okusetshenzisiwe"</string>
<string name="set_data_warning" msgid="1685771882794205462">"Setha isexwayiso sedatha"</string>
@@ -4095,7 +4131,7 @@
<string name="autofill_app" msgid="7595308061826307921">"Isevisi yokugcwalisa ngokuzenzekela"</string>
<string name="default_autofill_app" msgid="372234803718251606">"Isevisi yokugcwalisa okuzenzakalelayo"</string>
<string name="autofill_passwords" msgid="6708057251459761083">"Amaphasiwedi"</string>
- <string name="credman_chosen_app_title" msgid="4547405511458518096">"Amaphasiwedi, okhiye bokudlula namasevisi edatha"</string>
+ <string name="credman_chosen_app_title" msgid="872524130208251505">"Amaphasiwedi, okhiye bokudlula namasevisi edatha"</string>
<string name="credman_credentials" msgid="4931371941253324143">"Abahlinzeki abangeziwe"</string>
<string name="autofill_passwords_count" msgid="6359289285822955973">"{count,plural, =1{iphasiwedi e-#}one{amaphasiwedi angu-#}other{amaphasiwedi angu-#}}"</string>
<string name="autofill_keywords" msgid="8598763328489346438">"okuzenzakalelayo, gcwalisa, gcwalisa ngokuzenzakalelayo, iphasiwedi"</string>
@@ -4103,13 +4139,13 @@
<string name="credman_autofill_keywords" msgid="701180623776848914">"okuzenzakalelayo, gcwalisa, gcwalisa ngokuzenzakalelayo, idatha, ukhiye wokudlula, iphasiwedi"</string>
<string name="autofill_confirmation_message" msgid="4888767934273494272">"<b>Qiniseka ukuthi wethemba lolu hlelo lokusebenza</b> <br/> <br/> <xliff:g id=app_name example=Google Autofill>%1$s</xliff:g> isebenzisa okusesikrinini sakho ukunquma okungagcwaliswa ngokuzenzakalela."</string>
<string name="credman_autofill_confirmation_message" msgid="4951846866327737417">"<b>Sebenzisa i-<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> isebenzisa lokho okubhalwe esikrinini sakho ukuze inqume ukuthi yini engagcwaliswa ngokuzenzakalelayo. Amaphasiwedi amasha, okhiye bokufinyelela nolunye ulwazi luzolondolozwa lapha kusukela manje kuqhubeke."</string>
- <string name="credman_picker_title" msgid="2642776965060619988">"Amaphasiwedi, okhiye bokufinyelela namasevisi edatha"</string>
+ <string name="credman_picker_title" msgid="8191267620665129205">"Amaphasiwedi, okhiye bokudlula namasevisi edatha"</string>
<string name="credman_confirmation_message_title" msgid="8847900085593880729">"Vala i-%1$s?"</string>
<string name="credman_confirmation_message" msgid="2357324543658635239">"<b>Vala le sevisi?</b> <br/> <br/> Ulwazi olulondoloziwe olufana namaphasiwedi, okhiye bokudlula, izindlela zokukhokha, nolunye ulwazi ngeke lugcwaliswe lapho ungena ngemvume. Ukuze usebenzise ulwazi lwakho olulondoloziwe, khetha iphasiwedi, ukhiye wokudlula, noma isevisi yedatha."</string>
<string name="credman_enable_confirmation_message_title" msgid="1037501792652277829">"Isebenzisa i-%1$s?"</string>
<string name="credman_enable_confirmation_message" msgid="8407841892310870169">"I-%1$s isebenzisa okusesikrinini sakho ukuze inqume ukuthi yini engagcwaliswa ngokuzenzekela."</string>
- <string name="credman_error_message_title" msgid="4741457523969373713">"Amaphasiwedi, okhiye bokudlula nomkhawulo wamasevisi edatha"</string>
- <string name="credman_error_message" msgid="6793314648458925172">"Ungaba namaphasiwedi ama-5, okhiye bokudlula namasevisi edatha asebenzayo ngesikhathi esifanayo. Vala isevisi ukuze wengeze okwengeziwe."</string>
+ <string name="credman_error_message_title" msgid="4099557206946333568">"Amaphasiwedi, okhiye bokudlula nomkhawulo wamasevisi edatha"</string>
+ <string name="credman_error_message" msgid="8334797097200415449">"Ungaba namaphasiwedi afika kwama-5, okhiye bokudlula namasevisi edatha asebenzayo ngesikhathi esifanayo. Vala isevisi ukuze ufake okwengeziwe."</string>
<string name="credman_confirmation_message_positive_button" msgid="2812613187691345361">"Vala"</string>
<string name="debug_autofill_category" msgid="5998163555428196185">"Ukugcwalisa okuzenzakalelayo"</string>
<string name="autofill_logging_level_title" msgid="3733958845861098307">"Ileveli lokuloga"</string>
@@ -4673,6 +4709,14 @@
<string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Umsindo ovela kumidiya ehambisanayo uba ogxile kakhulu"</string>
<string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Ukulandelela ikhanda"</string>
<string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Umsindo uyashintsha njengoba uhambisa ikhanda lakho ukuze lizwakale ngokwemvelo"</string>
+ <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Uhlobo Lwedivayisi Yokulalelwayo"</string>
+ <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Akwaziwa"</string>
+ <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Isipikha"</string>
+ <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Ama-headphone"</string>
+ <!-- no translation found for bluetooth_details_audio_device_type_hearing_aid (1310631131071939859) -->
+ <skip />
+ <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Ikhithi Yemoto"</string>
+ <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Okunye"</string>
<string name="ingress_rate_limit_title" msgid="2106694002836274350">"Umkhawulo wesilinganiso sokudawuniloda kwenethiwekhi"</string>
<string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Lungiselela umkhawulo wezinga lokungena komkhawulokudonsa wenethiwekhi osetshenziswa kuwo wonke amanethiwekhi ahlinzeka ngoxhumano lwe-inthanethi."</string>
<string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Lungiselela umkhawulo wesilinganiso sokudawuniloda kwenethiwekhi"</string>
@@ -4751,10 +4795,9 @@
<string name="contrast_medium" msgid="384414510709285811">"Okuphakathi"</string>
<string name="contrast_high" msgid="3988567609694797696">"Phezulu"</string>
<string name="dock_multi_instances_not_supported_text" msgid="3513493664467667084">"Le-app ingavulwa kuphela ewindini eli-1."</string>
- <string name="accessibility_feature_full_state_summary" msgid="8747170258807179670">"<xliff:g id="STATE_0">%1$s</xliff:g> / <xliff:g id="SHORTCUT_STATE">%2$s</xliff:g> / <xliff:g id="SERVICE_SUMMARY">%3$s</xliff:g>"</string>
- <string name="generic_accessibility_service_on" msgid="2465820044606775562">"Isevisi ivuliwe"</string>
- <string name="generic_accessibility_service_off" msgid="1752061696695346360">"Isevisi ivaliwe"</string>
- <string name="generic_accessibility_feature_shortcut_off" msgid="3669343136122187913">"Isinqamuleli sivaliwe"</string>
+ <string name="generic_accessibility_service_on" msgid="4466229372357726824">"Ivuliwe"</string>
+ <string name="generic_accessibility_service_off" msgid="4759859497651675724">"Ivaliwe"</string>
+ <string name="generic_accessibility_feature_shortcut_off" msgid="4022872394514077907">"Ivaliwe"</string>
<string name="accessibility_shortcut_state_off" msgid="8158137799007601475">"Valiwe"</string>
<string name="daltonizer_state_on" msgid="131013270022603983">"Vuliwe"</string>
<string name="daltonizer_state_off" msgid="1162285688069856179">"Valiwe"</string>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 906d4ee..72e2e2f 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1409,25 +1409,30 @@
<integer-array name="network_mode_3g_deprecated_carrier_id" translatable="false">
</integer-array>
- <!-- The following 4 arrays are for power anomaly tips card. Please keep them the same size. -->
- <string-array name="power_anomaly_keys" translatable="false">
- <item>adaptive_brightness</item>
- <item>screen_timeout</item>
- </string-array>
-
+ <!-- The following 3 arrays are for power anomaly tips card. Please keep them the same size. -->
<string-array name="power_anomaly_titles">
<item>Turn on adaptive brightness to extend battery life</item>
<item>Reduce screen timeout to extend battery life</item>
</string-array>
- <string-array name="power_anomaly_main_btn_strings">
+ <string-array name="power_anomaly_main_btn_strings" translatable="false">
<item>@string/battery_tips_card_action_button</item>
<item>@string/battery_tips_card_action_button</item>
</string-array>
- <string-array name="power_anomaly_dismiss_btn_strings">
+ <string-array name="power_anomaly_dismiss_btn_strings" translatable="false">
<item>@string/battery_tips_card_dismiss_button</item>
<item>@string/battery_tips_card_dismiss_button</item>
</string-array>
+ <!-- A list of not supporting Terms of Address. [DO NOT TRANSLATE] -->
+ <string-array name="terms_of_address_unsupported_locale">
+ <item>fr-CA</item> <!-- French (Canada) -->
+ </string-array>
+
+ <!-- A list of supporting Terms of Address. [DO NOT TRANSLATE] -->
+ <string-array name="terms_of_address_supported_locale">
+ <item>en-XA</item> <!-- English (Pseudo-Accents) -->
+ <item>ar-XB</item> <!-- Arabic (Pseudo-Bidi) -->
+ </string-array>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index da9d71c..3703832 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -459,6 +459,8 @@
<string name="terms_of_address_feminine">Feminine</string>
<!-- The title of masculine of terms of address. [CHAR LIMIT=NONE] -->
<string name="terms_of_address_masculine">Masculine</string>
+ <!-- The title of neutral of terms of address. [CHAR LIMIT=NONE] -->
+ <string name="terms_of_address_neutral">Neutral</string>
<!-- The title of the confirmation dialog shown when the user selects one / several languages and tries to remove them [CHAR LIMIT=60] -->
<string name="dlg_remove_locales_title">{count, plural,
@@ -2179,6 +2181,13 @@
<!-- The footer message for Wi-Fi hotspot security settings [CHAR LIMIT=NONE] -->
<string name="wifi_hotspot_security_footer">Security settings may change if you change the hotspot’s frequency</string>
+ <!-- Title for the instant hotspot state [CHAR LIMIT=NONE]-->
+ <string name="wifi_hotspot_instant_title">Instant hotspot</string>
+ <!-- Summary text when instant hotspot is turned on -->
+ <string name="wifi_hotspot_instant_summary_on">On</string>
+ <!-- Summary text when instant hotspot is turned off -->
+ <string name="wifi_hotspot_instant_summary_off">Off</string>
+
<!-- Summary text when turning hotspot on -->
<string name="wifi_tether_starting">Turning hotspot on\u2026</string>
<!-- Summary text when turning hotspot off -->
@@ -9749,14 +9758,14 @@
<!-- Preference summary for battery usage list page[CHAR_LIMIT=50]-->
<string name="app_battery_usage_summary">Set battery usage for apps</string>
- <!-- Label of action button in battery tips card [CHAR LIMIT=NONE] -->
- <string name="battery_tips_card_action_button" translatable="false">View Settings</string>
+ <!-- Label of action button in battery tips card [CHAR LIMIT=50] -->
+ <string name="battery_tips_card_action_button">View Settings</string>
- <!-- Label of dismiss button in battery tips card [CHAR LIMIT=NONE] -->
- <string name="battery_tips_card_dismiss_button" translatable="false">Got it</string>
+ <!-- Label of dismiss button in battery tips card [CHAR LIMIT=50] -->
+ <string name="battery_tips_card_dismiss_button">Got it</string>
<!-- Feedback card message in battery tips card [CHAR LIMIT=NONE] -->
- <string name="battery_tips_card_feedback_info" translatable="false">Is this message helpful?</string>
+ <string name="battery_tips_card_feedback_info">Is this message helpful?</string>
<!-- Filter title for battery unrestricted[CHAR_LIMIT=50]-->
<string name="filter_battery_unrestricted_title">Unrestricted</string>
@@ -12096,12 +12105,14 @@
<!-- The title of the bluetooth audio device type selection [CHAR LIMIT=none] -->
<string name="bluetooth_details_audio_device_types_title">Audio Device Type</string>
- <!-- The audio device type corresponding to unknown selected [CHAR LIMIT=none] -->
+ <!-- The audio device type corresponding to unknown device type [CHAR LIMIT=none] -->
<string name="bluetooth_details_audio_device_type_unknown">Unknown</string>
- <!-- The audio device type corresponding to none selected [CHAR LIMIT=none] -->
- <string name="bluetooth_details_audio_device_type_speaker">Speaker</string>
<!-- The audio device type corresponding to speakers [CHAR LIMIT=none] -->
+ <string name="bluetooth_details_audio_device_type_speaker">Speaker</string>
+ <!-- The audio device type corresponding to headphones [CHAR LIMIT=none] -->
<string name="bluetooth_details_audio_device_type_headphones">Headphones</string>
+ <!-- The audio device type corresponding to hearing aid [CHAR LIMIT=none] -->
+ <string name="bluetooth_details_audio_device_type_hearing_aid">Hearing Aid</string>
<!-- The audio device type corresponding to car kit [CHAR LIMIT=none] -->
<string name="bluetooth_details_audio_device_type_carkit">Car Kit</string>
<!-- The audio device type corresponding to other device type [CHAR LIMIT=none] -->
diff --git a/res/xml/connected_devices_advanced.xml b/res/xml/connected_devices_advanced.xml
index 46d1a0a..11e3288 100644
--- a/res/xml/connected_devices_advanced.xml
+++ b/res/xml/connected_devices_advanced.xml
@@ -33,7 +33,9 @@
android:icon="@drawable/ic_nfc"
android:order="-7"
settings:searchable="false"
- settings:controller="com.android.settings.connecteddevice.NfcAndPaymentFragmentController"/>
+ settings:controller="com.android.settings.connecteddevice.NfcAndPaymentFragmentController"
+ settings:userRestriction="no_near_field_communication_radio"
+ settings:useAdminDisabledSummary="true"/>
<Preference
android:fragment="com.android.settings.wfd.WifiDisplaySettings"
diff --git a/res/xml/wifi_tether_settings.xml b/res/xml/wifi_tether_settings.xml
index a85d9ea..b8b810f 100644
--- a/res/xml/wifi_tether_settings.xml
+++ b/res/xml/wifi_tether_settings.xml
@@ -59,4 +59,10 @@
android:summary="@string/summary_placeholder"
android:fragment="com.android.settings.wifi.tether.WifiHotspotSpeedSettings"
settings:isPreferenceVisible="@bool/config_show_wifi_hotspot_speed"/>
+
+ <Preference
+ android:key="wifi_hotspot_instant"
+ android:title="@string/wifi_hotspot_instant_title"
+ android:summary="@string/summary_placeholder"
+ settings:isPreferenceVisible="false"/>
</PreferenceScreen>
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index dda5b24..1ebf805 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -16,9 +16,6 @@
package com.android.settings;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PASSWORD;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PATTERN;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PIN;
import static android.content.Intent.EXTRA_USER;
import static android.content.Intent.EXTRA_USER_ID;
import static android.text.format.DateUtils.FORMAT_ABBREV_MONTH;
@@ -66,7 +63,6 @@
import android.os.Binder;
import android.os.Build;
import android.os.Bundle;
-import android.os.Environment;
import android.os.IBinder;
import android.os.INetworkManagementService;
import android.os.RemoteException;
@@ -791,36 +787,15 @@
@Nullable public static String getConfirmCredentialStringForUser(@NonNull Context context,
int userId, @LockPatternUtils.CredentialType int credentialType) {
final int effectiveUserId = UserManager.get(context).getCredentialOwnerProfile(userId);
- final boolean isEffectiveUserManagedProfile = UserManager.get(context)
- .isManagedProfile(effectiveUserId);
- final DevicePolicyManager devicePolicyManager = context
- .getSystemService(DevicePolicyManager.class);
+ if (UserManager.get(context).isManagedProfile(effectiveUserId)) {
+ return null;
+ }
switch (credentialType) {
case LockPatternUtils.CREDENTIAL_TYPE_PIN:
- if (isEffectiveUserManagedProfile) {
- return devicePolicyManager.getResources().getString(WORK_PROFILE_CONFIRM_PIN,
- () -> context.getString(
- R.string.lockpassword_confirm_your_pin_generic_profile));
- }
-
return context.getString(R.string.lockpassword_confirm_your_pin_generic);
case LockPatternUtils.CREDENTIAL_TYPE_PATTERN:
- if (isEffectiveUserManagedProfile) {
- return devicePolicyManager.getResources().getString(
- WORK_PROFILE_CONFIRM_PATTERN,
- () -> context.getString(
- R.string.lockpassword_confirm_your_pattern_generic_profile));
- }
-
return context.getString(R.string.lockpassword_confirm_your_pattern_generic);
case LockPatternUtils.CREDENTIAL_TYPE_PASSWORD:
- if (isEffectiveUserManagedProfile) {
- return devicePolicyManager.getResources().getString(
- WORK_PROFILE_CONFIRM_PASSWORD,
- () -> context.getString(
- R.string.lockpassword_confirm_your_password_generic_profile));
- }
-
return context.getString(R.string.lockpassword_confirm_your_password_generic);
}
return null;
@@ -1354,14 +1329,4 @@
return dreamsSupported && (!dreamsOnlyEnabledForDockUser || canCurrentUserDream(context));
}
- /**
- * Get private total size directly.
- * Referred from StorageManager
- */
- public static long getPrimaryStorageSize() {
- // TODO(b/288103116): remove this method once support by StorageManager.
- return Environment.getDataDirectory().getTotalSpace()
- + Environment.getRootDirectory().getTotalSpace();
- }
-
}
diff --git a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
index f137584..ae1adfa 100644
--- a/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
+++ b/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceController.java
@@ -28,6 +28,7 @@
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
+import android.os.UserHandle;
import android.provider.Settings;
import androidx.annotation.NonNull;
@@ -81,7 +82,7 @@
if (getPreferenceKey().equals(preference.getKey())) {
Intent intent = new Intent(ACTION_FLASH_NOTIFICATION_START_PREVIEW);
intent.putExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_TYPE, TYPE_SHORT_PREVIEW);
- mContext.sendBroadcast(intent);
+ mContext.sendBroadcastAsUser(intent, UserHandle.SYSTEM);
return true;
}
diff --git a/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java b/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java
index 71e4a21..cd2f6f0 100644
--- a/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java
+++ b/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceController.java
@@ -73,6 +73,6 @@
}
private void setAudioParameterHacEnabled(boolean enabled) {
- mAudioManager.setParameters(HAC_KEY + "=" + (enabled ? HAC_VAL_ON : HAC_VAL_OFF));
+ mAudioManager.setParameters(HAC_KEY + "=" + (enabled ? HAC_VAL_ON : HAC_VAL_OFF) + ";");
}
}
diff --git a/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java b/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
index 9683966..ca77f16 100644
--- a/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
+++ b/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragment.java
@@ -27,6 +27,7 @@
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
+import android.os.UserHandle;
import android.view.View;
import androidx.annotation.ColorInt;
@@ -41,6 +42,7 @@
import java.util.TimerTask;
import java.util.function.Consumer;
+
/**
* DialogFragment for Screen flash notification color picker.
*/
@@ -166,14 +168,14 @@
Intent intent = new Intent(ACTION_FLASH_NOTIFICATION_START_PREVIEW);
intent.putExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_TYPE, TYPE_LONG_PREVIEW);
intent.putExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_COLOR, mCurrentColor);
- getContext().sendBroadcast(intent);
+ getContext().sendBroadcastAsUser(intent, UserHandle.SYSTEM);
}
private void stopPreviewLocked() {
if (getContext() == null) return;
Intent stopIntent = new Intent(ACTION_FLASH_NOTIFICATION_STOP_PREVIEW);
- getContext().sendBroadcast(stopIntent);
+ getContext().sendBroadcastAsUser(stopIntent, UserHandle.SYSTEM);
mIsPreview = false;
}
diff --git a/src/com/android/settings/accounts/AccountHeaderPreferenceController.java b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java
index 11fcaff..b466d2b 100644
--- a/src/com/android/settings/accounts/AccountHeaderPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java
@@ -95,6 +95,6 @@
.newInstance(mActivity, mHost, mHeaderPreference.findViewById(R.id.entity_header))
.setLabel(mAccount.name)
.setIcon(helper.getDrawableForType(mContext, mAccount.type))
- .done(mActivity, true /* rebindButtons */);
+ .done(true /* rebindButtons */);
}
}
diff --git a/src/com/android/settings/accounts/AccountSyncSettings.java b/src/com/android/settings/accounts/AccountSyncSettings.java
index 83f89d8..80056a8 100644
--- a/src/com/android/settings/accounts/AccountSyncSettings.java
+++ b/src/com/android/settings/accounts/AccountSyncSettings.java
@@ -140,11 +140,10 @@
final Activity activity = getActivity();
final Preference pref = EntityHeaderController
.newInstance(activity, this, null /* header */)
- .setRecyclerView(getListView(), getSettingsLifecycle())
.setIcon(getDrawableForType(mAccount.type))
.setLabel(mAccount.name)
.setSummary(getLabelForType(mAccount.type))
- .done(activity, getPrefContext());
+ .done(getPrefContext());
pref.setOrder(0);
getPreferenceScreen().addPreference(pref);
if (savedInstanceState != null && savedInstanceState.containsKey(UID_REQUEST_KEY)) {
diff --git a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
index b8ebf61..cdb35b4 100644
--- a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
+++ b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
@@ -34,19 +34,17 @@
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
-import android.widget.Button;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
+import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settings.widget.RestrictedButton;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.widget.LayoutPreference;
@@ -64,6 +62,7 @@
private Fragment mParentFragment;
private UserHandle mUserHandle;
private LayoutPreference mRemoveAccountPreference;
+ private RestrictedButton mRemoveAccountButton;
public RemoveAccountPreferenceController(Context context, Fragment parent) {
super(context);
@@ -75,8 +74,14 @@
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
mRemoveAccountPreference = screen.findPreference(KEY_REMOVE_ACCOUNT);
- final Button removeAccountButton = mRemoveAccountPreference.findViewById(R.id.button);
- removeAccountButton.setOnClickListener(this);
+ mRemoveAccountButton = mRemoveAccountPreference.findViewById(R.id.button);
+ mRemoveAccountButton.setOnClickListener(this);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ mRemoveAccountButton.updateState();
}
@Override
@@ -93,21 +98,13 @@
public void onClick(View v) {
mMetricsFeatureProvider.logClickedPreference(mRemoveAccountPreference,
mMetricsFeatureProvider.getMetricsCategory(mParentFragment));
- if (mUserHandle != null) {
- final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
- mContext, UserManager.DISALLOW_MODIFY_ACCOUNTS, mUserHandle.getIdentifier());
- if (admin != null) {
- RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, admin);
- return;
- }
- }
-
ConfirmRemoveAccountDialog.show(mParentFragment, mAccount, mUserHandle);
}
public void init(Account account, UserHandle userHandle) {
mAccount = account;
mUserHandle = userHandle;
+ mRemoveAccountButton.init(mUserHandle, UserManager.DISALLOW_MODIFY_ACCOUNTS);
}
/**
diff --git a/src/com/android/settings/applications/AppInfoWithHeader.java b/src/com/android/settings/applications/AppInfoWithHeader.java
index 7bf9f64..8645628 100644
--- a/src/com/android/settings/applications/AppInfoWithHeader.java
+++ b/src/com/android/settings/applications/AppInfoWithHeader.java
@@ -46,7 +46,6 @@
final Activity activity = getActivity();
final Preference pref = EntityHeaderController
.newInstance(activity, this, null /* header */)
- .setRecyclerView(getListView(), getSettingsLifecycle())
.setIcon(Utils.getBadgedIcon(getContext(), mPackageInfo.applicationInfo))
.setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
.setSummary(mPackageInfo)
@@ -55,7 +54,7 @@
.setUid(mPackageInfo.applicationInfo.uid)
.setHasAppInfoLink(true)
.setButtonActions(ActionType.ACTION_NONE, ActionType.ACTION_NONE)
- .done(activity, getPrefContext());
+ .done(getPrefContext());
getPreferenceScreen().addPreference(pref);
}
}
diff --git a/src/com/android/settings/applications/ProcessStatsDetail.java b/src/com/android/settings/applications/ProcessStatsDetail.java
index 266c195..de21a46 100644
--- a/src/com/android/settings/applications/ProcessStatsDetail.java
+++ b/src/com/android/settings/applications/ProcessStatsDetail.java
@@ -129,7 +129,6 @@
final Activity activity = getActivity();
final Preference pref = EntityHeaderController
.newInstance(activity, this, null /* appHeader */)
- .setRecyclerView(getListView(), getSettingsLifecycle())
.setIcon(mApp.mUiTargetApp != null
? IconDrawableFactory.newInstance(activity).getBadgedIcon(mApp.mUiTargetApp)
: new ColorDrawable(0))
@@ -140,7 +139,7 @@
: UserHandle.USER_NULL)
.setHasAppInfoLink(true)
.setButtonActions(ActionType.ACTION_NONE, ActionType.ACTION_NONE)
- .done(activity, getPrefContext());
+ .done(getPrefContext());
getPreferenceScreen().addPreference(pref);
}
diff --git a/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
index 285493a..5542087 100644
--- a/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
@@ -66,7 +66,6 @@
final Activity activity = mParent.getActivity();
mEntityHeaderController = EntityHeaderController
.newInstance(activity, mParent, mHeader.findViewById(R.id.entity_header))
- .setRecyclerView(mParent.getListView(), mLifecycle)
.setPackageName(mPackageName)
.setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
EntityHeaderController.ActionType.ACTION_NONE)
@@ -86,6 +85,6 @@
.setLabel(appEntry)
.setIcon(appEntry)
.setIsInstantApp(isInstantApp)
- .done(activity, false /* rebindActions */);
+ .done(false /* rebindActions */);
}
}
diff --git a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
index 6144a73..1e7ca1e 100644
--- a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
+++ b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
@@ -137,7 +137,6 @@
final Activity activity = getActivity();
final Preference pref = EntityHeaderController
.newInstance(activity, this, null /* header */)
- .setRecyclerView(getListView(), getSettingsLifecycle())
.setIcon(Utils.getBadgedIcon(getContext(), mApplicationInfo))
.setLabel(mApplicationInfo.loadLabel(getContext().getPackageManager()))
.setIsInstantApp(AppUtils.isInstant(mApplicationInfo))
@@ -146,7 +145,7 @@
.setHasAppInfoLink(true)
.setButtonActions(ActionType.ACTION_NONE, ActionType.ACTION_NONE)
.setOrder(10)
- .done(activity, getPrefContext());
+ .done(getPrefContext());
getPreferenceScreen().addPreference(pref);
}
diff --git a/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java b/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
index cc662aa..cebb4f7 100644
--- a/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
+++ b/src/com/android/settings/applications/intentpicker/AppLaunchSettings.java
@@ -200,7 +200,6 @@
final String summary = activity.getString(R.string.app_launch_top_intro_message);
final Preference pref = EntityHeaderController
.newInstance(activity, this, null /* header */)
- .setRecyclerView(getListView(), getSettingsLifecycle())
.setIcon(Utils.getBadgedIcon(mContext, mPackageInfo.applicationInfo))
.setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
.setSummary(summary) // add intro text
@@ -210,7 +209,7 @@
.setHasAppInfoLink(true)
.setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
EntityHeaderController.ActionType.ACTION_NONE)
- .done(activity, getPrefContext());
+ .done(getPrefContext());
getPreferenceScreen().addPreference(pref);
}
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java b/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java
index 8ccf7ed..b636264 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java
@@ -109,7 +109,6 @@
mHeaderController = EntityHeaderController.newInstance(
mFragment.getActivity(), mFragment, pref.findViewById(R.id.entity_header));
pref = mHeaderController
- .setRecyclerView(mFragment.getListView(), mFragment.getSettingsLifecycle())
.setIcon(IconDrawableFactory.newInstance(mFragment.getActivity())
.getBadgedIcon(mPackageInfo.applicationInfo))
.setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
@@ -122,7 +121,7 @@
.setHasAppInfoLink(true)
.setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
EntityHeaderController.ActionType.ACTION_NONE)
- .done(mFragment.getActivity(), mContext);
+ .done(mContext);
pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
}
}
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
index 739de6b..797364b 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
@@ -30,6 +30,7 @@
import android.widget.Button;
import android.widget.Toast;
+import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import com.android.settings.R;
@@ -57,10 +58,18 @@
static final String KEY = "security_settings_face_delete_faces_container";
public static class ConfirmRemoveDialog extends InstrumentedDialogFragment {
-
- private boolean mIsConvenience;
+ private static final String KEY_IS_CONVENIENCE = "is_convenience";
private DialogInterface.OnClickListener mOnClickListener;
+ /** Returns the new instance of the class */
+ public static ConfirmRemoveDialog newInstance(boolean isConvenience) {
+ final ConfirmRemoveDialog dialog = new ConfirmRemoveDialog();
+ final Bundle args = new Bundle();
+ args.putBoolean(KEY_IS_CONVENIENCE, isConvenience);
+ dialog.setArguments(args);
+ return dialog;
+ }
+
@Override
public int getMetricsCategory() {
return SettingsEnums.DIALOG_FACE_REMOVE;
@@ -68,6 +77,8 @@
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
+ boolean isConvenience = getArguments().getBoolean(KEY_IS_CONVENIENCE);
+
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final PackageManager pm = getContext().getPackageManager();
@@ -75,11 +86,11 @@
final int dialogMessageRes;
if (hasFingerprint) {
- dialogMessageRes = mIsConvenience
+ dialogMessageRes = isConvenience
? R.string.security_settings_face_remove_dialog_details_fingerprint_conv
: R.string.security_settings_face_remove_dialog_details_fingerprint;
} else {
- dialogMessageRes = mIsConvenience
+ dialogMessageRes = isConvenience
? R.string.security_settings_face_settings_remove_dialog_details_convenience
: R.string.security_settings_face_settings_remove_dialog_details;
}
@@ -93,10 +104,6 @@
return dialog;
}
- public void setIsConvenience(boolean isConvenience) {
- mIsConvenience = isConvenience;
- }
-
public void setOnClickListener(DialogInterface.OnClickListener listener) {
mOnClickListener = listener;
}
@@ -111,7 +118,8 @@
private Listener mListener;
private SettingsActivity mActivity;
private int mUserId;
- private boolean mRemoving;
+ @VisibleForTesting
+ boolean mRemoving;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private final Context mContext;
@@ -142,7 +150,7 @@
}
};
- private final DialogInterface.OnClickListener mOnClickListener
+ private final DialogInterface.OnClickListener mOnConfirmDialogClickListener
= new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
@@ -196,6 +204,16 @@
mButton.setOnClickListener(this);
+ // If there is already a ConfirmRemoveDialog showing, reset the listener since the
+ // controller has been recreated.
+ ConfirmRemoveDialog removeDialog =
+ (ConfirmRemoveDialog) mActivity.getSupportFragmentManager()
+ .findFragmentByTag(ConfirmRemoveDialog.class.getName());
+ if (removeDialog != null) {
+ mRemoving = true;
+ removeDialog.setOnClickListener(mOnConfirmDialogClickListener);
+ }
+
if (!FaceSettings.isFaceHardwareDetected(mContext)) {
mButton.setEnabled(false);
} else {
@@ -218,10 +236,11 @@
if (v == mButton) {
mMetricsFeatureProvider.logClickedPreference(mPreference, getMetricsCategory());
mRemoving = true;
- ConfirmRemoveDialog dialog = new ConfirmRemoveDialog();
- dialog.setOnClickListener(mOnClickListener);
- dialog.setIsConvenience(BiometricUtils.isConvenience(mFaceManager));
- dialog.show(mActivity.getSupportFragmentManager(), ConfirmRemoveDialog.class.getName());
+ ConfirmRemoveDialog confirmRemoveDialog =
+ ConfirmRemoveDialog.newInstance(BiometricUtils.isConvenience(mFaceManager));
+ confirmRemoveDialog.setOnClickListener(mOnConfirmDialogClickListener);
+ confirmRemoveDialog.show(mActivity.getSupportFragmentManager(),
+ ConfirmRemoveDialog.class.getName());
}
}
diff --git a/src/com/android/settings/biometrics/fingerprint2/OWNERS b/src/com/android/settings/biometrics/fingerprint2/OWNERS
new file mode 100644
index 0000000..c58a06d
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/OWNERS
@@ -0,0 +1,3 @@
+# Owners for Biometric Fingerprint
+joshmccloskey@google.com
+jbolinger@google.com
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint2/README.md b/src/com/android/settings/biometrics/fingerprint2/README.md
new file mode 100644
index 0000000..4a99a2b
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/README.md
@@ -0,0 +1,10 @@
+### Fingerprint Settings Enrollment
+
+#### Flows
+
+* FingerprintSettings (ui.settings.fragment.FingerprintSettingsV2Fragment)
+* FingerprintEnrollment (ui.enrollment.activity.FingerprintEnrollmentV2Activity)
+
+#### Style
+
+* Please use [kfmt](https://plugins.jetbrains.com/plugin/14912-ktfmt)
\ No newline at end of file
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractor.kt
index 2fbdedf..e7c458d 100644
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractor.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/FingerprintManagerInteractor.kt
@@ -25,8 +25,8 @@
import android.os.CancellationSignal
import android.util.Log
import com.android.settings.biometrics.GatekeeperPasswordProvider
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import com.android.settings.password.ChooseLockSettingsHelper
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt
similarity index 86%
rename from src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintViewModel.kt
rename to src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt
index 1df0e34..36bdf8d 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/shared/model/FingerprintViewModel.kt
@@ -14,7 +14,9 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
+package com.android.settings.biometrics.fingerprint2.shared.model
+
+import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
/** Represents the fingerprint data nad the relevant state. */
data class FingerprintStateViewModel(
@@ -23,6 +25,7 @@
val maxFingerprints: Int,
val hasSideFps: Boolean,
val pressToAuth: Boolean,
+ val sensorProps: FingerprintSensorPropertiesInternal,
)
data class FingerprintViewModel(
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/README.md b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/README.md
new file mode 100644
index 0000000..8469f59
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/README.md
@@ -0,0 +1,23 @@
+### Fingerprint Settings Enrollment
+
+#### Entry Points (To FingerprintEnrollment)
+
+* FingerprintSettings (which launches the below intent)
+* Intent -> ".biometrics.fingerprint2.ui.enrollment.activity.FingerprintEnrollmentV2Activity")
+
+#### General Architecture
+
+The code should follow the MVVM architecture.
+
+**In addition, one activity (FingerprintEnrollmentV2Activity) should**
+
+* Control a list of fragments which correspond to enrollment steps
+* Be responsible for navigation events between fragments
+* Be responsible for navigation events to other activities if need be (
+ ConfirmDeviceCredentialActivity)
+* Be the controller of the viewmodels
+
+#### Style
+
+* Please use [kfmt](https://plugins.jetbrains.com/plugin/14912-ktfmt)
+
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt
new file mode 100644
index 0000000..d497d46
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt
@@ -0,0 +1,259 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.activity
+
+import android.annotation.ColorInt
+import android.app.Activity
+import android.content.Intent
+import android.content.res.ColorStateList
+import android.graphics.Color
+import android.hardware.fingerprint.FingerprintManager
+import android.os.Bundle
+import android.provider.Settings
+import android.util.Log
+import androidx.activity.result.contract.ActivityResultContracts
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import com.android.internal.widget.LockPatternUtils
+import com.android.settings.R
+import com.android.settings.SetupWizardUtils
+import com.android.settings.Utils
+import com.android.settings.Utils.SETTINGS_PACKAGE_NAME
+import com.android.settings.biometrics.BiometricEnrollBase
+import com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST
+import com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED
+import com.android.settings.biometrics.GatekeeperPasswordProvider
+import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollConfirmationV2Fragment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollEnrollingV2Fragment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollFindSensorV2Fragment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollmentIntroV2Fragment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Confirmation
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Education
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Enrollment
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Finish
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Intro
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.LaunchConfirmDeviceCredential
+import com.android.settings.password.ChooseLockGeneric
+import com.android.settings.password.ChooseLockSettingsHelper
+import com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE
+import com.google.android.setupdesign.util.ThemeHelper
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.launch
+
+private const val TAG = "FingerprintEnrollmentV2Activity"
+
+/**
+ * This is the activity that controls the entire Fingerprint Enrollment experience through its
+ * children fragments.
+ */
+class FingerprintEnrollmentV2Activity : FragmentActivity() {
+ private lateinit var navigationViewModel: FingerprintEnrollmentNavigationViewModel
+ private lateinit var gatekeeperViewModel: FingerprintGatekeeperViewModel
+ private val coroutineDispatcher = Dispatchers.Default
+
+ /** Result listener for ChooseLock activity flow. */
+ private val confirmDeviceResultListener =
+ registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
+ val resultCode = result.resultCode
+ val data = result.data
+ onConfirmDevice(resultCode, data)
+ }
+
+ override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+ super.onActivityResult(requestCode, resultCode, data)
+ if (requestCode == CONFIRM_REQUEST) {
+ onConfirmDevice(resultCode, data)
+ }
+ }
+
+ override fun onAttachedToWindow() {
+ window.statusBarColor = getBackgroundColor()
+ super.onAttachedToWindow()
+ }
+
+ @ColorInt
+ private fun getBackgroundColor(): Int {
+ val stateList: ColorStateList? =
+ Utils.getColorAttr(applicationContext, android.R.attr.windowBackground)
+ return stateList?.defaultColor ?: Color.TRANSPARENT
+ }
+
+ private fun onConfirmDevice(resultCode: Int, data: Intent?) {
+ val wasSuccessful = resultCode == RESULT_FINISHED || resultCode == Activity.RESULT_OK
+ val gateKeeperPasswordHandle = data?.getExtra(EXTRA_KEY_GK_PW_HANDLE) as Long?
+ lifecycleScope.launch {
+ gatekeeperViewModel.onConfirmDevice(wasSuccessful, gateKeeperPasswordHandle)
+ }
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.fingerprint_v2_enroll_main)
+
+ setTheme(SetupWizardUtils.getTheme(applicationContext, intent))
+ ThemeHelper.trySetDynamicColor(applicationContext)
+
+ val backgroundDispatcher = Dispatchers.IO
+
+ val context = applicationContext
+ val fingerprintManager = context.getSystemService(FINGERPRINT_SERVICE) as FingerprintManager
+
+ val interactor =
+ FingerprintManagerInteractorImpl(
+ context,
+ backgroundDispatcher,
+ fingerprintManager,
+ GatekeeperPasswordProvider(LockPatternUtils(context))
+ ) {
+ var toReturn: Int =
+ Settings.Secure.getIntForUser(
+ context.contentResolver,
+ Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED,
+ -1,
+ context.userId,
+ )
+ if (toReturn == -1) {
+ toReturn =
+ if (
+ context.resources.getBoolean(com.android.internal.R.bool.config_performantAuthDefault)
+ ) {
+ 1
+ } else {
+ 0
+ }
+ Settings.Secure.putIntForUser(
+ context.contentResolver,
+ Settings.Secure.SFPS_PERFORMANT_AUTH_ENABLED,
+ toReturn,
+ context.userId
+ )
+ }
+ toReturn == 1
+ }
+
+ var challenge: Long? = intent.getExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE) as Long?
+ val token = intent.getByteArrayExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN)
+ val gatekeeperInfo = FingerprintGatekeeperViewModel.toGateKeeperInfo(challenge, token)
+
+ gatekeeperViewModel =
+ ViewModelProvider(
+ this,
+ FingerprintGatekeeperViewModel.FingerprintGatekeeperViewModelFactory(
+ gatekeeperInfo,
+ interactor,
+ )
+ )[FingerprintGatekeeperViewModel::class.java]
+
+ navigationViewModel =
+ ViewModelProvider(
+ this,
+ FingerprintEnrollmentNavigationViewModel.FingerprintEnrollmentNavigationViewModelFactory(
+ backgroundDispatcher,
+ interactor,
+ gatekeeperViewModel,
+ gatekeeperInfo is GatekeeperInfo.GatekeeperPasswordInfo, /* canSkipConfirm */
+ )
+ )[FingerprintEnrollmentNavigationViewModel::class.java]
+
+ // Initialize FingerprintViewModel
+ ViewModelProvider(this, FingerprintViewModel.FingerprintViewModelFactory(interactor))[
+ FingerprintViewModel::class.java]
+
+ // Initialize scroll view model
+ ViewModelProvider(this, FingerprintScrollViewModel.FingerprintScrollViewModelFactory())[
+ FingerprintScrollViewModel::class.java]
+
+ lifecycleScope.launch {
+ navigationViewModel.navigationViewModel.filterNotNull().collect {
+ Log.d(TAG, "navigationStep $it")
+ val isForward = it.forward
+ val currStep = it.currStep
+ val theClass: Class<Fragment>? =
+ when (currStep) {
+ Confirmation -> FingerprintEnrollConfirmationV2Fragment::class.java as Class<Fragment>
+ Education -> FingerprintEnrollFindSensorV2Fragment::class.java as Class<Fragment>
+ Enrollment -> FingerprintEnrollEnrollingV2Fragment::class.java as Class<Fragment>
+ Intro -> FingerprintEnrollmentIntroV2Fragment::class.java as Class<Fragment>
+ else -> null
+ }
+
+ if (theClass != null) {
+ supportFragmentManager
+ .beginTransaction()
+ .setReorderingAllowed(true)
+ .add(R.id.fragment_container_view, theClass, null)
+ .commit()
+ } else {
+
+ if (currStep is Finish) {
+ if (currStep.resultCode != null) {
+ finishActivity(currStep.resultCode)
+ } else {
+ finish()
+ }
+ } else if (currStep == LaunchConfirmDeviceCredential) {
+ launchConfirmOrChooseLock(userId)
+ }
+ }
+ }
+ }
+
+ val fromSettingsSummary =
+ intent.getBooleanExtra(BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY, false)
+ if (
+ fromSettingsSummary && GatekeeperPasswordProvider.containsGatekeeperPasswordHandle(intent)
+ ) {
+ overridePendingTransition(
+ com.google.android.setupdesign.R.anim.sud_slide_next_in,
+ com.google.android.setupdesign.R.anim.sud_slide_next_out
+ )
+ }
+ }
+
+ private fun launchConfirmOrChooseLock(userId: Int) {
+ val activity = this
+ lifecycleScope.launch(coroutineDispatcher) {
+ val intent = Intent()
+ val builder = ChooseLockSettingsHelper.Builder(activity)
+ val launched =
+ builder
+ .setRequestCode(CONFIRM_REQUEST)
+ .setTitle(getString(R.string.security_settings_fingerprint_preference_title))
+ .setRequestGatekeeperPasswordHandle(true)
+ .setUserId(userId)
+ .setForegroundOnly(true)
+ .setReturnCredentials(true)
+ .show()
+ if (!launched) {
+ intent.setClassName(SETTINGS_PACKAGE_NAME, ChooseLockGeneric::class.java.name)
+ intent.putExtra(ChooseLockGeneric.ChooseLockGenericFragment.HIDE_INSECURE_OPTIONS, true)
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_REQUEST_GK_PW_HANDLE, true)
+ intent.putExtra(Intent.EXTRA_USER_ID, userId)
+ confirmDeviceResultListener.launch(intent)
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt
new file mode 100644
index 0000000..df4cf72
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollConfirmationV2Fragment.kt
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
+
+/**
+ * A fragment to indicate that fingerprint enrollment has been completed.
+ *
+ * This page will display basic information about what a fingerprint can be used for and acts as the
+ * final step of enrollment.
+ */
+class FingerprintEnrollConfirmationV2Fragment : Fragment() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ if (savedInstanceState == null) {
+ val navigationViewModel =
+ ViewModelProvider(requireActivity())[FingerprintEnrollmentNavigationViewModel::class.java]
+ }
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt
new file mode 100644
index 0000000..915aa1f
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollEnrollingV2Fragment.kt
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
+
+/** A fragment that is responsible for enrolling a users fingerprint. */
+class FingerprintEnrollEnrollingV2Fragment : Fragment() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ if (savedInstanceState == null) {
+ val navigationViewModel =
+ ViewModelProvider(requireActivity())[FingerprintEnrollmentNavigationViewModel::class.java]
+ }
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt
new file mode 100644
index 0000000..e9e1db2
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollFindSensorV2Fragment.kt
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment
+
+import android.os.Bundle
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
+
+/**
+ * A fragment that is used to educate the user about the fingerprint sensor on this device.
+ *
+ * The main goals of this page are
+ * 1. Inform the user where the fingerprint sensor is on their device
+ * 2. Explain to the user how the enrollment process shown by [FingerprintEnrollEnrollingV2Fragment]
+ * will work.
+ */
+class FingerprintEnrollFindSensorV2Fragment : Fragment(R.layout.fingerprint_v2_enroll_find_sensor) {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ if (savedInstanceState == null) {
+ val navigationViewModel =
+ ViewModelProvider(requireActivity())[FingerprintEnrollmentNavigationViewModel::class.java]
+ }
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollmentIntroV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollmentIntroV2Fragment.kt
new file mode 100644
index 0000000..c7fcb66
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollmentIntroV2Fragment.kt
@@ -0,0 +1,290 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment
+
+import android.annotation.NonNull
+import android.annotation.StringRes
+import android.graphics.Color
+import android.graphics.PorterDuff
+import android.graphics.PorterDuffColorFilter
+import android.hardware.fingerprint.FingerprintSensorProperties
+import android.os.Bundle
+import android.text.Html
+import android.text.method.LinkMovementMethod
+import android.util.Log
+import android.view.View
+import android.widget.ImageView
+import android.widget.ScrollView
+import android.widget.TextView
+import androidx.fragment.app.Fragment
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import com.android.settings.R
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollmentNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.Unicorn
+import com.google.android.setupcompat.template.FooterBarMixin
+import com.google.android.setupcompat.template.FooterButton
+import com.google.android.setupdesign.GlifLayout
+import com.google.android.setupdesign.template.RequireScrollMixin
+import com.google.android.setupdesign.util.DynamicColorPalette
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.launch
+
+private const val TAG = "FingerprintEnrollmentIntroV2Fragment"
+
+/** This class represents the customizable text for FingerprintEnrollIntroduction. */
+private data class TextModel(
+ @StringRes val footerMessageTwo: Int,
+ @StringRes val footerMessageThree: Int,
+ @StringRes val footerMessageFour: Int,
+ @StringRes val footerMessageFive: Int,
+ @StringRes val footerMessageSix: Int,
+ @StringRes val negativeButton: Int,
+ @StringRes val footerTitleOne: Int,
+ @StringRes val footerTitleTwo: Int,
+ @StringRes val headerText: Int,
+ @StringRes val descriptionText: Int,
+)
+
+/**
+ * The introduction fragment that is used to inform the user the basics of what a fingerprint sensor
+ * is and how it will be used.
+ *
+ * The main gaols of this page are
+ * 1. Inform the user what the fingerprint sensor is and does
+ * 2. How the data will be stored
+ * 3. How the user can access and remove their data
+ */
+class FingerprintEnrollmentIntroV2Fragment : Fragment(R.layout.fingerprint_v2_enroll_introduction) {
+ private lateinit var footerBarMixin: FooterBarMixin
+ private lateinit var textModel: TextModel
+ private lateinit var navigationViewModel: FingerprintEnrollmentNavigationViewModel
+ private lateinit var fingerprintStateViewModel: FingerprintViewModel
+ private lateinit var fingerprintScrollViewModel: FingerprintScrollViewModel
+ private lateinit var gateKeeperViewModel: FingerprintGatekeeperViewModel
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ navigationViewModel =
+ ViewModelProvider(requireActivity())[FingerprintEnrollmentNavigationViewModel::class.java]
+ fingerprintStateViewModel =
+ ViewModelProvider(requireActivity())[FingerprintViewModel::class.java]
+ fingerprintScrollViewModel =
+ ViewModelProvider(requireActivity())[FingerprintScrollViewModel::class.java]
+ gateKeeperViewModel =
+ ViewModelProvider(requireActivity())[FingerprintGatekeeperViewModel::class.java]
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ lifecycleScope.launch {
+ combine(
+ navigationViewModel.enrollType,
+ fingerprintStateViewModel.fingerprintStateViewModel,
+ ) { enrollType, fingerprintStateViewModel ->
+ Pair(enrollType, fingerprintStateViewModel)
+ }
+ .collect { (enrollType, fingerprintStateViewModel) ->
+ val sensorProps = fingerprintStateViewModel?.sensorProps
+
+ textModel =
+ when (enrollType) {
+ Unicorn -> getUnicornTextModel()
+ else -> getNormalTextModel()
+ }
+
+ setupFooterBarAndScrollView(view)
+
+ if (savedInstanceState == null) {
+ getLayout()?.setHeaderText(textModel.headerText)
+ getLayout()?.setDescriptionText(textModel.descriptionText)
+
+ // Set color filter for the following icons.
+ val colorFilter = getIconColorFilter()
+ listOf(
+ R.id.icon_fingerprint,
+ R.id.icon_device_locked,
+ R.id.icon_trash_can,
+ R.id.icon_info,
+ R.id.icon_shield,
+ R.id.icon_link
+ )
+ .forEach { icon ->
+ view.requireViewById<ImageView>(icon).drawable.colorFilter = colorFilter
+ }
+
+ // Set the text for the footer text views.
+ listOf(
+ R.id.footer_message_2 to textModel.footerMessageTwo,
+ R.id.footer_message_3 to textModel.footerMessageThree,
+ R.id.footer_message_4 to textModel.footerMessageFour,
+ R.id.footer_message_5 to textModel.footerMessageFive,
+ R.id.footer_message_6 to textModel.footerMessageSix,
+ )
+ .forEach { pair -> view.requireViewById<TextView>(pair.first).setText(pair.second) }
+
+ setFooterLink(view)
+
+ val iconShield: ImageView = view.requireViewById(R.id.icon_shield)
+ val footerMessage6: TextView = view.requireViewById(R.id.footer_message_6)
+ when (sensorProps?.sensorType) {
+ FingerprintSensorProperties.TYPE_UDFPS_ULTRASONIC,
+ FingerprintSensorProperties.TYPE_UDFPS_OPTICAL -> {
+ footerMessage6.visibility = View.VISIBLE
+ iconShield.visibility = View.VISIBLE
+ }
+ else -> {
+ footerMessage6.visibility = View.GONE
+ iconShield.visibility = View.GONE
+ }
+ }
+
+ view.requireViewById<TextView?>(R.id.footer_title_1).setText(textModel.footerTitleOne)
+ view.requireViewById<TextView?>(R.id.footer_title_2).setText(textModel.footerTitleOne)
+ }
+ }
+ }
+ }
+
+ private fun setFooterLink(view: View) {
+ val footerLink: TextView = view.requireViewById(R.id.footer_learn_more)
+ footerLink.movementMethod = LinkMovementMethod.getInstance()
+ footerLink.text =
+ Html.fromHtml(
+ getString(R.string.security_settings_fingerprint_v2_enroll_introduction_message_learn_more),
+ Html.FROM_HTML_MODE_LEGACY
+ )
+ }
+
+ private fun setupFooterBarAndScrollView(
+ view: View,
+ ) {
+ val scrollView: ScrollView =
+ view.requireViewById(com.google.android.setupdesign.R.id.sud_scroll_view)
+ scrollView.importantForAccessibility = View.IMPORTANT_FOR_ACCESSIBILITY_YES
+ // Next button responsible for starting the next fragment.
+ val onNextButtonClick: View.OnClickListener =
+ View.OnClickListener { Log.d(TAG, "OnNextClicked") }
+
+ val layout: GlifLayout = requireActivity().requireViewById(R.id.setup_wizard_layout)
+ footerBarMixin = layout.getMixin(FooterBarMixin::class.java)
+ footerBarMixin.primaryButton =
+ FooterButton.Builder(requireActivity())
+ .setText(R.string.security_settings_face_enroll_introduction_more)
+ .setListener(onNextButtonClick)
+ .setButtonType(FooterButton.ButtonType.OPT_IN)
+ .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+ .build()
+ footerBarMixin.setSecondaryButton(
+ FooterButton.Builder(requireActivity())
+ .setText(textModel.negativeButton)
+ .setListener({ Log.d(TAG, "prevClicked") })
+ .setButtonType(FooterButton.ButtonType.NEXT)
+ .setTheme(com.google.android.setupdesign.R.style.SudGlifButton_Primary)
+ .build(),
+ true /* usePrimaryStyle */
+ )
+
+ val primaryButton = footerBarMixin.primaryButton
+ val secondaryButton = footerBarMixin.secondaryButton
+
+ secondaryButton.visibility = View.INVISIBLE
+
+ val requireScrollMixin = layout.getMixin(RequireScrollMixin::class.java)
+ requireScrollMixin.requireScrollWithButton(
+ requireActivity(),
+ footerBarMixin.primaryButton,
+ R.string.security_settings_face_enroll_introduction_more,
+ onNextButtonClick
+ )
+
+ requireScrollMixin.setOnRequireScrollStateChangedListener { scrollNeeded: Boolean ->
+ // Show secondary button once scroll is completed.
+ if (!scrollNeeded) {
+ fingerprintScrollViewModel.userConsented()
+ }
+ }
+
+ lifecycleScope.launch {
+ fingerprintScrollViewModel.hasReadConsentScreen.collect { consented ->
+ if (consented) {
+ primaryButton.setText(
+ requireContext(),
+ R.string.security_settings_fingerprint_enroll_introduction_agree
+ )
+ secondaryButton.visibility = View.VISIBLE
+ } else {
+ secondaryButton.visibility = View.INVISIBLE
+ }
+ }
+ }
+
+ footerBarMixin.getButtonContainer()?.setBackgroundColor(Color.TRANSPARENT)
+
+ // I think I should remove this, and make the challenge a pre-requisite of launching
+ // the flow. For instance if someone launches the activity with an invalid challenge, it
+ // either 1) Fails or 2) Launched confirmDeviceCredential
+ primaryButton.isEnabled = false
+ lifecycleScope.launch {
+ gateKeeperViewModel.hasValidGatekeeperInfo.collect { primaryButton.isEnabled = it }
+ }
+ }
+
+ private fun getNormalTextModel() =
+ TextModel(
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_2,
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_3,
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_4,
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_5,
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_6,
+ R.string.security_settings_fingerprint_enroll_introduction_no_thanks,
+ R.string.security_settings_fingerprint_enroll_introduction_footer_title_1,
+ R.string.security_settings_fingerprint_enroll_introduction_footer_title_2,
+ R.string.security_settings_fingerprint_enroll_introduction_title,
+ R.string.security_settings_fingerprint_enroll_introduction_v3_message,
+ )
+
+ private fun getUnicornTextModel() =
+ TextModel(
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_2,
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_3,
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_4,
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_5,
+ R.string.security_settings_fingerprint_v2_enroll_introduction_footer_message_consent_6,
+ R.string.security_settings_fingerprint_enroll_introduction_no_thanks,
+ R.string.security_settings_fingerprint_enroll_introduction_footer_title_consent_1,
+ R.string.security_settings_fingerprint_enroll_introduction_footer_title_2,
+ R.string.security_settings_fingerprint_enroll_consent_introduction_title,
+ R.string.security_settings_fingerprint_enroll_introduction_v3_message,
+ )
+
+ @NonNull
+ private fun getIconColorFilter(): PorterDuffColorFilter {
+ return PorterDuffColorFilter(
+ DynamicColorPalette.getColor(context, DynamicColorPalette.ColorType.ACCENT),
+ PorterDuff.Mode.SRC_IN
+ )
+ }
+
+ private fun getLayout(): GlifLayout? {
+ return requireView().findViewById(R.id.setup_wizard_layout) as GlifLayout?
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllmentNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllmentNavigationViewModel.kt
new file mode 100644
index 0000000..6a8a8c4
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrolllmentNavigationViewModel.kt
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import android.util.Log
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
+import kotlinx.coroutines.CoroutineDispatcher
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.filterNotNull
+import kotlinx.coroutines.flow.update
+import kotlinx.coroutines.launch
+
+const val TAG = "FingerprintEnrollmentNavigationViewModel"
+
+/** Interface to validate a gatekeeper hat */
+interface Validator {
+ fun validateGateKeeper(challenge: Long?): Boolean
+}
+
+/**
+ * The [EnrollType] for fingerprint enrollment indicates information on how the flow should behave.
+ */
+sealed class EnrollType()
+
+/** The default enrollment experience, typically called from Settings */
+object Default : EnrollType()
+
+/** SetupWizard/Out of box experience (OOBE) enrollment type. */
+object SetupWizard : EnrollType()
+
+/** Unicorn enrollment type */
+object Unicorn : EnrollType()
+
+/**
+ * This class is responsible for sending a [NavigationStep] which indicates where the user is in the
+ * Fingerprint Enrollment flow
+ */
+class FingerprintEnrollmentNavigationViewModel(
+ private val dispatcher: CoroutineDispatcher,
+ private val validator: Validator,
+ private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+ private val gatekeeperViewModel: FingerprintGatekeeperViewModel,
+ private val canSkipConfirm: Boolean
+) : ViewModel() {
+
+ private class InternalNavigationStep(
+ lastStep: NextStepViewModel,
+ nextStep: NextStepViewModel,
+ forward: Boolean,
+ var canNavigate: Boolean
+ ) : NavigationStep(lastStep, nextStep, forward)
+
+ private var _enrollType = MutableStateFlow<EnrollType?>(Default)
+
+ /** A flow that indicates the [EnrollType] */
+ val enrollType: Flow<EnrollType?> = _enrollType.asStateFlow()
+
+ private var navState = NavState(canSkipConfirm)
+
+ private val _navigationStep =
+ MutableStateFlow(
+ InternalNavigationStep(
+ PlaceHolderState,
+ Start.next(navState),
+ forward = false,
+ canNavigate = true
+ )
+ )
+
+ init {
+ viewModelScope.launch {
+ gatekeeperViewModel.credentialConfirmed.filterNotNull().collect {
+ if (_navigationStep.value.currStep is LaunchConfirmDeviceCredential) {
+ if (it) nextStep() else finish()
+ }
+ }
+ }
+ }
+
+ /**
+ * A flow that contains the [NavigationStep] used to indicate where in the enrollment process the
+ * user is.
+ */
+ val navigationViewModel: Flow<NavigationStep> = _navigationStep.asStateFlow()
+
+ /** Used to start the next step of Fingerprint Enrollment. */
+ fun nextStep() {
+ viewModelScope.launch {
+ val currStep = _navigationStep.value.currStep
+ val nextStep = currStep.next(navState)
+ Log.d(TAG, "nextStep(${currStep} -> $nextStep)")
+ _navigationStep.update {
+ InternalNavigationStep(currStep, nextStep, forward = true, canNavigate = false)
+ }
+ }
+ }
+
+ /** Go back a step of fingerprint enrollment. */
+ fun prevStep() {
+ viewModelScope.launch {
+ val currStep = _navigationStep.value.currStep
+ val nextStep = currStep.prev(navState)
+ _navigationStep.update {
+ InternalNavigationStep(currStep, nextStep, forward = false, canNavigate = false)
+ }
+ }
+ }
+
+ private fun finish() {
+ _navigationStep.update {
+ InternalNavigationStep(Finish(null), Finish(null), forward = false, canNavigate = false)
+ }
+ }
+
+ class FingerprintEnrollmentNavigationViewModelFactory(
+ private val backgroundDispatcher: CoroutineDispatcher,
+ private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+ private val fingerprintGatekeeperViewModel: FingerprintGatekeeperViewModel,
+ private val canSkipConfirm: Boolean,
+ ) : ViewModelProvider.Factory {
+
+ @Suppress("UNCHECKED_CAST")
+ override fun <T : ViewModel> create(
+ modelClass: Class<T>,
+ ): T {
+
+ return FingerprintEnrollmentNavigationViewModel(
+ backgroundDispatcher,
+ object : Validator {
+ override fun validateGateKeeper(challenge: Long?): Boolean {
+ return challenge != null
+ }
+ },
+ fingerprintManagerInteractor,
+ fingerprintGatekeeperViewModel,
+ canSkipConfirm,
+ )
+ as T
+ }
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt
new file mode 100644
index 0000000..5486e7a
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintGatekeeperViewModel.kt
@@ -0,0 +1,124 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import android.os.CountDownTimer
+import android.util.Log
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.update
+import kotlinx.coroutines.launch
+
+sealed interface GatekeeperInfo {
+ object Invalid : GatekeeperInfo
+ object Timeout : GatekeeperInfo
+ data class GatekeeperPasswordInfo(val token: ByteArray?, val passwordHandle: Long?) :
+ GatekeeperInfo
+}
+
+/**
+ * This class is responsible for maintaining the gatekeeper information including things like
+ * timeouts.
+ *
+ * Please note, that this class can't fully support timeouts of the gatekeeper password handle due
+ * to the fact that a handle may have been generated earlier in the settings enrollment and passed
+ * in as a parameter to this class.
+ */
+class FingerprintGatekeeperViewModel(
+ theGatekeeperInfo: GatekeeperInfo?,
+ private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+) : ViewModel() {
+
+ private var _gatekeeperInfo: MutableStateFlow<GatekeeperInfo?> =
+ MutableStateFlow(theGatekeeperInfo)
+
+ /** The gatekeeper info for fingerprint enrollment. */
+ val gatekeeperInfo: Flow<GatekeeperInfo?> = _gatekeeperInfo.asStateFlow()
+
+ /** Indicates if the gatekeeper info is valid. */
+ val hasValidGatekeeperInfo: Flow<Boolean> =
+ gatekeeperInfo.map { it is GatekeeperInfo.GatekeeperPasswordInfo }
+
+ private var _credentialConfirmed: MutableStateFlow<Boolean?> = MutableStateFlow(null)
+ val credentialConfirmed: Flow<Boolean?> = _credentialConfirmed.asStateFlow()
+
+ private var countDownTimer: CountDownTimer? = null
+
+ /** Timeout of 15 minutes for a generated challenge */
+ private val TIMEOUT: Long = 15 * 60 * 1000
+
+ /** Called after a confirm device credential attempt has been made. */
+ fun onConfirmDevice(wasSuccessful: Boolean, theGatekeeperPasswordHandle: Long?) {
+ if (!wasSuccessful) {
+ Log.d(TAG, "confirmDevice failed")
+ _gatekeeperInfo.update { GatekeeperInfo.Invalid }
+ _credentialConfirmed.update { false }
+ } else {
+ viewModelScope.launch {
+ val res = fingerprintManagerInteractor.generateChallenge(theGatekeeperPasswordHandle!!)
+ _gatekeeperInfo.update { GatekeeperInfo.GatekeeperPasswordInfo(res.second, res.first) }
+ _credentialConfirmed.update { true }
+ startTimeout()
+ }
+ }
+ }
+
+ private fun startTimeout() {
+ countDownTimer?.cancel()
+ countDownTimer =
+ object : CountDownTimer(TIMEOUT, 1000) {
+ override fun onFinish() {
+ _gatekeeperInfo.update { GatekeeperInfo.Timeout }
+ }
+
+ override fun onTick(millisUntilFinished: Long) {}
+ }
+ }
+
+ companion object {
+ /**
+ * A function that checks if the challenge and token are valid, in which case a
+ * [GatekeeperInfo.GatekeeperPasswordInfo] is provided, else [GatekeeperInfo.Invalid]
+ */
+ fun toGateKeeperInfo(challenge: Long?, token: ByteArray?): GatekeeperInfo {
+ Log.d(TAG, "toGateKeeperInfo(${challenge == null}, ${token == null})")
+ if (challenge == null || token == null) {
+ return GatekeeperInfo.Invalid
+ }
+ return GatekeeperInfo.GatekeeperPasswordInfo(token, challenge)
+ }
+ }
+
+ class FingerprintGatekeeperViewModelFactory(
+ private val gatekeeperInfo: GatekeeperInfo?,
+ private val fingerprintManagerInteractor: FingerprintManagerInteractor,
+ ) : ViewModelProvider.Factory {
+
+ @Suppress("UNCHECKED_CAST")
+ override fun <T : ViewModel> create(
+ modelClass: Class<T>,
+ ): T {
+ return FingerprintGatekeeperViewModel(gatekeeperInfo, fingerprintManagerInteractor) as T
+ }
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.kt
new file mode 100644
index 0000000..d79d9c0
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintScrollViewModel.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.update
+
+/** This class is responsible for ensuring a users consent to use FingerprintEnrollment. */
+class FingerprintScrollViewModel : ViewModel() {
+
+ private val _hasReadConsentScreen: MutableStateFlow<Boolean> = MutableStateFlow(false)
+ /** Indicates if a user has consented to FingerprintEnrollment */
+ val hasReadConsentScreen: Flow<Boolean> = _hasReadConsentScreen.asStateFlow()
+
+ /** Indicates that a user has consented to FingerprintEnrollment */
+ fun userConsented() {
+ _hasReadConsentScreen.update { true }
+ }
+
+ class FingerprintScrollViewModelFactory() : ViewModelProvider.Factory {
+
+ @Suppress("UNCHECKED_CAST")
+ override fun <T : ViewModel> create(
+ modelClass: Class<T>,
+ ): T {
+ return FingerprintScrollViewModel() as T
+ }
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintStateViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintStateViewModel.kt
new file mode 100644
index 0000000..20e3a0a
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintStateViewModel.kt
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+import androidx.lifecycle.ViewModel
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.viewModelScope
+import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintStateViewModel
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.asStateFlow
+import kotlinx.coroutines.flow.last
+import kotlinx.coroutines.flow.update
+import kotlinx.coroutines.launch
+
+/** Represents all of the fingerprint information needed for fingerprint enrollment. */
+class FingerprintViewModel(fingerprintManagerInteractor: FingerprintManagerInteractor) :
+ ViewModel() {
+
+ private val _fingerprintViewModel: MutableStateFlow<FingerprintStateViewModel?> =
+ MutableStateFlow(null)
+
+ /**
+ * A flow that contains a [FingerprintStateViewModel] which contains the relevant information for
+ * enrollment
+ */
+ val fingerprintStateViewModel: Flow<FingerprintStateViewModel?> =
+ _fingerprintViewModel.asStateFlow()
+
+ init {
+ viewModelScope.launch {
+ val enrolledFingerprints =
+ fingerprintManagerInteractor.enrolledFingerprints.last().map {
+ com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel(
+ it.name,
+ it.fingerId,
+ it.deviceId
+ )
+ }
+ val sensorProps = fingerprintManagerInteractor.sensorPropertiesInternal().first()
+ val maxFingerprints = 5
+ _fingerprintViewModel.update {
+ FingerprintStateViewModel(
+ enrolledFingerprints,
+ enrolledFingerprints.size < maxFingerprints,
+ maxFingerprints,
+ sensorProps.isAnySidefpsType,
+ false,
+ sensorProps,
+ )
+ }
+ }
+ }
+
+ class FingerprintViewModelFactory(val interactor: FingerprintManagerInteractor) :
+ ViewModelProvider.Factory {
+
+ @Suppress("UNCHECKED_CAST")
+ override fun <T : ViewModel> create(
+ modelClass: Class<T>,
+ ): T {
+
+ return FingerprintViewModel(interactor) as T
+ }
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt
new file mode 100644
index 0000000..e99b8f9
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/NextStepViewModel.kt
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel
+
+/**
+ * A class that represents an action that the consumer should transition between lastStep and
+ * currStep and in what direction this transition is occurring (e.g. forward or backwards)
+ */
+open class NavigationStep(
+ val lastStep: NextStepViewModel,
+ val currStep: NextStepViewModel,
+ val forward: Boolean
+) {
+ override fun toString(): String {
+ return "lastStep=$lastStep, currStep=$currStep, forward=$forward"
+ }
+}
+
+/** The navigation state used by a [NavStep] to determine what the [NextStepViewModel] should be. */
+class NavState(val confirmedDevice: Boolean)
+
+interface NavStep<T> {
+ fun next(state: NavState): T
+ fun prev(state: NavState): T
+}
+
+/**
+ * A class to represent a high level step (I.E. EnrollmentIntroduction) for FingerprintEnrollment.
+ */
+sealed class NextStepViewModel : NavStep<NextStepViewModel>
+
+/**
+ * This is the initial state for the previous step, used to indicate that there have been no
+ * previous states.
+ */
+object PlaceHolderState : NextStepViewModel() {
+ override fun next(state: NavState): NextStepViewModel = Finish(null)
+
+ override fun prev(state: NavState): NextStepViewModel = Finish(null)
+}
+
+/**
+ * This state is the initial state for the current step, and will be used to determine if the user
+ * needs to [LaunchConfirmDeviceCredential] if not, it will go to [Intro]
+ */
+object Start : NextStepViewModel() {
+ override fun next(state: NavState): NextStepViewModel =
+ if (state.confirmedDevice) Intro else LaunchConfirmDeviceCredential
+
+ override fun prev(state: NavState): NextStepViewModel = Finish(null)
+}
+
+/** State indicating enrollment has been completed */
+class Finish(val resultCode: Int?) : NextStepViewModel() {
+ override fun next(state: NavState): NextStepViewModel = Finish(resultCode)
+ override fun prev(state: NavState): NextStepViewModel = Finish(null)
+}
+
+/** State for the FingerprintEnrollment introduction */
+object Intro : NextStepViewModel() {
+ override fun next(state: NavState): NextStepViewModel = Education
+ override fun prev(state: NavState): NextStepViewModel = Finish(null)
+}
+
+/** State for the FingerprintEnrollment education */
+object Education : NextStepViewModel() {
+ override fun next(state: NavState): NextStepViewModel = Enrollment
+ override fun prev(state: NavState): NextStepViewModel = Intro
+}
+
+/** State for the FingerprintEnrollment enrollment */
+object Enrollment : NextStepViewModel() {
+ override fun next(state: NavState): NextStepViewModel = Confirmation
+ override fun prev(state: NavState): NextStepViewModel = Education
+}
+
+/** State for the FingerprintEnrollment confirmation */
+object Confirmation : NextStepViewModel() {
+ override fun next(state: NavState): NextStepViewModel = Finish(0)
+ override fun prev(state: NavState): NextStepViewModel = Intro
+}
+
+/**
+ * State used to send the user to the ConfirmDeviceCredential activity. This activity can either
+ * confirm a users device credential, or have them create one.
+ */
+object LaunchConfirmDeviceCredential : NextStepViewModel() {
+ override fun next(state: NavState): NextStepViewModel = Intro
+ override fun prev(state: NavState): NextStepViewModel = Finish(0)
+}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/settings/README.md b/src/com/android/settings/biometrics/fingerprint2/ui/settings/README.md
new file mode 100644
index 0000000..461ffc2
--- /dev/null
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/README.md
@@ -0,0 +1,17 @@
+### Fingerprint Settings Enrollment
+
+#### Entry Point (For Fingerprint Settings)
+
+* [SecuritySettings] (https://cs.android.com/android/platform/superproject/+/master:packages/apps/Settings/src/com/android/settings/security/SecuritySettings.java;l=40?q=SecuritySettings)
+
+#### General Architecture
+
+The code should follow the MVVM architecture.
+
+The FingerprintSettingsV2Fragment is responsible for most of the heavy lifting. It should coordinate
+navigation events, maintain the viewmodels, and launch new activities if need be.
+
+#### Style
+
+* Please use [kfmt](https://plugins.jetbrains.com/plugin/14912-ktfmt)
+
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/binder/FingerprintSettingsViewBinder.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
similarity index 81%
rename from src/com/android/settings/biometrics/fingerprint2/ui/binder/FingerprintSettingsViewBinder.kt
rename to src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
index d9f3e43..6a44630 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/binder/FingerprintSettingsViewBinder.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/binder/FingerprintSettingsViewBinder.kt
@@ -14,25 +14,25 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.binder
+package com.android.settings.biometrics.fingerprint2.ui.settings.binder
import android.hardware.fingerprint.FingerprintManager
import android.util.Log
import androidx.lifecycle.LifecycleCoroutineScope
-import com.android.settings.biometrics.fingerprint2.ui.binder.FingerprintSettingsViewBinder.FingerprintView
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollAdditionalFingerprint
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollFirstFingerprint
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintStateViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettings
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettingsWithResult
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchConfirmDeviceCredential
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchedActivity
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.PreferenceViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.ShowSettings
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintStateViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder.FingerprintView
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollAdditionalFingerprint
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollFirstFingerprint
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettings
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettingsWithResult
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchConfirmDeviceCredential
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchedActivity
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.ShowSettings
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.collectLatest
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintDeletionDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
similarity index 96%
rename from src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintDeletionDialog.kt
rename to src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
index 42e2047..32b50c5 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintDeletionDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintDeletionDialog.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.fragment
+package com.android.settings.biometrics.fingerprint2.ui.settings.fragment
import android.app.Dialog
import android.app.admin.DevicePolicyManager
@@ -26,7 +26,7 @@
import android.os.UserManager
import androidx.appcompat.app.AlertDialog
import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
import kotlin.coroutines.resume
import kotlinx.coroutines.suspendCancellableCoroutine
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsPreference.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt
similarity index 95%
rename from src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsPreference.kt
rename to src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt
index e12785d..b1e5097 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsPreference.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsPreference.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.fragment
+package com.android.settings.biometrics.fingerprint2.ui.settings.fragment
import android.content.Context
import android.util.Log
@@ -22,7 +22,7 @@
import androidx.lifecycle.lifecycleScope
import androidx.preference.PreferenceViewHolder
import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import com.android.settingslib.widget.TwoTargetPreference
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
similarity index 96%
rename from src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt
rename to src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
index 9542ed8..84f33ff 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsRenameDialog.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsRenameDialog.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.fragment
+package com.android.settings.biometrics.fingerprint2.ui.settings.fragment
import android.app.Dialog
import android.app.settings.SettingsEnums
@@ -27,7 +27,7 @@
import android.widget.ImeAwareEditText
import androidx.appcompat.app.AlertDialog
import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
import kotlin.coroutines.resume
import kotlinx.coroutines.suspendCancellableCoroutine
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
similarity index 96%
rename from src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsV2Fragment.kt
rename to src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
index b82f7c1..7dcf46a 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/fragment/FingerprintSettingsV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/fragment/FingerprintSettingsV2Fragment.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.fragment
+package com.android.settings.biometrics.fingerprint2.ui.settings.fragment
import android.app.Activity
import android.app.admin.DevicePolicyManager
@@ -26,7 +26,6 @@
import android.os.Bundle
import android.provider.Settings.Secure
import android.text.TextUtils
-import android.util.FeatureFlagUtils
import android.util.Log
import android.view.View
import android.widget.Toast
@@ -47,12 +46,12 @@
import com.android.settings.biometrics.fingerprint.FingerprintEnrollEnrolling
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroductionInternal
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
-import com.android.settings.biometrics.fingerprint2.ui.binder.FingerprintSettingsViewBinder
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintStateViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintStateViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.binder.FingerprintSettingsViewBinder
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
import com.android.settings.core.SettingsBaseActivity
import com.android.settings.core.instrumentation.InstrumentedDialogFragment
import com.android.settings.dashboard.DashboardFragment
@@ -164,6 +163,7 @@
Log.d(TAG, "onCreate()")
}
+ /*
if (
!FeatureFlagUtils.isEnabled(
context,
@@ -175,6 +175,8 @@
return
}
+ */
+
val context = requireContext()
val userId = context.userId
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsNavigationViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
similarity index 98%
rename from src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsNavigationViewModel.kt
rename to src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
index a638806..538bb6d 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsNavigationViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsNavigationViewModel.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
+package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
import android.hardware.fingerprint.FingerprintManager
import androidx.lifecycle.ViewModel
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
similarity index 95%
rename from src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsViewModel.kt
rename to src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
index 0bae075..fbd0f1d 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/FingerprintSettingsViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/FingerprintSettingsViewModel.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
+package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
import android.hardware.fingerprint.FingerprintManager
import android.hardware.fingerprint.FingerprintSensorProperties
@@ -24,6 +24,9 @@
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.viewModelScope
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintStateViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableSharedFlow
@@ -270,7 +273,8 @@
canEnrollFingerprint,
maxFingerprints,
hasSideFps,
- pressToAuthEnabled
+ pressToAuthEnabled,
+ fingerprintManagerInteractor.sensorPropertiesInternal().first(),
)
}
}
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/NextStepViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.kt
similarity index 94%
rename from src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/NextStepViewModel.kt
rename to src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.kt
index f9dbbff..d9155b6 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/NextStepViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/NextStepViewModel.kt
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
+package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
/**
* A class to represent a high level step for FingerprintSettings. This is typically to perform an
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/PreferenceViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
similarity index 84%
rename from src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/PreferenceViewModel.kt
rename to src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
index 05764a2..4c33f7f 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/viewmodel/PreferenceViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/settings/viewmodel/PreferenceViewModel.kt
@@ -14,7 +14,9 @@
* limitations under the License.
*/
-package com.android.settings.biometrics.fingerprint2.ui.viewmodel
+package com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel
+
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
/** Classed use to represent a Dialogs state. */
sealed class PreferenceViewModel {
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java b/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
index ba5f465..fe0d141 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsAudioDeviceTypeController.java
@@ -19,6 +19,7 @@
import static android.bluetooth.BluetoothDevice.DEVICE_TYPE_LE;
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_CARKIT;
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_HEADPHONES;
+import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_HEARING_AID;
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_OTHER;
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_SPEAKER;
import static android.media.AudioManager.AUDIO_DEVICE_CATEGORY_UNKNOWN;
@@ -149,6 +150,7 @@
mContext.getString(R.string.bluetooth_details_audio_device_type_speaker),
mContext.getString(R.string.bluetooth_details_audio_device_type_headphones),
mContext.getString(R.string.bluetooth_details_audio_device_type_carkit),
+ mContext.getString(R.string.bluetooth_details_audio_device_type_hearing_aid),
mContext.getString(R.string.bluetooth_details_audio_device_type_other),
});
mAudioDeviceTypePreference.setEntryValues(new CharSequence[]{
@@ -156,6 +158,7 @@
Integer.toString(AUDIO_DEVICE_CATEGORY_SPEAKER),
Integer.toString(AUDIO_DEVICE_CATEGORY_HEADPHONES),
Integer.toString(AUDIO_DEVICE_CATEGORY_CARKIT),
+ Integer.toString(AUDIO_DEVICE_CATEGORY_HEARING_AID),
Integer.toString(AUDIO_DEVICE_CATEGORY_OTHER),
});
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
index 8f90b28..5ffa8cf 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsHeaderController.java
@@ -29,8 +29,6 @@
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.bluetooth.BluetoothUtils;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
-import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
-import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.widget.LayoutPreference;
@@ -41,15 +39,10 @@
private static final String KEY_DEVICE_HEADER = "bluetooth_device_header";
private EntityHeaderController mHeaderController;
- private LocalBluetoothManager mLocalManager;
- private CachedBluetoothDeviceManager mDeviceManager;
public BluetoothDetailsHeaderController(Context context, PreferenceFragmentCompat fragment,
- CachedBluetoothDevice device, Lifecycle lifecycle,
- LocalBluetoothManager bluetoothManager) {
+ CachedBluetoothDevice device, Lifecycle lifecycle) {
super(context, fragment, device, lifecycle);
- mLocalManager = bluetoothManager;
- mDeviceManager = mLocalManager.getCachedDeviceManager();
}
@Override
@@ -87,7 +80,7 @@
protected void refresh() {
if (isAvailable()) {
setHeaderProperties();
- mHeaderController.done(mFragment.getActivity(), true /* rebindActions */);
+ mHeaderController.done(true /* rebindActions */);
}
}
diff --git a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
index a1e133e..bec6b03 100644
--- a/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDetailsSpatialAudioController.java
@@ -16,6 +16,8 @@
package com.android.settings.bluetooth;
+import static android.media.Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE;
+
import android.content.Context;
import android.media.AudioDeviceAttributes;
import android.media.AudioDeviceInfo;
@@ -106,6 +108,10 @@
@Override
protected void refresh() {
+ if (mAudioDevice == null) {
+ return;
+ }
+
SwitchPreference spatialAudioPref = mProfilesContainer.findPreference(KEY_SPATIAL_AUDIO);
if (spatialAudioPref == null) {
spatialAudioPref = createSpatialAudioPreference(mProfilesContainer.getContext());
@@ -152,6 +158,14 @@
}
private void getAvailableDevice() {
+ if (mSpatializer.getImmersiveAudioLevel() == SPATIALIZER_IMMERSIVE_LEVEL_NONE) {
+ mIsAvailable = false;
+ mAudioDevice = null;
+ Log.d(TAG, "getAvailableDevice() ignored: spatializer not supported");
+
+ return;
+ }
+
AudioDeviceAttributes a2dpDevice = new AudioDeviceAttributes(
AudioDeviceAttributes.ROLE_OUTPUT,
AudioDeviceInfo.TYPE_BLUETOOTH_A2DP,
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
index f9afa5b..bf8ed77 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
@@ -295,7 +295,7 @@
if (mCachedDevice != null) {
Lifecycle lifecycle = getSettingsLifecycle();
controllers.add(new BluetoothDetailsHeaderController(context, this, mCachedDevice,
- lifecycle, mManager));
+ lifecycle));
controllers.add(new BluetoothDetailsButtonsController(context, this, mCachedDevice,
lifecycle));
controllers.add(new BluetoothDetailsCompanionAppsController(context, this,
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 9286b81..3903ce8 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -15,8 +15,6 @@
*/
package com.android.settings.connecteddevice;
-import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
-
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.Uri;
@@ -31,8 +29,11 @@
import com.android.settings.Utils;
import com.android.settings.core.SettingsUIDeviceConfig;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.overlay.SurveyFeatureProvider;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.slices.SlicePreferenceController;
+import com.android.settingslib.bluetooth.HearingAidStatsLogUtils;
import com.android.settingslib.search.SearchIndexable;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
@@ -87,6 +88,16 @@
: null);
use(DiscoverableFooterPreferenceController.class)
.setAlwaysDiscoverable(isAlwaysDiscoverable(callingAppPackageName, action));
+
+ // Show hearing devices survey if user is categorized as one of interested category
+ final String category = HearingAidStatsLogUtils.getUserCategory(context);
+ if (category != null && !category.isEmpty()) {
+ SurveyFeatureProvider provider =
+ FeatureFactory.getFeatureFactory().getSurveyFeatureProvider(context);
+ if (provider != null) {
+ provider.sendActivityIfAvailable(category);
+ }
+ }
}
@VisibleForTesting
diff --git a/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java b/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java
index 8c8b4fd..10b875f 100644
--- a/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java
+++ b/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java
@@ -41,6 +41,7 @@
final IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
intentFilter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
+ intentFilter.addAction(UsbManager.ACTION_USB_STATE);
final Intent intent = mContext.registerReceiver(this, intentFilter);
if (intent != null) {
onReceive(mContext, intent);
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
index e151258..39d7c75 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
@@ -50,7 +50,7 @@
protected void refresh(boolean connected, long functions, int powerRole, int dataRole) {
mHeaderController.setLabel(mContext.getString(R.string.usb_pref));
mHeaderController.setIcon(mContext.getDrawable(R.drawable.ic_usb));
- mHeaderController.done(mFragment.getActivity(), true /* rebindActions */);
+ mHeaderController.done(true /* rebindActions */);
}
@Override
diff --git a/src/com/android/settings/core/FeatureFlags.java b/src/com/android/settings/core/FeatureFlags.java
index 1a97ca9..fb552d7 100644
--- a/src/com/android/settings/core/FeatureFlags.java
+++ b/src/com/android/settings/core/FeatureFlags.java
@@ -30,4 +30,6 @@
public static final String CONTEXTUAL_HOME = "settings_contextual_home";
public static final String SETTINGS_SEARCH_ALWAYS_EXPAND =
"settings_search_always_expand";
+ public static final String PRESS_HOLD_NAV_HANDLE_TO_SEARCH =
+ "settings_press_hold_nav_handle_to_search";
}
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index a06af8e..f269ed1 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -72,7 +72,7 @@
import com.android.settings.biometrics.combination.CombinedBiometricSettings;
import com.android.settings.biometrics.face.FaceSettings;
import com.android.settings.biometrics.fingerprint.FingerprintSettings;
-import com.android.settings.biometrics.fingerprint2.ui.fragment.FingerprintSettingsV2Fragment;
+import com.android.settings.biometrics.fingerprint2.ui.settings.fragment.FingerprintSettingsV2Fragment;
import com.android.settings.bluetooth.BluetoothBroadcastDialog;
import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
import com.android.settings.bluetooth.BluetoothFindBroadcastsFragment;
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index e15cead..c14c01b 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -417,7 +417,6 @@
final Activity activity = getActivity();
final Preference pref = EntityHeaderController
.newInstance(activity, this, null /* header */)
- .setRecyclerView(getListView(), getSettingsLifecycle())
.setUid(uid)
.setHasAppInfoLink(showInfoButton)
.setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
@@ -425,7 +424,7 @@
.setIcon(mIcon)
.setLabel(mLabel)
.setPackageName(pkg)
- .done(activity, getPrefContext());
+ .done(getPrefContext());
getPreferenceScreen().addPreference(pref);
}
diff --git a/src/com/android/settings/datausage/DataUsageInfoController.java b/src/com/android/settings/datausage/DataUsageInfoController.java
index a471c39..380322b 100644
--- a/src/com/android/settings/datausage/DataUsageInfoController.java
+++ b/src/com/android/settings/datausage/DataUsageInfoController.java
@@ -14,8 +14,6 @@
package com.android.settings.datausage;
-import android.net.NetworkPolicy;
-
import com.android.settingslib.net.DataUsageController.DataUsageInfo;
/**
@@ -23,21 +21,6 @@
*/
public class DataUsageInfoController {
/**
- * Take the cached data usage values in the NetworkPolicy to update DataUsageInfo.
- */
- public void updateDataLimit(DataUsageInfo info, NetworkPolicy policy) {
- if (info == null || policy == null) {
- return;
- }
- if (policy.warningBytes >= 0) {
- info.warningLevel = policy.warningBytes;
- }
- if (policy.limitBytes >= 0) {
- info.limitLevel = policy.limitBytes;
- }
- }
-
- /**
* @returns the most appropriate limit for the data usage summary. Use the total usage when it
* is higher than the limit and warning level. Use the limit when it is set and less than usage.
* Otherwise use warning level.
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index 25fc49b..d176402 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -61,13 +61,6 @@
// Mobile data keys
public static final String KEY_MOBILE_USAGE_TITLE = "mobile_category";
- public static final String KEY_MOBILE_DATA_USAGE_TOGGLE = "data_usage_enable";
- public static final String KEY_MOBILE_DATA_USAGE = "cellular_data_usage";
- public static final String KEY_MOBILE_BILLING_CYCLE = "billing_preference";
-
- // Wifi keys
- public static final String KEY_WIFI_USAGE_TITLE = "wifi_category";
- public static final String KEY_WIFI_DATA_USAGE = "wifi_data_usage";
private DataUsageSummaryPreference mSummaryPreference;
private DataUsageSummaryPreferenceController mSummaryController;
@@ -161,10 +154,9 @@
return controllers;
}
mSummaryController =
- new DataUsageSummaryPreferenceController(activity, getSettingsLifecycle(), this,
+ new DataUsageSummaryPreferenceController(activity,
DataUsageUtils.getDefaultSubscriptionId(activity));
controllers.add(mSummaryController);
- getSettingsLifecycle().addObserver(mSummaryController);
return controllers;
}
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
index 86e01ed..a14fce3 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
@@ -67,15 +67,9 @@
private CharSequence mStartLabel;
private CharSequence mEndLabel;
- /** large vs small size is 36/16 ~ 2.25 */
- private static final float LARGER_FONT_RATIO = 2.25f;
- private static final float SMALLER_FONT_RATIO = 1.0f;
-
- private boolean mDefaultTextColorSet;
- private int mDefaultTextColor;
private int mNumPlans;
/** The specified un-initialized value for cycle time */
- private final long CYCLE_TIME_UNINITIAL_VALUE = 0;
+ private static final long CYCLE_TIME_UNINITIAL_VALUE = 0;
/** The ending time of the billing cycle in milliseconds since epoch. */
private long mCycleEndTimeMs;
/** The time of the last update in standard milliseconds since the epoch */
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
index fe20a01..3948a38 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
@@ -21,7 +21,6 @@
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.INetworkPolicyManager;
-import android.net.NetworkPolicyManager;
import android.net.NetworkTemplate;
import android.os.ServiceManager;
import android.telephony.SubscriptionInfo;
@@ -33,8 +32,6 @@
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.util.CollectionUtils;
import com.android.settings.R;
@@ -42,11 +39,6 @@
import com.android.settings.datausage.lib.DataUsageLib;
import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.network.telephony.TelephonyBasePreferenceController;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.NetworkPolicyEditor;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.net.DataUsageController;
import com.android.settingslib.utils.ThreadUtils;
@@ -59,22 +51,15 @@
* framework and falls back to legacy usage data if none are available.
*/
public class DataUsageSummaryPreferenceController extends TelephonyBasePreferenceController
- implements PreferenceControllerMixin, LifecycleObserver, OnStart {
+ implements PreferenceControllerMixin {
private static final String TAG = "DataUsageController";
private static final String KEY = "status_header";
private static final long PETA = 1000000000000000L;
- private static final float RELATIVE_SIZE_LARGE = 1.25f * 1.25f; // (1/0.8)^2
- private static final float RELATIVE_SIZE_SMALL = 1.0f / RELATIVE_SIZE_LARGE; // 0.8^2
- private EntityHeaderController mEntityHeaderController;
- private final Lifecycle mLifecycle;
- private final PreferenceFragmentCompat mFragment;
protected DataUsageController mDataUsageController;
protected DataUsageInfoController mDataInfoController;
private NetworkTemplate mDefaultTemplate;
- protected NetworkPolicyEditor mPolicyEditor;
- private int mDataUsageTemplate;
private boolean mHasMobileData;
/** Name of the carrier, or null if not available */
@@ -95,8 +80,6 @@
private long mDataBarSize;
/** The number of bytes used since the start of the cycle. */
private long mDataplanUse;
- /** The starting time of the billing cycle in ms since the epoch */
- private long mCycleStart;
/** The ending time of the billing cycle in ms since the epoch */
private long mCycleEnd;
@@ -104,12 +87,9 @@
private Future<Long> mHistoricalUsageLevel;
- public DataUsageSummaryPreferenceController(Activity activity,
- Lifecycle lifecycle, PreferenceFragmentCompat fragment, int subscriptionId) {
+ public DataUsageSummaryPreferenceController(Activity activity, int subscriptionId) {
super(activity, KEY);
- mLifecycle = lifecycle;
- mFragment = fragment;
init(subscriptionId);
}
@@ -125,22 +105,15 @@
protected void updateConfiguration(Context context,
int subscriptionId, SubscriptionInfo subInfo) {
- final NetworkPolicyManager policyManager =
- context.getSystemService(NetworkPolicyManager.class);
- mPolicyEditor = new NetworkPolicyEditor(policyManager);
-
mDataUsageController = createDataUsageController(context);
mDataUsageController.setSubscriptionId(subscriptionId);
mDataInfoController = new DataUsageInfoController();
if (subInfo != null) {
- mDataUsageTemplate = R.string.cell_data_template;
mDefaultTemplate = DataUsageLib.getMobileTemplate(context, subscriptionId);
} else if (DataUsageUtils.hasWifiRadio(context)) {
- mDataUsageTemplate = R.string.wifi_data_template;
mDefaultTemplate = new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build();
} else {
- mDataUsageTemplate = R.string.ethernet_data_template;
mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, subscriptionId);
}
}
@@ -155,36 +128,16 @@
DataUsageController dataUsageController,
DataUsageInfoController dataInfoController,
NetworkTemplate defaultTemplate,
- NetworkPolicyEditor policyEditor,
- int dataUsageTemplate,
Activity activity,
- Lifecycle lifecycle,
- EntityHeaderController entityHeaderController,
- PreferenceFragmentCompat fragment,
int subscriptionId) {
super(activity, KEY);
mDataUsageController = dataUsageController;
mDataInfoController = dataInfoController;
mDefaultTemplate = defaultTemplate;
- mPolicyEditor = policyEditor;
- mDataUsageTemplate = dataUsageTemplate;
mHasMobileData = true;
- mLifecycle = lifecycle;
- mEntityHeaderController = entityHeaderController;
- mFragment = fragment;
mSubId = subscriptionId;
}
- @Override
- public void onStart() {
- if (mEntityHeaderController == null) {
- mEntityHeaderController =
- EntityHeaderController.newInstance((Activity) mContext, mFragment, null);
- }
- RecyclerView view = mFragment.getListView();
- mEntityHeaderController.setRecyclerView(view, mLifecycle);
- }
-
@VisibleForTesting
List<SubscriptionPlan> getSubscriptionPlans(int subscriptionId) {
return ProxySubscriptionManager.getInstance(mContext).get()
@@ -223,7 +176,6 @@
long usageLevel = info.usageLevel;
if (subInfo != null) {
- mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(mDefaultTemplate));
summaryPreference.setWifiMode(/* isWifiMode */ false,
/* usagePeriod */ null, /* isSingleWifi */ false);
} else {
@@ -302,7 +254,6 @@
mDataplanSize = -1L;
mDataBarSize = mDataInfoController.getSummaryLimit(info);
mDataplanUse = info.usageLevel;
- mCycleStart = info.cycleStart;
mCycleEnd = info.cycleEnd;
mSnapshotTime = -1L;
@@ -322,7 +273,6 @@
RecurrenceRule rule = primaryPlan.getCycleRule();
if (rule != null && rule.start != null && rule.end != null) {
- mCycleStart = rule.start.toEpochSecond() * 1000L;
mCycleEnd = rule.end.toEpochSecond() * 1000L;
}
mSnapshotTime = primaryPlan.getDataUsageTime();
diff --git a/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
index 4d2dd00..782ce01 100644
--- a/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
+++ b/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceController.java
@@ -21,9 +21,7 @@
import android.telephony.SubscriptionManager;
import androidx.preference.Preference;
-import androidx.preference.PreferenceFragmentCompat;
-import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.net.DataUsageController;
import java.util.HashSet;
@@ -35,9 +33,8 @@
public class WifiDataUsageSummaryPreferenceController extends DataUsageSummaryPreferenceController {
final Set<String> mAllNetworkKeys;
- public WifiDataUsageSummaryPreferenceController(Activity activity, Lifecycle lifecycle,
- PreferenceFragmentCompat fragment, Set<String> allNetworkKeys) {
- super(activity, lifecycle, fragment, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+ public WifiDataUsageSummaryPreferenceController(Activity activity, Set<String> allNetworkKeys) {
+ super(activity, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mAllNetworkKeys = new HashSet<>(allNetworkKeys);
}
@@ -55,7 +52,6 @@
}
final DataUsageController.DataUsageInfo info = mDataUsageController.getDataUsageInfo(
template);
- mDataInfoController.updateDataLimit(info, mPolicyEditor.getPolicy(template));
mPreference.setWifiMode(/* isWifiMode */ true, /* usagePeriod */
info.period, /* isSingleWifi */ true);
diff --git a/src/com/android/settings/development/AdbDeviceDetailsHeaderController.java b/src/com/android/settings/development/AdbDeviceDetailsHeaderController.java
index 7830bb9..1bb4f3c 100644
--- a/src/com/android/settings/development/AdbDeviceDetailsHeaderController.java
+++ b/src/com/android/settings/development/AdbDeviceDetailsHeaderController.java
@@ -82,7 +82,7 @@
mEntityHeaderController
.setIcon(mContext.getDrawable(com.android.internal.R.drawable.ic_bt_laptop))
.setLabel(mPairedDevice.name)
- .done(mFragment.getActivity(), true);
+ .done(true);
}
}
diff --git a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
index d1d4cbe..52f453d 100644
--- a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
@@ -211,9 +211,7 @@
setLoading(false /* loading */, false /* animate */);
- // TODO(b/288103116): replace with new API to get TotalBytes before rounding
- // once support by StorageManager.
- final long privateUsedBytes = Utils.getPrimaryStorageSize() - mStorageInfo.freeBytes;
+ final long privateUsedBytes = mStorageInfo.totalBytes - mStorageInfo.freeBytes;
mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
mPreferenceController.setUsedSize(privateUsedBytes);
mPreferenceController.setTotalSize(mStorageInfo.totalBytes);
diff --git a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
index 4138057..f31f2be 100644
--- a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
@@ -387,9 +387,7 @@
setLoading(false /* loading */, false /* animate */);
- // TODO(b/288103116): replace with new API to get TotalBytes before rounding
- // once support by StorageManager.
- final long privateUsedBytes = Utils.getPrimaryStorageSize() - mStorageInfo.freeBytes;
+ final long privateUsedBytes = mStorageInfo.totalBytes - mStorageInfo.freeBytes;
mPreferenceController.setVolume(mSelectedStorageEntry.getVolumeInfo());
mPreferenceController.setUsedSize(privateUsedBytes);
mPreferenceController.setTotalSize(mStorageInfo.totalBytes);
diff --git a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
index 43dc9dd..ccae7e9 100644
--- a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
@@ -75,9 +75,7 @@
final PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo(
getStorageManagerVolumeProvider());
- // TODO(b/288103116): replace with new API to get TotalBytes before rounding
- // once support by StorageManager.
- long usedBytes = Utils.getPrimaryStorageSize() - info.freeBytes;
+ long usedBytes = info.totalBytes - info.freeBytes;
storageCacheHelper.cacheUsedSize(usedBytes);
ThreadUtils.postOnMainThread(() -> {
preference.setSummary(
diff --git a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
index 5e5e2ab..50b6097 100644
--- a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
+++ b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
@@ -183,7 +183,6 @@
final Bundle bundle = getArguments();
final EntityHeaderController controller = EntityHeaderController
.newInstance(context, this, headerView)
- .setRecyclerView(getListView(), getSettingsLifecycle())
.setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
EntityHeaderController.ActionType.ACTION_NONE);
@@ -199,7 +198,7 @@
com.android.settingslib.Utils.getUserIcon(getActivity(), userManager, info));
}
- controller.done(context, true /* rebindActions */);
+ controller.done(true /* rebindActions */);
}
@Override
diff --git a/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
index 23559d4..be2a64a 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageUsageProgressBarPreferenceController.java
@@ -26,7 +26,6 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
-import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.widget.UsageProgressBarPreference;
@@ -93,9 +92,7 @@
if (mStorageEntry.isPrivate()) {
// StorageStatsManager can only query private storages.
mTotalBytes = mStorageStatsManager.getTotalBytes(mStorageEntry.getFsUuid());
- // TODO(b/288103116): replace with new API to get TotalBytes before rounding
- // once support by StorageManager.
- mUsedBytes = Utils.getPrimaryStorageSize()
+ mUsedBytes = mTotalBytes
- mStorageStatsManager.getFreeBytes(mStorageEntry.getFsUuid());
} else {
final File rootFile = mStorageEntry.getPath();
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index b443773..994ad07 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -16,6 +16,8 @@
package com.android.settings.fuelgauge;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isUserConsumer;
+
import android.app.Activity;
import android.app.ActivityManager;
import android.app.backup.BackupManager;
@@ -41,7 +43,6 @@
import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry;
import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
-import com.android.settings.fuelgauge.batteryusage.BatteryHistEntry;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.HelpUtils;
@@ -149,14 +150,13 @@
Context context, int sourceMetricsCategory,
BatteryDiffEntry diffEntry, String usagePercent, String slotInformation,
boolean showTimeInformation) {
- final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry;
final LaunchBatteryDetailPageArgs launchArgs = new LaunchBatteryDetailPageArgs();
// configure the launch argument.
launchArgs.mUsagePercent = usagePercent;
launchArgs.mPackageName = diffEntry.getPackageName();
launchArgs.mAppLabel = diffEntry.getAppLabel();
launchArgs.mSlotInformation = slotInformation;
- launchArgs.mUid = (int) histEntry.mUid;
+ launchArgs.mUid = (int) diffEntry.mUid;
launchArgs.mIconId = diffEntry.getAppIconId();
launchArgs.mConsumedPower = (int) diffEntry.mConsumePower;
if (showTimeInformation) {
@@ -164,7 +164,7 @@
launchArgs.mBackgroundTimeMs = diffEntry.mBackgroundUsageTimeInMs;
launchArgs.mScreenOnTimeMs = diffEntry.mScreenOnTimeInMs;
}
- launchArgs.mIsUserEntry = histEntry.isUserEntry();
+ launchArgs.mIsUserEntry = isUserConsumer(diffEntry.mConsumerType);
startBatteryDetailPage(context, sourceMetricsCategory, launchArgs);
}
@@ -316,7 +316,6 @@
final Bundle bundle = getArguments();
EntityHeaderController controller = EntityHeaderController
.newInstance(context, this, appSnippet)
- .setRecyclerView(getListView(), getSettingsLifecycle())
.setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
EntityHeaderController.ActionType.ACTION_NONE);
@@ -337,7 +336,7 @@
}
controller.setSummary(getHeaderSummary(bundle));
- controller.done(context, true /* rebindActions */);
+ controller.done(true /* rebindActions */);
}
@VisibleForTesting
diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
index d7f1f68..a8335a9 100644
--- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
@@ -15,7 +15,6 @@
package com.android.settings.fuelgauge;
-import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.icu.text.NumberFormat;
@@ -25,7 +24,6 @@
import android.util.Log;
import androidx.annotation.VisibleForTesting;
-import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
@@ -33,19 +31,14 @@
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.Utils;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.widget.UsageProgressBarPreference;
/**
* Controller that update the battery header view
*/
public class BatteryHeaderPreferenceController extends BasePreferenceController
- implements PreferenceControllerMixin, LifecycleObserver, OnStart,
- BatteryPreferenceController {
+ implements PreferenceControllerMixin, BatteryPreferenceController {
private static final String TAG = "BatteryHeaderPreferenceController";
@VisibleForTesting
@@ -57,9 +50,6 @@
@VisibleForTesting
UsageProgressBarPreference mBatteryUsageProgressBarPref;
- private Activity mActivity;
- private PreferenceFragmentCompat mHost;
- private Lifecycle mLifecycle;
private BatteryTip mBatteryTip;
private final PowerManager mPowerManager;
@@ -70,18 +60,6 @@
.getBatteryStatusFeatureProvider();
}
- public void setActivity(Activity activity) {
- mActivity = activity;
- }
-
- public void setFragment(PreferenceFragmentCompat fragment) {
- mHost = fragment;
- }
-
- public void setLifecycle(Lifecycle lifecycle) {
- mLifecycle = lifecycle;
- }
-
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
@@ -102,12 +80,6 @@
return AVAILABLE_UNSEARCHABLE;
}
- @Override
- public void onStart() {
- EntityHeaderController.newInstance(mActivity, mHost, null /* header view */)
- .setRecyclerView(mHost.getListView(), mLifecycle);
- }
-
private CharSequence generateLabel(BatteryInfo info) {
if (Utils.containsIncompatibleChargers(mContext, TAG)) {
return mContext.getString(
diff --git a/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoader.java
deleted file mode 100644
index c336fcd..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoader.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batteryusage;
-
-import android.app.usage.UsageEvents;
-import android.content.Context;
-import android.os.AsyncTask;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-
-import java.util.List;
-import java.util.Map;
-import java.util.function.Supplier;
-
-/** Load app usage events data in the background. */
-public final class AppUsageDataLoader {
- private static final String TAG = "AppUsageDataLoader";
-
- // For testing only.
- @VisibleForTesting
- static Supplier<Map<Long, UsageEvents>> sFakeAppUsageEventsSupplier;
- @VisibleForTesting
- static Supplier<List<AppUsageEvent>> sFakeUsageEventsListSupplier;
-
- private AppUsageDataLoader() {}
-
- static void enqueueWork(final Context context) {
- AsyncTask.execute(() -> {
- Log.d(TAG, "loadAppUsageDataSafely() in the AsyncTask");
- loadAppUsageDataSafely(context.getApplicationContext());
- });
- }
-
- @VisibleForTesting
- static void loadAppUsageData(final Context context) {
- final long start = System.currentTimeMillis();
- final Map<Long, UsageEvents> appUsageEvents =
- sFakeAppUsageEventsSupplier != null
- ? sFakeAppUsageEventsSupplier.get()
- : DataProcessor.getAppUsageEvents(context);
- if (appUsageEvents == null) {
- Log.w(TAG, "loadAppUsageData() returns null");
- return;
- }
- final List<AppUsageEvent> appUsageEventList =
- sFakeUsageEventsListSupplier != null
- ? sFakeUsageEventsListSupplier.get()
- : DataProcessor.generateAppUsageEventListFromUsageEvents(
- context, appUsageEvents);
- if (appUsageEventList == null || appUsageEventList.isEmpty()) {
- Log.w(TAG, "loadAppUsageData() returns null or empty content");
- return;
- }
- final long elapsedTime = System.currentTimeMillis() - start;
- Log.d(TAG, String.format("loadAppUsageData() size=%d in %d/ms", appUsageEventList.size(),
- elapsedTime));
- // Uploads the AppUsageEvent data into database.
- DatabaseUtils.sendAppUsageEventData(context, appUsageEventList);
- }
-
- private static void loadAppUsageDataSafely(final Context context) {
- try {
- loadAppUsageData(context);
- } catch (RuntimeException e) {
- Log.e(TAG, "loadAppUsageData:" + e);
- }
- }
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
index d2ca306..fc0137b 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
@@ -44,6 +44,7 @@
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnCreate;
import com.android.settingslib.core.lifecycle.events.OnDestroy;
+import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
@@ -51,14 +52,17 @@
import java.util.ArrayList;
import java.util.Calendar;
+import java.util.Comparator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
/** Controls the update for chart graph and the list items. */
public class BatteryChartPreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy,
+ implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy, OnPause,
OnSaveInstanceState, OnResume {
private static final String TAG = "BatteryChartPreferenceController";
private static final String PREFERENCE_KEY = "battery_chart";
@@ -128,7 +132,6 @@
Map<Integer, Map<Integer, BatteryDiffData>> mBatteryUsageMap;
private boolean mIs24HourFormat;
- private boolean mHourlyChartVisible = true;
private View mBatteryChartViewGroup;
private TextView mChartSummaryTextView;
private BatteryChartViewModel mDailyViewModel;
@@ -136,6 +139,7 @@
private OnBatteryUsageUpdatedListener mOnBatteryUsageUpdatedListener;
private OnScreenOnTimeUpdatedListener mOnScreenOnTimeUpdatedListener;
private OnBatteryTipsUpdatedListener mOnBatteryTipsUpdatedListener;
+ private AtomicBoolean mIsAppResume = new AtomicBoolean(false);
private final SettingsActivity mActivity;
private final MetricsFeatureProvider mMetricsFeatureProvider;
@@ -180,9 +184,15 @@
Log.d(TAG, String.format("onCreate() dailyIndex=%d hourlyIndex=%d",
mDailyChartIndex, mHourlyChartIndex));
}
+ @Override
+ public void onPause() {
+ mIsAppResume.compareAndSet(/* expect= */ true, /* update= */ false);
+ }
+
@Override
public void onResume() {
+ mIsAppResume.compareAndSet(/* expect= */ false, /* update= */ true);
mIs24HourFormat = DateFormat.is24HourFormat(mContext);
mMetricsFeatureProvider.action(mPrefContext, SettingsEnums.OPEN_BATTERY_USAGE);
}
@@ -234,20 +244,8 @@
mOnBatteryTipsUpdatedListener = listener;
}
- void setBatteryHistoryMap(
- final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
- Log.d(TAG, "setBatteryHistoryMap() " + (batteryHistoryMap == null ? "null"
- : ("size=" + batteryHistoryMap.size())));
- // Ensure the battery chart group is visible for users.
- animateBatteryChartViewGroup();
- final BatteryLevelData batteryLevelData =
- DataProcessManager.getBatteryLevelData(mContext, mHandler, batteryHistoryMap,
- batteryUsageMap -> {
- mBatteryUsageMap = batteryUsageMap;
- logScreenUsageTime();
- refreshUi();
- });
- Log.d(TAG, "getBatteryLevelData: " + batteryLevelData);
+ void onBatteryLevelDataUpdate(final BatteryLevelData batteryLevelData) {
+ Log.d(TAG, "onBatteryLevelDataUpdate: " + batteryLevelData);
mMetricsFeatureProvider.action(
mPrefContext,
SettingsEnums.ACTION_BATTERY_HISTORY_LOADED,
@@ -278,6 +276,13 @@
refreshUi();
}
+ void onBatteryUsageMapUpdate(Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
+ Log.d(TAG, "onBatteryUsageMapUpdate: " + batteryUsageMap);
+ mBatteryUsageMap = batteryUsageMap;
+ logScreenUsageTime();
+ refreshUi();
+ }
+
void setBatteryChartView(@NonNull final BatteryChartView dailyChartView,
@NonNull final BatteryChartView hourlyChartView) {
final View parentView = (View) dailyChartView.getParent();
@@ -370,30 +375,44 @@
mOnBatteryUsageUpdatedListener.onBatteryUsageUpdated(
slotUsageData, getSlotInformation(), isBatteryUsageMapNullOrEmpty());
+ Log.d(TAG, "isBatteryTipsEnabled = "
+ + mPowerUsageFeatureProvider.isBatteryTipsEnabled());
if (mOnBatteryTipsUpdatedListener != null) {
mExecutor.execute(() -> {
final PowerAnomalyEventList anomalyEventList = mPowerUsageFeatureProvider
.detectSettingsAnomaly(mContext, /* displayDrain= */ 0);
+ Log.d(TAG, "anomalyEventList = " + anomalyEventList);
final PowerAnomalyEvent displayEvent =
getHighestScoreAnomalyEvent(anomalyEventList);
- mHandler.post(()
- -> mOnBatteryTipsUpdatedListener.onBatteryTipsUpdated(displayEvent));
+ mHandler.post(() -> {
+ if (mIsAppResume.get()) {
+ mOnBatteryTipsUpdatedListener
+ .onBatteryTipsUpdated(displayEvent);
+ }
+ }
+ );
});
}
}
return true;
}
- private PowerAnomalyEvent getHighestScoreAnomalyEvent(PowerAnomalyEventList anomalyEventList) {
+ @VisibleForTesting
+ PowerAnomalyEvent getHighestScoreAnomalyEvent(PowerAnomalyEventList anomalyEventList) {
if (anomalyEventList == null || anomalyEventList.getPowerAnomalyEventsCount() == 0) {
return null;
}
- PowerAnomalyEvent highestScoreEvent = null;
- for (PowerAnomalyEvent event : anomalyEventList.getPowerAnomalyEventsList()) {
- if (highestScoreEvent == null || event.getScore() > highestScoreEvent.getScore()) {
- highestScoreEvent = event;
- }
- }
+ final Set<String> dismissedPowerAnomalyKeys =
+ DatabaseUtils.getDismissedPowerAnomalyKeys(mContext);
+ Log.d(TAG, "dismissedPowerAnomalyKeys = " + dismissedPowerAnomalyKeys);
+
+ final PowerAnomalyEvent highestScoreEvent = anomalyEventList.getPowerAnomalyEventsList()
+ .stream()
+ .filter(event -> event.hasKey()
+ && !dismissedPowerAnomalyKeys.contains(event.getKey().name()))
+ .max(Comparator.comparing(PowerAnomalyEvent::getScore))
+ .orElse(null);
+ Log.d(TAG, "highestScoreAnomalyEvent = " + highestScoreEvent);
return highestScoreEvent;
}
@@ -498,10 +517,10 @@
}
private void animateBatteryHourlyChartView(final boolean visible) {
- if (mHourlyChartView == null || mHourlyChartVisible == visible) {
+ if (mHourlyChartView == null
+ || (mHourlyChartView.getVisibility() == View.VISIBLE) == visible) {
return;
}
- mHourlyChartVisible = visible;
if (visible) {
mHourlyChartView.setVisibility(View.VISIBLE);
@@ -658,10 +677,8 @@
return null;
}
for (BatteryDiffEntry entry : entries) {
- final BatteryHistEntry batteryHistEntry = entry.mBatteryHistEntry;
- if (batteryHistEntry != null
- && batteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY
- && batteryHistEntry.mUserId == userId
+ if (!entry.isSystemEntry()
+ && entry.mUserId == userId
&& packageName.equals(entry.getPackageName())) {
return entry;
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
index 891e5e0..086f56c 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
@@ -17,6 +17,7 @@
import static com.android.settings.Utils.formatPercentage;
import static com.android.settings.fuelgauge.batteryusage.BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS;
+import static com.android.settingslib.fuelgauge.BatteryStatus.BATTERY_LEVEL_UNKNOWN;
import static java.lang.Math.abs;
import static java.lang.Math.round;
@@ -615,8 +616,8 @@
private static boolean isTrapezoidValid(
@NonNull BatteryChartViewModel viewModel, int trapezoidIndex) {
- return viewModel.getLevel(trapezoidIndex) != null
- && viewModel.getLevel(trapezoidIndex + 1) != null;
+ return viewModel.getLevel(trapezoidIndex) != BATTERY_LEVEL_UNKNOWN
+ && viewModel.getLevel(trapezoidIndex + 1) != BATTERY_LEVEL_UNKNOWN;
}
private static boolean isTrapezoidIndexValid(
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
index 90a5f19..f25e16f 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
@@ -16,6 +16,8 @@
package com.android.settings.fuelgauge.batteryusage;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.utcToLocalTimeForLogging;
+
import android.content.Context;
import android.os.BatteryConsumer;
@@ -34,6 +36,10 @@
public class BatteryDiffData {
static final double SMALL_PERCENTAGE_THRESHOLD = 1f;
+ private final long mStartTimestamp;
+ private final long mEndTimestamp;
+ private final int mStartBatteryLevel;
+ private final int mEndBatteryLevel;
private final long mScreenOnTime;
private final List<BatteryDiffEntry> mAppEntries;
private final List<BatteryDiffEntry> mSystemEntries;
@@ -41,12 +47,20 @@
/** Constructor for the diff entries. */
public BatteryDiffData(
final Context context,
+ final long startTimestamp,
+ final long endTimestamp,
+ final int startBatteryLevel,
+ final int endBatteryLevel,
final long screenOnTime,
final @NonNull List<BatteryDiffEntry> appDiffEntries,
final @NonNull List<BatteryDiffEntry> systemDiffEntries,
final @NonNull Set<String> systemAppsPackageNames,
final @NonNull Set<Integer> systemAppsUids,
final boolean isAccumulated) {
+ mStartTimestamp = startTimestamp;
+ mEndTimestamp = endTimestamp;
+ mStartBatteryLevel = startBatteryLevel;
+ mEndBatteryLevel = endBatteryLevel;
mScreenOnTime = screenOnTime;
mAppEntries = appDiffEntries;
mSystemEntries = systemDiffEntries;
@@ -63,18 +77,48 @@
processAndSortEntries(mSystemEntries);
}
- public long getScreenOnTime() {
+ long getStartTimestamp() {
+ return mStartTimestamp;
+ }
+
+ long getEndTimestamp() {
+ return mEndTimestamp;
+ }
+
+ int getStartBatteryLevel() {
+ return mStartBatteryLevel;
+ }
+
+ int getEndBatteryLevel() {
+ return mEndBatteryLevel;
+ }
+
+ long getScreenOnTime() {
return mScreenOnTime;
}
- public List<BatteryDiffEntry> getAppDiffEntryList() {
+ List<BatteryDiffEntry> getAppDiffEntryList() {
return mAppEntries;
}
- public List<BatteryDiffEntry> getSystemDiffEntryList() {
+ List<BatteryDiffEntry> getSystemDiffEntryList() {
return mSystemEntries;
}
+ @Override
+ public String toString() {
+ return new StringBuilder("BatteryDiffData{")
+ .append("startTimestamp:" + utcToLocalTimeForLogging(mStartTimestamp))
+ .append("|endTimestamp:" + utcToLocalTimeForLogging(mEndTimestamp))
+ .append("|startLevel:" + mStartBatteryLevel)
+ .append("|endLevel:" + mEndBatteryLevel)
+ .append("|screenOnTime:" + mScreenOnTime)
+ .append("|appEntries.size:" + mAppEntries.size())
+ .append("|systemEntries.size:" + mSystemEntries.size())
+ .append("}")
+ .toString();
+ }
+
/** Removes fake usage data and hidden packages. */
private void purgeBatteryDiffData(final PowerUsageFeatureProvider featureProvider) {
purgeBatteryDiffData(featureProvider, mAppEntries);
@@ -109,7 +153,7 @@
final long screenOnTimeInMs = entry.mScreenOnTimeInMs;
final double comsumePower = entry.mConsumePower;
final String packageName = entry.getPackageName();
- final Integer componentId = entry.mBatteryHistEntry.mDrainType;
+ final Integer componentId = entry.mComponentId;
if ((screenOnTimeInMs < screenOnTimeThresholdInMs
&& comsumePower < consumePowerThreshold)
|| ConvertUtils.FAKE_PACKAGE_NAME.equals(packageName)
@@ -130,14 +174,16 @@
final @NonNull Set<Integer> systemAppsUids,
final @NonNull List<BatteryDiffEntry> appEntries) {
final List<String> systemAppsAllowlist = featureProvider.getSystemAppsAllowlist();
- BatteryDiffEntry.SystemAppsBatteryDiffEntry systemAppsDiffEntry = null;
+ BatteryDiffEntry systemAppsDiffEntry = null;
final Iterator<BatteryDiffEntry> appListIterator = appEntries.iterator();
while (appListIterator.hasNext()) {
final BatteryDiffEntry batteryDiffEntry = appListIterator.next();
if (needsCombineInSystemApp(batteryDiffEntry, systemAppsAllowlist,
systemAppsPackageNames, systemAppsUids)) {
if (systemAppsDiffEntry == null) {
- systemAppsDiffEntry = new BatteryDiffEntry.SystemAppsBatteryDiffEntry(context);
+ systemAppsDiffEntry = new BatteryDiffEntry(context,
+ BatteryDiffEntry.SYSTEM_APPS_KEY, BatteryDiffEntry.SYSTEM_APPS_KEY,
+ ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
}
systemAppsDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
systemAppsDiffEntry.mForegroundUsageTimeInMs +=
@@ -159,17 +205,18 @@
final Set<Integer> othersSystemComponentSet = featureProvider.getOthersSystemComponentSet();
final Set<String> othersCustomComponentNameSet =
featureProvider.getOthersCustomComponentNameSet();
- BatteryDiffEntry.OthersBatteryDiffEntry othersDiffEntry = null;
+ BatteryDiffEntry othersDiffEntry = null;
final Iterator<BatteryDiffEntry> systemListIterator = systemEntries.iterator();
while (systemListIterator.hasNext()) {
final BatteryDiffEntry batteryDiffEntry = systemListIterator.next();
- final int componentId = batteryDiffEntry.mBatteryHistEntry.mDrainType;
+ final int componentId = batteryDiffEntry.mComponentId;
if (othersSystemComponentSet.contains(componentId) || (
componentId >= BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID
&& othersCustomComponentNameSet.contains(
batteryDiffEntry.getAppLabel()))) {
if (othersDiffEntry == null) {
- othersDiffEntry = new BatteryDiffEntry.OthersBatteryDiffEntry(context);
+ othersDiffEntry = new BatteryDiffEntry(context, BatteryDiffEntry.OTHERS_KEY,
+ BatteryDiffEntry.OTHERS_KEY, ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
}
othersDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
othersDiffEntry.setTotalConsumePower(
@@ -188,7 +235,7 @@
final @NonNull List<String> systemAppsAllowlist,
final @NonNull Set<String> systemAppsPackageNames,
final @NonNull Set<Integer> systemAppsUids) {
- if (batteryDiffEntry.mBatteryHistEntry.mIsHidden) {
+ if (batteryDiffEntry.mIsHidden) {
return true;
}
@@ -201,7 +248,7 @@
return true;
}
- int uid = (int) batteryDiffEntry.mBatteryHistEntry.mUid;
+ int uid = (int) batteryDiffEntry.mUid;
return systemAppsPackageNames.contains(packageName) || systemAppsUids.contains(uid);
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
index 2ed9196..b284ea5 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
@@ -15,7 +15,6 @@
*/
package com.android.settings.fuelgauge.batteryusage;
-import android.content.ContentValues;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
@@ -24,6 +23,7 @@
import android.os.UserHandle;
import android.os.UserManager;
import android.util.Log;
+import android.util.Pair;
import androidx.annotation.VisibleForTesting;
@@ -45,12 +45,29 @@
static final Map<String, BatteryEntry.NameAndIcon> sResourceCache = new HashMap<>();
// Whether a specific item is valid to launch restriction page?
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
- public static final Map<String, Boolean> sValidForRestriction = new HashMap<>();
-
+ static final Map<String, Boolean> sValidForRestriction = new HashMap<>();
/** A comparator for {@link BatteryDiffEntry} based on the sorting key. */
- public static final Comparator<BatteryDiffEntry> COMPARATOR =
+ static final Comparator<BatteryDiffEntry> COMPARATOR =
(a, b) -> Double.compare(b.getSortingKey(), a.getSortingKey());
+ static final String SYSTEM_APPS_KEY = "A|SystemApps";
+ static final String OTHERS_KEY = "S|Others";
+ // key -> (label_id, icon_id)
+ private static final Map<String, Pair<Integer, Integer>> SPECIAL_ENTRY_MAP = Map.of(
+ SYSTEM_APPS_KEY,
+ Pair.create(R.string.battery_usage_system_apps, R.drawable.ic_power_system),
+ OTHERS_KEY,
+ Pair.create(R.string.battery_usage_others,
+ R.drawable.ic_settings_battery_usage_others));
+
+ public long mUid;
+ public long mUserId;
+ public String mKey;
+ public boolean mIsHidden;
+ public int mComponentId;
+ public String mLegacyPackageName;
+ public String mLegacyLabel;
+ public int mConsumerType;
public long mForegroundUsageTimeInMs;
public long mBackgroundUsageTimeInMs;
public long mScreenOnTimeInMs;
@@ -59,8 +76,6 @@
public double mForegroundServiceUsageConsumePower;
public double mBackgroundUsageConsumePower;
public double mCachedUsageConsumePower;
- // A BatteryHistEntry corresponding to this diff usage data.
- public final BatteryHistEntry mBatteryHistEntry;
protected Context mContext;
@@ -83,6 +98,14 @@
public BatteryDiffEntry(
Context context,
+ long uid,
+ long userId,
+ String key,
+ boolean isHidden,
+ int componentId,
+ String legacyPackageName,
+ String legacyLabel,
+ int consumerType,
long foregroundUsageTimeInMs,
long backgroundUsageTimeInMs,
long screenOnTimeInMs,
@@ -90,21 +113,36 @@
double foregroundUsageConsumePower,
double foregroundServiceUsageConsumePower,
double backgroundUsageConsumePower,
- double cachedUsageConsumePower,
- BatteryHistEntry batteryHistEntry) {
+ double cachedUsageConsumePower) {
mContext = context;
+ mUid = uid;
+ mUserId = userId;
+ mKey = key;
+ mIsHidden = isHidden;
+ mComponentId = componentId;
+ mLegacyPackageName = legacyPackageName;
+ mLegacyLabel = legacyLabel;
+ mConsumerType = consumerType;
+ mForegroundUsageTimeInMs = foregroundUsageTimeInMs;
+ mBackgroundUsageTimeInMs = backgroundUsageTimeInMs;
+ mScreenOnTimeInMs = screenOnTimeInMs;
mConsumePower = consumePower;
mForegroundUsageConsumePower = foregroundUsageConsumePower;
mForegroundServiceUsageConsumePower = foregroundServiceUsageConsumePower;
mBackgroundUsageConsumePower = backgroundUsageConsumePower;
mCachedUsageConsumePower = cachedUsageConsumePower;
- mForegroundUsageTimeInMs = foregroundUsageTimeInMs;
- mBackgroundUsageTimeInMs = backgroundUsageTimeInMs;
- mScreenOnTimeInMs = screenOnTimeInMs;
- mBatteryHistEntry = batteryHistEntry;
mUserManager = context.getSystemService(UserManager.class);
}
+ public BatteryDiffEntry(Context context, String key, String legacyLabel, int consumerType) {
+ this(context, /*uid=*/ 0, /*userId=*/ 0, key, /*isHidden=*/ false, /*componentId=*/ -1,
+ /*legacyPackageName=*/ null, legacyLabel, consumerType,
+ /*foregroundUsageTimeInMs=*/ 0, /*backgroundUsageTimeInMs=*/ 0,
+ /*screenOnTimeInMs=*/ 0, /*consumePower=*/ 0, /*foregroundUsageConsumePower=*/ 0,
+ /*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 0,
+ /*cachedUsageConsumePower=*/ 0);
+ }
+
/** Sets the total consumed power in a specific time slot. */
public void setTotalConsumePower(double totalConsumePower) {
mTotalConsumePower = totalConsumePower;
@@ -135,13 +173,22 @@
/** Gets the key for sorting */
public double getSortingKey() {
- return getPercentage() + getAdjustPercentageOffset();
+ return getKey() != null && SPECIAL_ENTRY_MAP.containsKey(getKey())
+ ? -1 : getPercentage() + getAdjustPercentageOffset();
}
/** Clones a new instance. */
public BatteryDiffEntry clone() {
return new BatteryDiffEntry(
this.mContext,
+ this.mUid,
+ this.mUserId,
+ this.mKey,
+ this.mIsHidden,
+ this.mComponentId,
+ this.mLegacyPackageName,
+ this.mLegacyLabel,
+ this.mConsumerType,
this.mForegroundUsageTimeInMs,
this.mBackgroundUsageTimeInMs,
this.mScreenOnTimeInMs,
@@ -149,17 +196,14 @@
this.mForegroundUsageConsumePower,
this.mForegroundServiceUsageConsumePower,
this.mBackgroundUsageConsumePower,
- this.mCachedUsageConsumePower,
- this.mBatteryHistEntry /*same instance*/);
+ this.mCachedUsageConsumePower);
}
/** Gets the app label name for this entry. */
public String getAppLabel() {
loadLabelAndIcon();
- // Returns default applicationn label if we cannot find it.
- return mAppLabel == null || mAppLabel.length() == 0
- ? mBatteryHistEntry.mAppLabel
- : mAppLabel;
+ // Returns default application label if we cannot find it.
+ return mAppLabel == null || mAppLabel.length() == 0 ? mLegacyLabel : mAppLabel;
}
/** Gets the app icon {@link Drawable} for this entry. */
@@ -179,7 +223,7 @@
/** Gets the searching package name for UID battery type. */
public String getPackageName() {
final String packageName = mDefaultPackageName != null
- ? mDefaultPackageName : mBatteryHistEntry.mPackageName;
+ ? mDefaultPackageName : mLegacyPackageName;
if (packageName == null) {
return packageName;
}
@@ -198,10 +242,10 @@
/** Whether the current BatteryDiffEntry is system component or not. */
public boolean isSystemEntry() {
- if (mBatteryHistEntry.mIsHidden) {
+ if (mIsHidden) {
return false;
}
- switch (mBatteryHistEntry.mConsumerType) {
+ switch (mConsumerType) {
case ConvertUtils.CONSUMER_TYPE_USER_BATTERY:
case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
return true;
@@ -236,12 +280,22 @@
updateRestrictionFlagState();
sValidForRestriction.put(getKey(), Boolean.valueOf(mValidForRestriction));
+ if (getKey() != null && SPECIAL_ENTRY_MAP.containsKey(getKey())) {
+ Pair<Integer, Integer> pair = SPECIAL_ENTRY_MAP.get(getKey());
+ mAppLabel = mContext.getString(pair.first);
+ mAppIconId = pair.second;
+ mAppIcon = mContext.getDrawable(mAppIconId);
+ sResourceCache.put(
+ getKey(),
+ new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
+ return;
+ }
+
// Loads application icon and label based on consumer type.
- switch (mBatteryHistEntry.mConsumerType) {
+ switch (mConsumerType) {
case ConvertUtils.CONSUMER_TYPE_USER_BATTERY:
final BatteryEntry.NameAndIcon nameAndIconForUser =
- BatteryEntry.getNameAndIconFromUserId(
- mContext, (int) mBatteryHistEntry.mUserId);
+ BatteryEntry.getNameAndIconFromUserId(mContext, (int) mUserId);
if (nameAndIconForUser != null) {
mAppIcon = nameAndIconForUser.mIcon;
mAppLabel = nameAndIconForUser.mName;
@@ -252,8 +306,7 @@
break;
case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
final BatteryEntry.NameAndIcon nameAndIconForSystem =
- BatteryEntry.getNameAndIconFromPowerComponent(
- mContext, mBatteryHistEntry.mDrainType);
+ BatteryEntry.getNameAndIconFromPowerComponent(mContext, mComponentId);
if (nameAndIconForSystem != null) {
mAppLabel = nameAndIconForSystem.mName;
if (nameAndIconForSystem.mIconId != 0) {
@@ -283,12 +336,12 @@
}
String getKey() {
- return mBatteryHistEntry.getKey();
+ return mKey;
}
@VisibleForTesting
void updateRestrictionFlagState() {
- if (!mBatteryHistEntry.isAppEntry()) {
+ if (isSystemEntry()) {
mValidForRestriction = false;
return;
}
@@ -348,7 +401,7 @@
return;
}
- final int uid = (int) mBatteryHistEntry.mUid;
+ final int uid = (int) mUid;
final String[] packages = packageManager.getPackagesForUid(uid);
// Loads special defined application label and icon if available.
if (packages == null || packages.length == 0) {
@@ -394,8 +447,7 @@
StringUtil.formatElapsedTime(mContext, (double) mScreenOnTimeInMs,
/*withSeconds=*/ true, /*collapseTimeUnit=*/ false)))
.append(String.format("\n\tpackage:%s|%s uid:%d userId:%d",
- mBatteryHistEntry.mPackageName, getPackageName(),
- mBatteryHistEntry.mUid, mBatteryHistEntry.mUserId));
+ mLegacyPackageName, getPackageName(), mUid, mUserId));
return builder.toString();
}
@@ -406,130 +458,8 @@
}
private Drawable getBadgeIconForUser(Drawable icon) {
- final int userId = UserHandle.getUserId((int) mBatteryHistEntry.mUid);
+ final int userId = UserHandle.getUserId((int) mUid);
return userId == UserHandle.USER_OWNER ? icon :
mUserManager.getBadgedIconForUser(icon, new UserHandle(userId));
}
-
- /** Specific battery diff entry for system apps. */
- static class SystemAppsBatteryDiffEntry extends BatteryDiffEntry {
- SystemAppsBatteryDiffEntry(Context context) {
- super(context,
- /*foregroundUsageTimeInMs=*/ 0,
- /*backgroundUsageTimeInMs=*/ 0,
- /*screenOnTimeInMs=*/ 0,
- /*consumePower=*/ 0,
- /*foregroundUsageConsumePower=*/ 0,
- /*foregroundServiceUsageConsumePower=*/ 0,
- /*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0,
- new BatteryHistEntry(new ContentValues()));
- }
-
- @Override
- public String getKey() {
- return "A|SystemApps";
- }
-
- @Override
- public String getAppLabel() {
- return mContext.getString(R.string.battery_usage_system_apps);
- }
-
- @Override
- public Drawable getAppIcon() {
- return mContext.getDrawable(R.drawable.ic_power_system);
- }
-
- @Override
- public boolean validForRestriction() {
- return false;
- }
-
- @Override
- public boolean isSystemEntry() {
- return false;
- }
-
- @Override
- public double getSortingKey() {
- // Always on the bottom of the app list.
- return -1;
- }
-
- @Override
- public BatteryDiffEntry clone() {
- SystemAppsBatteryDiffEntry newEntry = new SystemAppsBatteryDiffEntry(this.mContext);
- newEntry.mForegroundUsageTimeInMs = this.mForegroundUsageTimeInMs;
- newEntry.mBackgroundUsageTimeInMs = this.mBackgroundUsageTimeInMs;
- newEntry.mScreenOnTimeInMs = this.mScreenOnTimeInMs;
- newEntry.mConsumePower = this.mConsumePower;
- newEntry.mForegroundUsageConsumePower = this.mForegroundUsageConsumePower;
- newEntry.mForegroundServiceUsageConsumePower = this.mForegroundServiceUsageConsumePower;
- newEntry.mBackgroundUsageConsumePower = this.mBackgroundUsageConsumePower;
- newEntry.mCachedUsageConsumePower = this.mCachedUsageConsumePower;
- return newEntry;
- }
- }
-
- /** Specific battery diff entry for others. */
- static class OthersBatteryDiffEntry extends BatteryDiffEntry {
- OthersBatteryDiffEntry(Context context) {
- super(context,
- /*foregroundUsageTimeInMs=*/ 0,
- /*backgroundUsageTimeInMs=*/ 0,
- /*screenOnTimeInMs=*/ 0,
- /*consumePower=*/ 0,
- /*foregroundUsageConsumePower=*/ 0,
- /*foregroundServiceUsageConsumePower=*/ 0,
- /*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0,
- new BatteryHistEntry(new ContentValues()));
- }
-
- @Override
- public String getKey() {
- return "S|Others";
- }
-
- @Override
- public String getAppLabel() {
- return mContext.getString(R.string.battery_usage_others);
- }
-
- @Override
- public Drawable getAppIcon() {
- return mContext.getDrawable(R.drawable.ic_settings_battery_usage_others);
- }
-
- @Override
- public boolean validForRestriction() {
- return false;
- }
-
- @Override
- public boolean isSystemEntry() {
- return true;
- }
-
- @Override
- public double getSortingKey() {
- // Always on the bottom of the system list.
- return -1;
- }
-
- @Override
- public BatteryDiffEntry clone() {
- OthersBatteryDiffEntry newEntry = new OthersBatteryDiffEntry(this.mContext);
- newEntry.mForegroundUsageTimeInMs = this.mForegroundUsageTimeInMs;
- newEntry.mBackgroundUsageTimeInMs = this.mBackgroundUsageTimeInMs;
- newEntry.mScreenOnTimeInMs = this.mScreenOnTimeInMs;
- newEntry.mConsumePower = this.mConsumePower;
- newEntry.mForegroundUsageConsumePower = this.mForegroundUsageConsumePower;
- newEntry.mForegroundServiceUsageConsumePower = this.mForegroundServiceUsageConsumePower;
- newEntry.mBackgroundUsageConsumePower = this.mBackgroundUsageConsumePower;
- newEntry.mCachedUsageConsumePower = this.mCachedUsageConsumePower;
- return newEntry;
- }
- }
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
index 827f0fc..6f78566 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
@@ -169,21 +169,6 @@
return mIsValidEntry;
}
- /** Whether this {@link BatteryHistEntry} is user consumer or not. */
- public boolean isUserEntry() {
- return mConsumerType == ConvertUtils.CONSUMER_TYPE_USER_BATTERY;
- }
-
- /** Whether this {@link BatteryHistEntry} is app consumer or not. */
- public boolean isAppEntry() {
- return mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY;
- }
-
- /** Whether this {@link BatteryHistEntry} is system consumer or not. */
- public boolean isSystemEntry() {
- return mConsumerType == ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
- }
-
/** Gets an identifier to represent this {@link BatteryHistEntry}. */
public String getKey() {
if (mKey == null) {
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoader.java
deleted file mode 100644
index 9a0e410..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.fuelgauge.batteryusage;
-
-import android.content.Context;
-
-import com.android.settingslib.utils.AsyncLoaderCompat;
-
-import java.util.Calendar;
-import java.util.Map;
-
-/** Loader that can be used to load battery history information. */
-public class BatteryHistoryLoader
- extends AsyncLoaderCompat<Map<Long, Map<String, BatteryHistEntry>>> {
- private static final String TAG = "BatteryHistoryLoader";
-
- private final Context mContext;
-
- public BatteryHistoryLoader(Context context) {
- super(context);
- mContext = context;
- }
-
- @Override
- protected void onDiscardResult(Map<Long, Map<String, BatteryHistEntry>> result) {
- }
-
- @Override
- public Map<Long, Map<String, BatteryHistEntry>> loadInBackground() {
- return DatabaseUtils.getHistoryMapSinceLastFullCharge(mContext, Calendar.getInstance());
- }
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java
index c78b3c7..d64bf34 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java
@@ -17,17 +17,13 @@
package com.android.settings.fuelgauge.batteryusage;
import android.content.Context;
-import android.os.BatteryUsageStats;
import android.util.AttributeSet;
import android.widget.TextView;
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
-import com.android.settings.fuelgauge.BatteryInfo;
import com.android.settings.fuelgauge.BatteryUtils;
/**
@@ -36,9 +32,6 @@
public class BatteryHistoryPreference extends Preference {
private static final String TAG = "BatteryHistoryPreference";
- @VisibleForTesting
- BatteryInfo mBatteryInfo;
-
private BatteryChartView mDailyChartView;
private BatteryChartView mHourlyChartView;
private BatteryChartPreferenceController mChartPreferenceController;
@@ -49,13 +42,6 @@
setSelectable(false);
}
- void setBatteryUsageStats(@NonNull BatteryUsageStats batteryUsageStats) {
- BatteryInfo.getBatteryInfo(getContext(), info -> {
- mBatteryInfo = info;
- notifyChanged();
- }, batteryUsageStats, false);
- }
-
void setChartPreferenceController(BatteryChartPreferenceController controller) {
mChartPreferenceController = controller;
if (mDailyChartView != null && mHourlyChartView != null) {
@@ -67,9 +53,6 @@
public void onBindViewHolder(PreferenceViewHolder view) {
super.onBindViewHolder(view);
final long startTime = System.currentTimeMillis();
- if (mBatteryInfo == null) {
- return;
- }
final TextView companionTextView = (TextView) view.findViewById(R.id.companion_text);
mDailyChartView = (BatteryChartView) view.findViewById(R.id.daily_battery_chart);
mDailyChartView.setCompanionTextView(companionTextView);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
index 4ff9eeb..53ebbd9 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
@@ -16,15 +16,28 @@
package com.android.settings.fuelgauge.batteryusage;
+import static com.android.settingslib.fuelgauge.BatteryStatus.BATTERY_LEVEL_UNKNOWN;
+
+import android.text.format.DateUtils;
+import android.util.ArrayMap;
+
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
import androidx.core.util.Preconditions;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Locale;
+import java.util.Map;
import java.util.Objects;
/** Wraps the battery timestamp and level data used for battery usage chart. */
public final class BatteryLevelData {
+ private static final long MIN_SIZE = 2;
+ private static final long TIME_SLOT = DateUtils.HOUR_IN_MILLIS * 2;
+
/** A container for the battery timestamp and level data. */
public static final class PeriodBatteryLevelData {
// The length of mTimestamps and mLevels must be the same. mLevels[index] might be null when
@@ -33,12 +46,14 @@
private final List<Integer> mLevels;
public PeriodBatteryLevelData(
- @NonNull List<Long> timestamps, @NonNull List<Integer> levels) {
- Preconditions.checkArgument(timestamps.size() == levels.size(),
- /* errorMessage= */ "Timestamp: " + timestamps.size() + ", Level: "
- + levels.size());
+ @NonNull Map<Long, Integer> batteryLevelMap,
+ @NonNull List<Long> timestamps) {
mTimestamps = timestamps;
- mLevels = levels;
+ mLevels = new ArrayList<>(timestamps.size());
+ for (Long timestamp : timestamps) {
+ mLevels.add(batteryLevelMap.containsKey(timestamp)
+ ? batteryLevelMap.get(timestamp) : BATTERY_LEVEL_UNKNOWN);
+ }
}
public List<Long> getTimestamps() {
@@ -68,15 +83,21 @@
// The size of hourly data must be the size of daily data - 1.
private final List<PeriodBatteryLevelData> mHourlyBatteryLevelsPerDay;
- public BatteryLevelData(
- @NonNull PeriodBatteryLevelData dailyBatteryLevels,
- @NonNull List<PeriodBatteryLevelData> hourlyBatteryLevelsPerDay) {
- final long dailySize = dailyBatteryLevels.getTimestamps().size();
- final long hourlySize = hourlyBatteryLevelsPerDay.size();
- Preconditions.checkArgument(hourlySize == dailySize - 1,
- /* errorMessage= */ "DailySize: " + dailySize + ", HourlySize: " + hourlySize);
- mDailyBatteryLevels = dailyBatteryLevels;
- mHourlyBatteryLevelsPerDay = hourlyBatteryLevelsPerDay;
+ public BatteryLevelData(@NonNull Map<Long, Integer> batteryLevelMap) {
+ final int mapSize = batteryLevelMap.size();
+ Preconditions.checkArgument(mapSize >= MIN_SIZE, "batteryLevelMap size:" + mapSize);
+
+ final List<Long> timestampList = new ArrayList<>(batteryLevelMap.keySet());
+ Collections.sort(timestampList);
+ final List<Long> dailyTimestamps = getDailyTimestamps(timestampList);
+ final List<List<Long>> hourlyTimestamps = getHourlyTimestamps(dailyTimestamps);
+
+ mDailyBatteryLevels = new PeriodBatteryLevelData(batteryLevelMap, dailyTimestamps);
+ mHourlyBatteryLevelsPerDay = new ArrayList<>(hourlyTimestamps.size());
+ for (List<Long> hourlyTimestampsPerDay : hourlyTimestamps) {
+ mHourlyBatteryLevelsPerDay.add(
+ new PeriodBatteryLevelData(batteryLevelMap, hourlyTimestampsPerDay));
+ }
}
public PeriodBatteryLevelData getDailyBatteryLevels() {
@@ -94,5 +115,69 @@
Objects.toString(mDailyBatteryLevels),
Objects.toString(mHourlyBatteryLevelsPerDay));
}
+
+ @Nullable
+ static BatteryLevelData combine(@Nullable BatteryLevelData existingBatteryLevelData,
+ List<BatteryEvent> batteryLevelRecordEvents) {
+ final Map<Long, Integer> batteryLevelMap = new ArrayMap<>(batteryLevelRecordEvents.size());
+ for (BatteryEvent event : batteryLevelRecordEvents) {
+ batteryLevelMap.put(event.getTimestamp(), event.getBatteryLevel());
+ }
+ if (existingBatteryLevelData != null) {
+ List<PeriodBatteryLevelData> multiDaysData =
+ existingBatteryLevelData.getHourlyBatteryLevelsPerDay();
+ for (int dayIndex = 0; dayIndex < multiDaysData.size(); dayIndex++) {
+ PeriodBatteryLevelData oneDayData = multiDaysData.get(dayIndex);
+ for (int hourIndex = 0; hourIndex < oneDayData.getLevels().size(); hourIndex++) {
+ batteryLevelMap.put(oneDayData.getTimestamps().get(hourIndex),
+ oneDayData.getLevels().get(hourIndex));
+ }
+ }
+ }
+ return batteryLevelMap.size() < MIN_SIZE ? null : new BatteryLevelData(batteryLevelMap);
+ }
+
+ /**
+ * Computes expected daily timestamp slots.
+ *
+ * The valid result should be composed of 3 parts:
+ * 1) start timestamp
+ * 2) every 00:00 timestamp (default timezone) between the start and end
+ * 3) end timestamp
+ * Otherwise, returns an empty list.
+ */
+ @VisibleForTesting
+ static List<Long> getDailyTimestamps(final List<Long> timestampList) {
+ Preconditions.checkArgument(
+ timestampList.size() >= MIN_SIZE, "timestampList size:" + timestampList.size());
+ final List<Long> dailyTimestampList = new ArrayList<>();
+ final long startTimestamp = timestampList.get(0);
+ final long endTimestamp = timestampList.get(timestampList.size() - 1);
+ for (long timestamp = startTimestamp; timestamp < endTimestamp;
+ timestamp = TimestampUtils.getNextDayTimestamp(timestamp)) {
+ dailyTimestampList.add(timestamp);
+ }
+ dailyTimestampList.add(endTimestamp);
+ return dailyTimestampList;
+ }
+
+ private static List<List<Long>> getHourlyTimestamps(final List<Long> dailyTimestamps) {
+ final List<List<Long>> hourlyTimestamps = new ArrayList<>();
+ for (int dailyIndex = 0; dailyIndex < dailyTimestamps.size() - 1; dailyIndex++) {
+ final List<Long> hourlyTimestampsPerDay = new ArrayList<>();
+ final long startTime = dailyTimestamps.get(dailyIndex);
+ final long endTime = dailyTimestamps.get(dailyIndex + 1);
+
+ hourlyTimestampsPerDay.add(startTime);
+ for (long timestamp = TimestampUtils.getNextEvenHourTimestamp(startTime);
+ timestamp < endTime; timestamp += TIME_SLOT) {
+ hourlyTimestampsPerDay.add(timestamp);
+ }
+ hourlyTimestampsPerDay.add(endTime);
+
+ hourlyTimestamps.add(hourlyTimestampsPerDay);
+ }
+ return hourlyTimestamps;
+ }
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
index 976897f..2d530bd 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
@@ -16,7 +16,9 @@
package com.android.settings.fuelgauge.batteryusage;
+import android.app.settings.SettingsEnums;
import android.content.Context;
+import android.os.Bundle;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.view.View;
@@ -29,9 +31,11 @@
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
+import com.android.settings.SettingsActivity;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.google.android.material.button.MaterialButton;
@@ -43,6 +47,10 @@
private static final String TAG = "BatteryTipsCardPreference";
private final PowerUsageFeatureProvider mPowerUsageFeatureProvider;
+ private final MetricsFeatureProvider mMetricsFeatureProvider;
+
+ private String mAnomalyEventId;
+ private PowerAnomalyKey mPowerAnomalyKey;
@VisibleForTesting
CharSequence mMainButtonLabel;
@@ -51,18 +59,29 @@
@VisibleForTesting
String mDestinationComponentName;
@VisibleForTesting
- int mSourceMetricsCategory;
+ String mPreferenceHighlightKey;
+ @VisibleForTesting
+ Integer mSourceMetricsCategory;
public BatteryTipsCardPreference(Context context, AttributeSet attrs) {
super(context, attrs);
setLayoutResource(R.layout.battery_tips_card);
setSelectable(false);
- mPowerUsageFeatureProvider = FeatureFactory.getFeatureFactory()
- .getPowerUsageFeatureProvider();
+ final FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
+ mPowerUsageFeatureProvider = featureFactory.getPowerUsageFeatureProvider();
+ mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
+ mPowerAnomalyKey = null;
}
/**
- * Update the label of main button in tips card.
+ * Sets the anomaly event id which is used in metrics.
+ */
+ public void setAnomalyEventId(final String anomalyEventId) {
+ mAnomalyEventId = anomalyEventId;
+ }
+
+ /**
+ * Sets the label of main button in tips card.
*/
public void setMainButtonLabel(CharSequence label) {
if (!TextUtils.equals(mMainButtonLabel, label)) {
@@ -72,7 +91,7 @@
}
/**
- * Update the label of dismiss button in tips card.
+ * Sets the label of dismiss button in tips card.
*/
public void setDismissButtonLabel(CharSequence label) {
if (!TextUtils.equals(mDismissButtonLabel, label)) {
@@ -82,12 +101,20 @@
}
/**
- * Update the info of target fragment launched by main button.
+ * Sets the power anomaly key of battery tips card.
+ */
+ public void setPowerAnomalyKey(final PowerAnomalyKey powerAnomalyKey) {
+ mPowerAnomalyKey = powerAnomalyKey;
+ }
+
+ /**
+ * Sets the info of target fragment launched by main button.
*/
public void setMainButtonLauncherInfo(final String destinationClassName,
- final Integer sourceMetricsCategory) {
+ final Integer sourceMetricsCategory, final String highlightKey) {
mDestinationComponentName = destinationClassName;
mSourceMetricsCategory = sourceMetricsCategory;
+ mPreferenceHighlightKey = highlightKey;
}
@Override
@@ -97,12 +124,27 @@
if (TextUtils.isEmpty(mDestinationComponentName)) {
return;
}
+ Bundle arguments = Bundle.EMPTY;
+ if (!TextUtils.isEmpty(mPreferenceHighlightKey)) {
+ arguments = new Bundle(1);
+ arguments.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY,
+ mPreferenceHighlightKey);
+ }
new SubSettingLauncher(getContext())
.setDestination(mDestinationComponentName)
.setSourceMetricsCategory(mSourceMetricsCategory)
+ .setArguments(arguments)
.launch();
+ setVisible(false);
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, mAnomalyEventId);
} else if (viewId == R.id.dismiss_button) {
setVisible(false);
+ mMetricsFeatureProvider.action(
+ getContext(), SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, mAnomalyEventId);
+ if (mPowerAnomalyKey != null) {
+ DatabaseUtils.setDismissedPowerAnomalyKeys(getContext(), mPowerAnomalyKey.name());
+ }
}
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
index 91fe59c..96c1330 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
@@ -16,6 +16,7 @@
package com.android.settings.fuelgauge.batteryusage;
+import android.app.settings.SettingsEnums;
import android.content.Context;
import android.text.TextUtils;
@@ -26,6 +27,7 @@
import com.android.settings.core.BasePreferenceController;
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import java.util.function.Function;
@@ -36,22 +38,20 @@
private static final String ROOT_PREFERENCE_KEY = "battery_tips_category";
private static final String CARD_PREFERENCE_KEY = "battery_tips_card";
- private final String[] mPowerAnomalyKeys;
+ private final PowerUsageFeatureProvider mPowerUsageFeatureProvider;
+ private final MetricsFeatureProvider mMetricsFeatureProvider;
@VisibleForTesting
BatteryTipsCardPreference mCardPreference;
- @VisibleForTesting
- PowerUsageFeatureProvider mPowerUsageFeatureProvider;
public BatteryTipsController(Context context) {
super(context, ROOT_PREFERENCE_KEY);
- mPowerUsageFeatureProvider = FeatureFactory.getFeatureFactory()
- .getPowerUsageFeatureProvider();
- mPowerAnomalyKeys = context.getResources().getStringArray(R.array.power_anomaly_keys);
+ final FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
+ mPowerUsageFeatureProvider = featureFactory.getPowerUsageFeatureProvider();
+ mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
}
private boolean isTipsCardVisible() {
- // TODO: compared with the timestamp of last user dismiss action in sharedPreference.
return mPowerUsageFeatureProvider.isBatteryTipsEnabled();
}
@@ -66,22 +66,12 @@
mCardPreference = screen.findPreference(CARD_PREFERENCE_KEY);
}
- @VisibleForTesting
- int getPowerAnomalyEventIndex(String powerAnomalyKey) {
- for (int index = 0; index < mPowerAnomalyKeys.length; index++) {
- if (mPowerAnomalyKeys[index].equals(powerAnomalyKey)) {
- return index;
- }
- }
- return -1;
- }
-
private <T> T getInfo(PowerAnomalyEvent powerAnomalyEvent,
Function<WarningBannerInfo, T> warningBannerInfoSupplier,
Function<WarningItemInfo, T> warningItemInfoSupplier) {
- if (powerAnomalyEvent.hasWarningBannerInfo() && warningBannerInfoSupplier != null) {
+ if (warningBannerInfoSupplier != null && powerAnomalyEvent.hasWarningBannerInfo()) {
return warningBannerInfoSupplier.apply(powerAnomalyEvent.getWarningBannerInfo());
- } else if (powerAnomalyEvent.hasWarningItemInfo() && warningItemInfoSupplier != null) {
+ } else if (warningItemInfoSupplier != null && powerAnomalyEvent.hasWarningItemInfo()) {
return warningItemInfoSupplier.apply(powerAnomalyEvent.getWarningItemInfo());
}
return null;
@@ -98,8 +88,9 @@
return string;
}
- if (resourceIndex >= 0) {
- string = mContext.getResources().getStringArray(resourceId)[resourceIndex];
+ String[] stringArray = mContext.getResources().getStringArray(resourceId);
+ if (resourceIndex >= 0 && resourceIndex < stringArray.length) {
+ string = stringArray[resourceIndex];
}
return string;
@@ -117,10 +108,12 @@
}
// Get card preference strings and navigate fragment info
- final int index = getPowerAnomalyEventIndex(powerAnomalyEvent.getKey());
+ final PowerAnomalyKey powerAnomalyKey = powerAnomalyEvent.hasKey()
+ ? powerAnomalyEvent.getKey() : null;
+ final int resourceIndex = powerAnomalyKey != null ? powerAnomalyKey.getNumber() : -1;
String titleString = getString(powerAnomalyEvent, WarningBannerInfo::getTitleString,
- WarningItemInfo::getTitleString, R.array.power_anomaly_titles, index);
+ WarningItemInfo::getTitleString, R.array.power_anomaly_titles, resourceIndex);
if (titleString.isEmpty()) {
mCardPreference.setVisible(false);
return;
@@ -128,24 +121,29 @@
String mainBtnString = getString(powerAnomalyEvent,
WarningBannerInfo::getMainButtonString, WarningItemInfo::getMainButtonString,
- R.array.power_anomaly_main_btn_strings, index);
+ R.array.power_anomaly_main_btn_strings, resourceIndex);
String dismissBtnString = getString(powerAnomalyEvent,
WarningBannerInfo::getCancelButtonString, WarningItemInfo::getCancelButtonString,
- R.array.power_anomaly_dismiss_btn_strings, index);
+ R.array.power_anomaly_dismiss_btn_strings, resourceIndex);
- String destinationClassName = getString(powerAnomalyEvent,
- WarningBannerInfo::getMainButtonDestination,
- WarningItemInfo::getMainButtonDestination,
- -1, -1);
+ String destinationClassName = getInfo(powerAnomalyEvent,
+ WarningBannerInfo::getMainButtonDestination, null);
Integer sourceMetricsCategory = getInfo(powerAnomalyEvent,
- WarningBannerInfo::getMainButtonSourceMetricsCategory,
- WarningItemInfo::getMainButtonSourceMetricsCategory);
+ WarningBannerInfo::getMainButtonSourceMetricsCategory, null);
+ String preferenceHighlightKey = getInfo(powerAnomalyEvent,
+ WarningBannerInfo::getMainButtonSourceHighlightKey, null);
// Updated card preference and main button fragment launcher
+ mCardPreference.setAnomalyEventId(powerAnomalyEvent.getEventId());
+ mCardPreference.setPowerAnomalyKey(powerAnomalyKey);
mCardPreference.setTitle(titleString);
mCardPreference.setMainButtonLabel(mainBtnString);
mCardPreference.setDismissButtonLabel(dismissBtnString);
- mCardPreference.setMainButtonLauncherInfo(destinationClassName, sourceMetricsCategory);
+ mCardPreference.setMainButtonLauncherInfo(
+ destinationClassName, sourceMetricsCategory, preferenceHighlightKey);
mCardPreference.setVisible(true);
+
+ mMetricsFeatureProvider.action(mContext,
+ SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, powerAnomalyEvent.getEventId());
}
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
index a3b73df..d51485a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
@@ -144,19 +144,17 @@
}
final PowerGaugePreference powerPref = (PowerGaugePreference) preference;
final BatteryDiffEntry diffEntry = powerPref.getBatteryDiffEntry();
- final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry;
- final String packageName = histEntry.mPackageName;
- final boolean isAppEntry = histEntry.isAppEntry();
+ final String packageName = diffEntry.getPackageName();
mMetricsFeatureProvider.action(
/* attribution */ SettingsEnums.OPEN_BATTERY_USAGE,
- /* action */ isAppEntry
- ? SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM
- : SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM,
+ /* action */ diffEntry.isSystemEntry()
+ ? SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM
+ : SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM,
/* pageId */ SettingsEnums.OPEN_BATTERY_USAGE,
TextUtils.isEmpty(packageName) ? PACKAGE_NAME_NONE : packageName,
(int) Math.round(diffEntry.getPercentage()));
Log.d(TAG, String.format("handleClick() label=%s key=%s package=%s",
- diffEntry.getAppLabel(), histEntry.getKey(), histEntry.mPackageName));
+ diffEntry.getAppLabel(), diffEntry.getKey(), packageName));
AdvancedPowerUsageDetail.startBatteryDetailPage(
mActivity, mFragment, diffEntry, powerPref.getPercentage(), mSlotTimestamp);
return true;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
index 1b2d4cd..edba7c4 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
@@ -21,7 +21,6 @@
import android.content.UriMatcher;
import android.database.Cursor;
import android.net.Uri;
-import android.os.AsyncTask;
import android.text.TextUtils;
import android.util.Log;
@@ -36,12 +35,14 @@
import com.android.settings.fuelgauge.batteryusage.db.BatteryState;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDao;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotDao;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
import java.time.Clock;
import java.time.Duration;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import java.util.stream.Collectors;
/** {@link ContentProvider} class to fetch battery usage data. */
public class BatteryUsageContentProvider extends ContentProvider {
@@ -55,7 +56,12 @@
private static final int APP_USAGE_LATEST_TIMESTAMP_CODE = 2;
private static final int APP_USAGE_EVENT_CODE = 3;
private static final int BATTERY_EVENT_CODE = 4;
+ private static final int LAST_FULL_CHARGE_TIMESTAMP_CODE = 5;
+ private static final int BATTERY_STATE_LATEST_TIMESTAMP_CODE = 6;
+ private static final int BATTERY_USAGE_SLOT_CODE = 7;
+ private static final List<Integer> ALL_BATTERY_EVENT_TYPES =
+ Arrays.stream(BatteryEventType.values()).map(type -> type.getNumber()).toList();
private static final UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
static {
@@ -75,12 +81,25 @@
DatabaseUtils.AUTHORITY,
/*path=*/ DatabaseUtils.BATTERY_EVENT_TABLE,
/*code=*/ BATTERY_EVENT_CODE);
+ sUriMatcher.addURI(
+ DatabaseUtils.AUTHORITY,
+ /*path=*/ DatabaseUtils.LAST_FULL_CHARGE_TIMESTAMP_PATH,
+ /*code=*/ LAST_FULL_CHARGE_TIMESTAMP_CODE);
+ sUriMatcher.addURI(
+ DatabaseUtils.AUTHORITY,
+ /*path=*/ DatabaseUtils.BATTERY_STATE_LATEST_TIMESTAMP_PATH,
+ /*code=*/ BATTERY_STATE_LATEST_TIMESTAMP_CODE);
+ sUriMatcher.addURI(
+ DatabaseUtils.AUTHORITY,
+ /*path=*/ DatabaseUtils.BATTERY_USAGE_SLOT_TABLE,
+ /*code=*/ BATTERY_USAGE_SLOT_CODE);
}
private Clock mClock;
private BatteryStateDao mBatteryStateDao;
private AppUsageEventDao mAppUsageEventDao;
private BatteryEventDao mBatteryEventDao;
+ private BatteryUsageSlotDao mBatteryUsageSlotDao;
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
public void setClock(Clock clock) {
@@ -94,9 +113,11 @@
return false;
}
mClock = Clock.systemUTC();
- mBatteryStateDao = BatteryStateDatabase.getInstance(getContext()).batteryStateDao();
- mAppUsageEventDao = BatteryStateDatabase.getInstance(getContext()).appUsageEventDao();
- mBatteryEventDao = BatteryStateDatabase.getInstance(getContext()).batteryEventDao();
+ final BatteryStateDatabase database = BatteryStateDatabase.getInstance(getContext());
+ mBatteryStateDao = database.batteryStateDao();
+ mAppUsageEventDao = database.appUsageEventDao();
+ mBatteryEventDao = database.batteryEventDao();
+ mBatteryUsageSlotDao = database.batteryUsageSlotDao();
Log.w(TAG, "create content provider from " + getCallingPackage());
return true;
}
@@ -118,6 +139,12 @@
return getAppUsageLatestTimestamp(uri);
case BATTERY_EVENT_CODE:
return getBatteryEvents(uri);
+ case LAST_FULL_CHARGE_TIMESTAMP_CODE:
+ return getLastFullChargeTimestamp(uri);
+ case BATTERY_STATE_LATEST_TIMESTAMP_CODE:
+ return getBatteryStateLatestTimestamp(uri);
+ case BATTERY_USAGE_SLOT_CODE:
+ return getBatteryUsageSlots(uri);
default:
throw new IllegalArgumentException("unknown URI: " + uri);
}
@@ -132,34 +159,31 @@
@Nullable
@Override
public Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) {
- switch (sUriMatcher.match(uri)) {
- case BATTERY_STATE_CODE:
- try {
+ try {
+ switch (sUriMatcher.match(uri)) {
+ case BATTERY_STATE_CODE:
mBatteryStateDao.insert(BatteryState.create(contentValues));
- return uri;
- } catch (RuntimeException e) {
- Log.e(TAG, "insert() from:" + uri + " error:" + e);
- return null;
- }
- case APP_USAGE_EVENT_CODE:
- try {
+ break;
+ case APP_USAGE_EVENT_CODE:
mAppUsageEventDao.insert(AppUsageEventEntity.create(contentValues));
- return uri;
- } catch (RuntimeException e) {
- Log.e(TAG, "insert() from:" + uri + " error:" + e);
- return null;
- }
- case BATTERY_EVENT_CODE:
- try {
+ break;
+ case BATTERY_EVENT_CODE:
mBatteryEventDao.insert(BatteryEventEntity.create(contentValues));
- return uri;
- } catch (RuntimeException e) {
- Log.e(TAG, "insert() from:" + uri + " error:" + e);
- return null;
- }
- default:
- throw new IllegalArgumentException("unknown URI: " + uri);
+ break;
+ case BATTERY_USAGE_SLOT_CODE:
+ mBatteryUsageSlotDao.insert(BatteryUsageSlotEntity.create(contentValues));
+ break;
+ default:
+ throw new IllegalArgumentException("unknown URI: " + uri);
+ }
+ } catch (RuntimeException e) {
+ if (e instanceof IllegalArgumentException) {
+ throw e;
+ }
+ Log.e(TAG, "insert() from:" + uri + " error:", e);
+ return null;
}
+ return uri;
}
@Override
@@ -176,21 +200,44 @@
throw new UnsupportedOperationException("unsupported!");
}
- private Cursor getBatteryStates(Uri uri) {
- final long queryTimestamp = getQueryTimestamp(uri);
- return getBatteryStates(uri, queryTimestamp);
- }
-
- private Cursor getBatteryStates(Uri uri, long firstTimestamp) {
+ private Cursor getLastFullChargeTimestamp(Uri uri) {
final long timestamp = mClock.millis();
Cursor cursor = null;
try {
- cursor = mBatteryStateDao.getCursorSinceLastFullCharge(firstTimestamp);
+ cursor = mBatteryEventDao.getLastFullChargeTimestamp();
} catch (RuntimeException e) {
- Log.e(TAG, "query() from:" + uri + " error:" + e);
+ Log.e(TAG, "query() from:" + uri + " error:", e);
}
- AsyncTask.execute(() -> BootBroadcastReceiver.invokeJobRecheck(getContext()));
- Log.d(TAG, "query battery states in " + (mClock.millis() - timestamp) + "/ms");
+ Log.d(TAG, String.format("getLastFullChargeTimestamp() in %d/ms",
+ mClock.millis() - timestamp));
+ return cursor;
+ }
+
+ private Cursor getBatteryStateLatestTimestamp(Uri uri) {
+ final long queryTimestamp = getQueryTimestamp(uri);
+ final long timestamp = mClock.millis();
+ Cursor cursor = null;
+ try {
+ cursor = mBatteryStateDao.getLatestTimestampBefore(queryTimestamp);
+ } catch (RuntimeException e) {
+ Log.e(TAG, "query() from:" + uri + " error:", e);
+ }
+ Log.d(TAG, String.format("getBatteryStateLatestTimestamp() no later than %d in %d/ms",
+ queryTimestamp, mClock.millis() - timestamp));
+ return cursor;
+ }
+
+ private Cursor getBatteryStates(Uri uri) {
+ final long queryTimestamp = getQueryTimestamp(uri);
+ final long timestamp = mClock.millis();
+ Cursor cursor = null;
+ try {
+ cursor = mBatteryStateDao.getBatteryStatesAfter(queryTimestamp);
+ } catch (RuntimeException e) {
+ Log.e(TAG, "query() from:" + uri + " error:", e);
+ }
+ Log.d(TAG, String.format("getBatteryStates() after %d in %d/ms",
+ queryTimestamp, mClock.millis() - timestamp));
return cursor;
}
@@ -205,9 +252,9 @@
try {
cursor = mAppUsageEventDao.getAllForUsersAfter(queryUserIds, queryTimestamp);
} catch (RuntimeException e) {
- Log.e(TAG, "query() from:" + uri + " error:" + e);
+ Log.e(TAG, "query() from:" + uri + " error:", e);
}
- Log.w(TAG, "query app usage events in " + (mClock.millis() - timestamp) + "/ms");
+ Log.w(TAG, "getAppUsageEvents() in " + (mClock.millis() - timestamp) + "/ms");
return cursor;
}
@@ -221,42 +268,78 @@
try {
cursor = mAppUsageEventDao.getLatestTimestampOfUser(queryUserId);
} catch (RuntimeException e) {
- Log.e(TAG, "query() from:" + uri + " error:" + e);
+ Log.e(TAG, "query() from:" + uri + " error:", e);
}
- Log.d(TAG, String.format("query app usage latest timestamp %d for user %d in %d/ms",
- timestamp, queryUserId, (mClock.millis() - timestamp)));
+ Log.d(TAG, String.format("getAppUsageLatestTimestamp() for user %d in %d/ms",
+ queryUserId, (mClock.millis() - timestamp)));
return cursor;
}
private Cursor getBatteryEvents(Uri uri) {
+ List<Integer> queryBatteryEventTypes = getQueryBatteryEventTypes(uri);
+ if (queryBatteryEventTypes == null || queryBatteryEventTypes.isEmpty()) {
+ queryBatteryEventTypes = ALL_BATTERY_EVENT_TYPES;
+ }
final long queryTimestamp = getQueryTimestamp(uri);
final long timestamp = mClock.millis();
Cursor cursor = null;
try {
- cursor = mBatteryEventDao.getAllAfter(queryTimestamp);
+ cursor = mBatteryEventDao.getAllAfter(queryTimestamp, queryBatteryEventTypes);
} catch (RuntimeException e) {
- Log.e(TAG, "query() from:" + uri + " error:" + e);
+ Log.e(TAG, "query() from:" + uri + " error:", e);
}
- Log.w(TAG, "query app usage events in " + (mClock.millis() - timestamp) + "/ms");
+ Log.w(TAG, "getBatteryEvents() in " + (mClock.millis() - timestamp) + "/ms");
return cursor;
}
+ private Cursor getBatteryUsageSlots(Uri uri) {
+ final long queryTimestamp = getQueryTimestamp(uri);
+ final long timestamp = mClock.millis();
+ Cursor cursor = null;
+ try {
+ cursor = mBatteryUsageSlotDao.getAllAfter(queryTimestamp);
+ } catch (RuntimeException e) {
+ Log.e(TAG, "query() from:" + uri + " error:", e);
+ }
+ Log.w(TAG, "getBatteryUsageSlots() in " + (mClock.millis() - timestamp) + "/ms");
+ return cursor;
+ }
+
+ private List<Integer> getQueryBatteryEventTypes(Uri uri) {
+ Log.d(TAG, "getQueryBatteryEventTypes from uri: " + uri);
+ final String batteryEventTypesParameter =
+ uri.getQueryParameter(DatabaseUtils.QUERY_BATTERY_EVENT_TYPE);
+ if (TextUtils.isEmpty(batteryEventTypesParameter)) {
+ return null;
+ }
+ try {
+ List<Integer> batteryEventTypes = new ArrayList<>();
+ for (String typeString : batteryEventTypesParameter.split(",")) {
+ batteryEventTypes.add(Integer.parseInt(typeString.trim()));
+ }
+ return batteryEventTypes;
+ } catch (NumberFormatException e) {
+ Log.e(TAG, "invalid query value: " + batteryEventTypesParameter, e);
+ return null;
+ }
+ }
+
// If URI contains query parameter QUERY_KEY_USERID, use the value directly.
// Otherwise, return null.
private List<Long> getQueryUserIds(Uri uri) {
Log.d(TAG, "getQueryUserIds from uri: " + uri);
- final String value = uri.getQueryParameter(DatabaseUtils.QUERY_KEY_USERID);
- if (TextUtils.isEmpty(value)) {
- Log.w(TAG, "empty query value");
+ final String userIdsParameter = uri.getQueryParameter(DatabaseUtils.QUERY_KEY_USERID);
+ if (TextUtils.isEmpty(userIdsParameter)) {
return null;
}
try {
- return Arrays.asList(value.split(","))
- .stream()
- .map(s -> Long.parseLong(s.trim()))
- .collect(Collectors.toList());
+ List<Long> userIds = new ArrayList<>();
+ for (String idString : userIdsParameter.split(",")) {
+ userIds.add(Long.parseLong(idString.trim()));
+ }
+ return userIds;
} catch (NumberFormatException e) {
- Log.e(TAG, "invalid query value: " + value, e);
+ Log.e(TAG, "invalid query value: " + userIdsParameter, e);
return null;
}
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
index ae86095..ece9960 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
@@ -16,9 +16,12 @@
package com.android.settings.fuelgauge.batteryusage;
+import android.app.usage.UsageEvents;
import android.content.Context;
import android.os.AsyncTask;
import android.os.BatteryUsageStats;
+import android.os.Handler;
+import android.os.Looper;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
@@ -27,6 +30,7 @@
import com.android.settings.fuelgauge.batteryusage.bugreport.BatteryUsageLogUtils;
import java.util.List;
+import java.util.Map;
import java.util.function.Supplier;
/** Load battery usage data in the background. */
@@ -36,6 +40,10 @@
// For testing only.
@VisibleForTesting
static Supplier<List<BatteryEntry>> sFakeBatteryEntryListSupplier;
+ @VisibleForTesting
+ static Supplier<Map<Long, UsageEvents>> sFakeAppUsageEventsSupplier;
+ @VisibleForTesting
+ static Supplier<List<AppUsageEvent>> sFakeUsageEventsListSupplier;
private BatteryUsageDataLoader() {
}
@@ -48,9 +56,9 @@
}
@VisibleForTesting
- static void loadUsageData(final Context context, final boolean isFullChargeStart) {
+ static void loadBatteryStatsData(final Context context, final boolean isFullChargeStart) {
BatteryUsageLogUtils.writeLog(context, Action.FETCH_USAGE_DATA, "");
- final long start = System.currentTimeMillis();
+ final long currentTime = System.currentTimeMillis();
final BatteryUsageStats batteryUsageStats = DataProcessor.getBatteryUsageStats(context);
final List<BatteryEntry> batteryEntryList =
sFakeBatteryEntryListSupplier != null ? sFakeBatteryEntryListSupplier.get()
@@ -59,25 +67,82 @@
if (batteryEntryList == null || batteryEntryList.isEmpty()) {
Log.w(TAG, "getBatteryEntryList() returns null or empty content");
}
- final long elapsedTime = System.currentTimeMillis() - start;
+ final long elapsedTime = System.currentTimeMillis() - currentTime;
Log.d(TAG, String.format("getBatteryUsageStats() in %d/ms", elapsedTime));
if (isFullChargeStart) {
DatabaseUtils.recordDateTime(
context, DatabaseUtils.KEY_LAST_LOAD_FULL_CHARGE_TIME);
+ DatabaseUtils.sendBatteryEventData(context, ConvertUtils.convertToBatteryEvent(
+ currentTime, BatteryEventType.FULL_CHARGED, 100));
+ DatabaseUtils.removeDismissedPowerAnomalyKeys(context);
}
// Uploads the BatteryEntry data into database.
DatabaseUtils.sendBatteryEntryData(
- context, batteryEntryList, batteryUsageStats, isFullChargeStart);
+ context, currentTime, batteryEntryList, batteryUsageStats, isFullChargeStart);
DataProcessor.closeBatteryUsageStats(batteryUsageStats);
}
+ @VisibleForTesting
+ static void loadAppUsageData(final Context context) {
+ final long start = System.currentTimeMillis();
+ final Map<Long, UsageEvents> appUsageEvents =
+ sFakeAppUsageEventsSupplier != null
+ ? sFakeAppUsageEventsSupplier.get()
+ : DataProcessor.getAppUsageEvents(context);
+ if (appUsageEvents == null) {
+ Log.w(TAG, "loadAppUsageData() returns null");
+ return;
+ }
+ final List<AppUsageEvent> appUsageEventList =
+ sFakeUsageEventsListSupplier != null
+ ? sFakeUsageEventsListSupplier.get()
+ : DataProcessor.generateAppUsageEventListFromUsageEvents(
+ context, appUsageEvents);
+ if (appUsageEventList == null || appUsageEventList.isEmpty()) {
+ Log.w(TAG, "loadAppUsageData() returns null or empty content");
+ return;
+ }
+ final long elapsedTime = System.currentTimeMillis() - start;
+ Log.d(TAG, String.format("loadAppUsageData() size=%d in %d/ms", appUsageEventList.size(),
+ elapsedTime));
+ // Uploads the AppUsageEvent data into database.
+ DatabaseUtils.sendAppUsageEventData(context, appUsageEventList);
+ }
+
+ private static void preprocessBatteryUsageSlots(final Context context) {
+ final long start = System.currentTimeMillis();
+ final Handler handler = new Handler(Looper.getMainLooper());
+ final BatteryLevelData batteryLevelData = DataProcessManager.getBatteryLevelData(
+ context, handler, /*isFromPeriodJob=*/ true,
+ batteryDiffDataMap -> DatabaseUtils.sendBatteryUsageSlotData(context,
+ ConvertUtils.convertToBatteryUsageSlotList(batteryDiffDataMap)));
+ if (batteryLevelData == null) {
+ Log.d(TAG, "preprocessBatteryUsageSlots() no new battery usage data.");
+ return;
+ }
+
+ DatabaseUtils.sendBatteryEventData(
+ context, ConvertUtils.convertToBatteryEventList(batteryLevelData));
+ Log.d(TAG, String.format(
+ "preprocessBatteryUsageSlots() batteryLevelData=%s in %d/ms",
+ batteryLevelData, System.currentTimeMillis() - start));
+ }
+
private static void loadUsageDataSafely(
final Context context, final boolean isFullChargeStart) {
try {
- loadUsageData(context, isFullChargeStart);
+ final long start = System.currentTimeMillis();
+ loadBatteryStatsData(context, isFullChargeStart);
+ if (!isFullChargeStart) {
+ // No app usage data or battery diff data at this time.
+ loadAppUsageData(context);
+ preprocessBatteryUsageSlots(context);
+ }
+ Log.d(TAG, String.format(
+ "loadUsageDataSafely() in %d/ms", System.currentTimeMillis() - start));
} catch (RuntimeException e) {
- Log.e(TAG, "loadUsageData:" + e);
+ Log.e(TAG, "loadUsageData:", e);
}
}
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
index 5fc4ad5..ec0d01a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
@@ -33,15 +33,21 @@
import android.util.Base64;
import android.util.Log;
+import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
import java.util.TimeZone;
/** A utility class to convert data into another types. */
@@ -75,7 +81,22 @@
private ConvertUtils() {
}
- /** Converts {@link BatteryEntry} to content values */
+ /** Whether {@code consumerType} is app consumer or not. */
+ public static boolean isUidConsumer(final int consumerType) {
+ return consumerType == CONSUMER_TYPE_UID_BATTERY;
+ }
+
+ /** Whether {@code consumerType} is user consumer or not. */
+ public static boolean isUserConsumer(final int consumerType) {
+ return consumerType == CONSUMER_TYPE_USER_BATTERY;
+ }
+
+ /** Whether {@code consumerType} is system consumer or not. */
+ public static boolean isSystemConsumer(final int consumerType) {
+ return consumerType == CONSUMER_TYPE_SYSTEM_BATTERY;
+ }
+
+ /** Converts {@link BatteryEntry} to {@link ContentValues} */
public static ContentValues convertBatteryEntryToContentValues(
final BatteryEntry entry,
final BatteryUsageStats batteryUsageStats,
@@ -118,7 +139,7 @@
return values;
}
- /** Converts {@link AppUsageEvent} to content values */
+ /** Converts {@link AppUsageEvent} to {@link ContentValues} */
public static ContentValues convertAppUsageEventToContentValues(final AppUsageEvent event) {
final ContentValues values = new ContentValues();
values.put(AppUsageEventEntity.KEY_UID, event.getUid());
@@ -131,7 +152,7 @@
return values;
}
- /** Converts {@link BatteryEvent} to content values */
+ /** Converts {@link BatteryEvent} to {@link ContentValues} */
public static ContentValues convertBatteryEventToContentValues(final BatteryEvent event) {
final ContentValues values = new ContentValues();
values.put(BatteryEventEntity.KEY_TIMESTAMP, event.getTimestamp());
@@ -140,6 +161,16 @@
return values;
}
+ /** Converts {@link BatteryUsageSlot} to {@link ContentValues} */
+ public static ContentValues convertBatteryUsageSlotToContentValues(
+ final BatteryUsageSlot batteryUsageSlot) {
+ final ContentValues values = new ContentValues(2);
+ values.put(BatteryUsageSlotEntity.KEY_TIMESTAMP, batteryUsageSlot.getStartTimestamp());
+ values.put(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT,
+ Base64.encodeToString(batteryUsageSlot.toByteArray(), Base64.DEFAULT));
+ return values;
+ }
+
/** Gets the encoded string from {@link BatteryInformation} instance. */
public static String convertBatteryInformationToString(
final BatteryInformation batteryInformation) {
@@ -183,7 +214,7 @@
/*isFullChargeStart=*/ false));
}
- /** Converts to {@link AppUsageEvent} from {@link Event} */
+ /** Converts from {@link Event} to {@link AppUsageEvent} */
@Nullable
public static AppUsageEvent convertToAppUsageEvent(
Context context, IUsageStatsManager usageStatsManager, final Event event,
@@ -234,8 +265,8 @@
return appUsageEventBuilder.build();
}
- /** Converts to {@link AppUsageEvent} from {@link Cursor} */
- public static AppUsageEvent convertToAppUsageEventFromCursor(final Cursor cursor) {
+ /** Converts from {@link Cursor} to {@link AppUsageEvent} */
+ public static AppUsageEvent convertToAppUsageEvent(final Cursor cursor) {
final AppUsageEvent.Builder eventBuilder = AppUsageEvent.newBuilder();
eventBuilder.setTimestamp(getLongFromCursor(cursor, AppUsageEventEntity.KEY_TIMESTAMP));
eventBuilder.setType(
@@ -253,7 +284,7 @@
return eventBuilder.build();
}
- /** Converts to {@link BatteryEvent} from {@link BatteryEventType} */
+ /** Converts from {@link BatteryEventType} to {@link BatteryEvent} */
public static BatteryEvent convertToBatteryEvent(
long timestamp, BatteryEventType type, int batteryLevel) {
final BatteryEvent.Builder eventBuilder = BatteryEvent.newBuilder();
@@ -263,8 +294,8 @@
return eventBuilder.build();
}
- /** Converts to {@link BatteryEvent} from {@link Cursor} */
- public static BatteryEvent convertToBatteryEventFromCursor(final Cursor cursor) {
+ /** Converts from {@link Cursor} to {@link BatteryEvent} */
+ public static BatteryEvent convertToBatteryEvent(final Cursor cursor) {
final BatteryEvent.Builder eventBuilder = BatteryEvent.newBuilder();
eventBuilder.setTimestamp(getLongFromCursor(cursor, BatteryEventEntity.KEY_TIMESTAMP));
eventBuilder.setType(
@@ -276,6 +307,42 @@
return eventBuilder.build();
}
+ /** Converts from {@link BatteryLevelData} to {@link List<BatteryEvent>} */
+ public static List<BatteryEvent> convertToBatteryEventList(
+ final BatteryLevelData batteryLevelData) {
+ final List<BatteryEvent> batteryEventList = new ArrayList<>();
+ final List<BatteryLevelData.PeriodBatteryLevelData> levelDataList =
+ batteryLevelData.getHourlyBatteryLevelsPerDay();
+ for (BatteryLevelData.PeriodBatteryLevelData oneDayData : levelDataList) {
+ for (int hourIndex = 0; hourIndex < oneDayData.getLevels().size() - 1; hourIndex++) {
+ batteryEventList.add(convertToBatteryEvent(
+ oneDayData.getTimestamps().get(hourIndex),
+ BatteryEventType.EVEN_HOUR,
+ oneDayData.getLevels().get(hourIndex)));
+ }
+ }
+ return batteryEventList;
+ }
+
+ /** Converts from {@link Cursor} to {@link BatteryUsageSlot} */
+ public static BatteryUsageSlot convertToBatteryUsageSlot(final Cursor cursor) {
+ final BatteryUsageSlot defaultInstance = BatteryUsageSlot.getDefaultInstance();
+ final int columnIndex =
+ cursor.getColumnIndex(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT);
+ return columnIndex < 0 ? defaultInstance : BatteryUtils.parseProtoFromString(
+ cursor.getString(columnIndex), defaultInstance);
+ }
+
+ /** Converts from {@link Map<Long, BatteryDiffData>} to {@link List<BatteryUsageSlot>} */
+ public static List<BatteryUsageSlot> convertToBatteryUsageSlotList(
+ final Map<Long, BatteryDiffData> batteryDiffDataMap) {
+ List<BatteryUsageSlot> batteryUsageSlotList = new ArrayList<>();
+ for (BatteryDiffData batteryDiffData : batteryDiffDataMap.values()) {
+ batteryUsageSlotList.add(convertToBatteryUsageSlot(batteryDiffData));
+ }
+ return batteryUsageSlotList;
+ }
+
/** Converts UTC timestamp to local time string for logging only, so use the US locale for
* better readability in debugging. */
public static String utcToLocalTimeForLogging(long timestamp) {
@@ -396,6 +463,100 @@
}
}
+ private static BatteryUsageDiff convertToBatteryUsageDiff(BatteryDiffEntry batteryDiffEntry) {
+ BatteryUsageDiff.Builder builder = BatteryUsageDiff.newBuilder()
+ .setUid(batteryDiffEntry.mUid)
+ .setUserId(batteryDiffEntry.mUserId)
+ .setIsHidden(batteryDiffEntry.mIsHidden)
+ .setComponentId(batteryDiffEntry.mComponentId)
+ .setConsumerType(batteryDiffEntry.mConsumerType)
+ .setConsumePower(batteryDiffEntry.mConsumePower)
+ .setForegroundUsageConsumePower(batteryDiffEntry.mForegroundUsageConsumePower)
+ .setBackgroundUsageConsumePower(batteryDiffEntry.mBackgroundUsageConsumePower)
+ .setForegroundUsageTime(batteryDiffEntry.mForegroundUsageTimeInMs)
+ .setBackgroundUsageTime(batteryDiffEntry.mBackgroundUsageTimeInMs)
+ .setScreenOnTime(batteryDiffEntry.mScreenOnTimeInMs);
+ if (batteryDiffEntry.mKey != null) {
+ builder.setKey(batteryDiffEntry.mKey);
+ }
+ if (batteryDiffEntry.mLegacyPackageName != null) {
+ builder.setPackageName(batteryDiffEntry.mLegacyPackageName);
+ }
+ if (batteryDiffEntry.mLegacyLabel != null) {
+ builder.setLabel(batteryDiffEntry.mLegacyLabel);
+ }
+ return builder.build();
+ }
+
+ private static BatteryUsageSlot convertToBatteryUsageSlot(
+ final BatteryDiffData batteryDiffData) {
+ if (batteryDiffData == null) {
+ return BatteryUsageSlot.getDefaultInstance();
+ }
+ final BatteryUsageSlot.Builder builder = BatteryUsageSlot.newBuilder()
+ .setStartTimestamp(batteryDiffData.getStartTimestamp())
+ .setEndTimestamp(batteryDiffData.getEndTimestamp())
+ .setStartBatteryLevel(batteryDiffData.getStartBatteryLevel())
+ .setEndBatteryLevel(batteryDiffData.getEndBatteryLevel())
+ .setScreenOnTime(batteryDiffData.getScreenOnTime());
+ for (BatteryDiffEntry batteryDiffEntry : batteryDiffData.getAppDiffEntryList()) {
+ builder.addAppUsage(convertToBatteryUsageDiff(batteryDiffEntry));
+ }
+ for (BatteryDiffEntry batteryDiffEntry : batteryDiffData.getSystemDiffEntryList()) {
+ builder.addSystemUsage(convertToBatteryUsageDiff(batteryDiffEntry));
+ }
+ return builder.build();
+ }
+
+ private static BatteryDiffEntry convertToBatteryDiffEntry(
+ Context context, final BatteryUsageDiff batteryUsageDiff) {
+ return new BatteryDiffEntry(
+ context,
+ batteryUsageDiff.getUid(),
+ batteryUsageDiff.getUserId(),
+ batteryUsageDiff.getKey(),
+ batteryUsageDiff.getIsHidden(),
+ batteryUsageDiff.getComponentId(),
+ batteryUsageDiff.getPackageName(),
+ batteryUsageDiff.getLabel(),
+ batteryUsageDiff.getConsumerType(),
+ batteryUsageDiff.getForegroundUsageTime(),
+ batteryUsageDiff.getBackgroundUsageTime(),
+ batteryUsageDiff.getScreenOnTime(),
+ batteryUsageDiff.getConsumePower(),
+ batteryUsageDiff.getForegroundUsageConsumePower(),
+ /*foregroundServiceUsageConsumePower=*/ 0,
+ batteryUsageDiff.getBackgroundUsageConsumePower(),
+ /*cachedUsageConsumePower=*/ 0);
+ }
+
+ static BatteryDiffData convertToBatteryDiffData(
+ Context context,
+ final BatteryUsageSlot batteryUsageSlot,
+ @NonNull final Set<String> systemAppsPackageNames,
+ @NonNull final Set<Integer> systemAppsUids) {
+ final List<BatteryDiffEntry> appDiffEntries = new ArrayList<>();
+ final List<BatteryDiffEntry> systemDiffEntries = new ArrayList<>();
+ for (BatteryUsageDiff batteryUsageDiff : batteryUsageSlot.getAppUsageList()) {
+ appDiffEntries.add(convertToBatteryDiffEntry(context, batteryUsageDiff));
+ }
+ for (BatteryUsageDiff batteryUsageDiff : batteryUsageSlot.getSystemUsageList()) {
+ systemDiffEntries.add(convertToBatteryDiffEntry(context, batteryUsageDiff));
+ }
+ return new BatteryDiffData(
+ context,
+ batteryUsageSlot.getStartTimestamp(),
+ batteryUsageSlot.getEndTimestamp(),
+ batteryUsageSlot.getStartBatteryLevel(),
+ batteryUsageSlot.getEndBatteryLevel(),
+ batteryUsageSlot.getScreenOnTime(),
+ appDiffEntries,
+ systemDiffEntries,
+ systemAppsPackageNames,
+ systemAppsUids,
+ /*isAccumulated=*/ false);
+ }
+
private static BatteryInformation constructBatteryInformation(
final BatteryEntry entry,
final BatteryUsageStats batteryUsageStats,
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
index 1c851fd..1a226fd 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
@@ -23,6 +23,7 @@
import android.os.Looper;
import android.os.UserHandle;
import android.os.UserManager;
+import android.util.ArrayMap;
import android.util.Log;
import androidx.annotation.NonNull;
@@ -33,10 +34,10 @@
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* Manages the async tasks to process battery and app usage data.
@@ -69,28 +70,37 @@
*/
public class DataProcessManager {
private static final String TAG = "DataProcessManager";
+ private static final List<BatteryEventType> POWER_CONNECTION_EVENTS =
+ List.of(BatteryEventType.POWER_CONNECTED, BatteryEventType.POWER_DISCONNECTED);
+ private static final List<BatteryEventType> BATTERY_LEVEL_RECORD_EVENTS =
+ List.of(BatteryEventType.FULL_CHARGED, BatteryEventType.EVEN_HOUR);
- private final Handler mHandler;
- private final DataProcessor.UsageMapAsyncResponse mCallbackFunction;
- private final List<AppUsageEvent> mAppUsageEventList = new ArrayList<>();
- private final List<BatteryEvent> mBatteryEventList = new ArrayList<>();
-
- private Context mContext;
- private UserManager mUserManager;
- private List<BatteryLevelData.PeriodBatteryLevelData> mHourlyBatteryLevelsPerDay;
- private Map<Long, Map<String, BatteryHistEntry>> mBatteryHistoryMap;
+ // For testing only.
+ @VisibleForTesting
+ static Map<Long, Map<String, BatteryHistEntry>> sFakeBatteryHistoryMap;
// Raw start timestamp with round to the nearest hour.
- private long mRawStartTimestamp;
+ private final long mRawStartTimestamp;
+ private final long mLastFullChargeTimestamp;
+ private final Context mContext;
+ private final Handler mHandler;
+ private final UserManager mUserManager;
+ private final OnBatteryDiffDataMapLoadedListener mCallbackFunction;
+ private final List<AppUsageEvent> mAppUsageEventList = new ArrayList<>();
+ private final List<BatteryEvent> mBatteryEventList = new ArrayList<>();
+ private final List<BatteryUsageSlot> mBatteryUsageSlotList = new ArrayList<>();
+ private final List<BatteryLevelData.PeriodBatteryLevelData> mHourlyBatteryLevelsPerDay;
+ private final Map<Long, Map<String, BatteryHistEntry>> mBatteryHistoryMap;
private boolean mIsCurrentBatteryHistoryLoaded = false;
private boolean mIsCurrentAppUsageLoaded = false;
private boolean mIsDatabaseAppUsageLoaded = false;
private boolean mIsBatteryEventLoaded = false;
+ private boolean mIsBatteryUsageSlotLoaded = false;
// Used to identify whether screen-on time data should be shown in the UI.
private boolean mShowScreenOnTime = true;
- // Used to identify whether battery level data should be shown in the UI.
- private boolean mShowBatteryLevel = true;
+ private Set<String> mSystemAppsPackageNames = null;
+ private Set<Integer> mSystemAppsUids = null;
/**
* The indexed {@link AppUsagePeriod} list data for each corresponding time slot.
@@ -101,22 +111,33 @@
mAppUsagePeriodMap;
/**
+ * A callback listener when all the data is processed.
+ * This happens when all the async tasks complete and generate the final callback.
+ */
+ public interface OnBatteryDiffDataMapLoadedListener {
+ /** The callback function when all the data is processed. */
+ void onBatteryDiffDataMapLoaded(Map<Long, BatteryDiffData> batteryDiffDataMap);
+ }
+
+ /**
* Constructor when there exists battery level data.
*/
DataProcessManager(
Context context,
Handler handler,
final long rawStartTimestamp,
- @NonNull final DataProcessor.UsageMapAsyncResponse callbackFunction,
+ final long lastFullChargeTimestamp,
+ @NonNull final OnBatteryDiffDataMapLoadedListener callbackFunction,
@NonNull final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay,
@NonNull final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
mContext = context.getApplicationContext();
mHandler = handler;
mUserManager = mContext.getSystemService(UserManager.class);
+ mRawStartTimestamp = rawStartTimestamp;
+ mLastFullChargeTimestamp = lastFullChargeTimestamp;
mCallbackFunction = callbackFunction;
mHourlyBatteryLevelsPerDay = hourlyBatteryLevelsPerDay;
mBatteryHistoryMap = batteryHistoryMap;
- mRawStartTimestamp = rawStartTimestamp;
}
/**
@@ -125,31 +146,49 @@
DataProcessManager(
Context context,
Handler handler,
- @NonNull final DataProcessor.UsageMapAsyncResponse callbackFunction) {
+ @NonNull final OnBatteryDiffDataMapLoadedListener callbackFunction) {
mContext = context.getApplicationContext();
mHandler = handler;
mUserManager = mContext.getSystemService(UserManager.class);
mCallbackFunction = callbackFunction;
+ mRawStartTimestamp = 0L;
+ mLastFullChargeTimestamp = 0L;
+ mHourlyBatteryLevelsPerDay = null;
+ mBatteryHistoryMap = null;
// When there is no battery level data, don't show screen-on time and battery level chart on
// the UI.
mShowScreenOnTime = false;
- mShowBatteryLevel = false;
}
/**
* Starts the async tasks to load battery history data and app usage data.
*/
public void start() {
+ start(/*isFromPeriodJob=*/ false);
+ }
+
+ /**
+ * Starts the async tasks to load battery history data and app usage data.
+ */
+ public void start(boolean isFromPeriodJob) {
// If we have battery level data, load the battery history map and app usage simultaneously.
- if (mShowBatteryLevel) {
- // Loads the latest battery history data from the service.
- loadCurrentBatteryHistoryMap();
+ if (mHourlyBatteryLevelsPerDay != null) {
+ if (isFromPeriodJob) {
+ mIsCurrentBatteryHistoryLoaded = true;
+ mIsCurrentAppUsageLoaded = true;
+ mIsBatteryUsageSlotLoaded = true;
+ } else {
+ // Loads the latest battery history data from the service.
+ loadCurrentBatteryHistoryMap();
+ // Loads the latest app usage list from the service.
+ loadCurrentAppUsageList();
+ // Loads existing battery usage slots from database.
+ loadBatteryUsageSlotList();
+ }
// Loads app usage list from database.
loadDatabaseAppUsageList();
- // Loads the latest app usage list from the service.
- loadCurrentAppUsageList();
// Loads the battery event list from database.
- loadBatteryEventList();
+ loadPowerConnectionBatteryEventList();
} else {
// If there is no battery level data, only load the battery history data from service
// and show it as the app list directly.
@@ -193,11 +232,6 @@
return mShowScreenOnTime;
}
- @VisibleForTesting
- boolean getShowBatteryLevel() {
- return mShowBatteryLevel;
- }
-
private void loadCurrentBatteryHistoryMap() {
new AsyncTask<Void, Void, Map<String, BatteryHistEntry>>() {
@Override
@@ -323,7 +357,7 @@
}.execute();
}
- private void loadBatteryEventList() {
+ private void loadPowerConnectionBatteryEventList() {
new AsyncTask<Void, Void, List<BatteryEvent>>() {
@Override
protected List<BatteryEvent> doInBackground(Void... voids) {
@@ -331,8 +365,10 @@
// Loads the battery event data from the database.
final List<BatteryEvent> batteryEventList =
DatabaseUtils.getBatteryEvents(
- mContext, Calendar.getInstance(), mRawStartTimestamp);
- Log.d(TAG, String.format("execute loadBatteryEventList size=%d in %d/ms",
+ mContext, Calendar.getInstance(), mRawStartTimestamp,
+ POWER_CONNECTION_EVENTS);
+ Log.d(TAG, String.format(
+ "execute loadPowerConnectionBatteryEventList size=%d in %d/ms",
batteryEventList.size(), (System.currentTimeMillis() - startTime)));
return batteryEventList;
}
@@ -352,29 +388,55 @@
}.execute();
}
- private void loadAndApplyBatteryMapFromServiceOnly() {
- new AsyncTask<Void, Void, Map<Integer, Map<Integer, BatteryDiffData>>>() {
+ private void loadBatteryUsageSlotList() {
+ new AsyncTask<Void, Void, List<BatteryUsageSlot>>() {
@Override
- protected Map<Integer, Map<Integer, BatteryDiffData>> doInBackground(Void... voids) {
+ protected List<BatteryUsageSlot> doInBackground(Void... voids) {
final long startTime = System.currentTimeMillis();
- final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap =
- DataProcessor.getBatteryUsageMapFromStatsService(mContext);
- DataProcessor.loadLabelAndIcon(batteryUsageMap);
- Log.d(TAG, String.format(
- "execute loadAndApplyBatteryMapFromServiceOnly size=%d in %d/ms",
- batteryUsageMap.size(), (System.currentTimeMillis() - startTime)));
- return batteryUsageMap;
+ // Loads the battery usage slot data from the database.
+ final List<BatteryUsageSlot> batteryUsageSlotList =
+ DatabaseUtils.getBatteryUsageSlots(
+ mContext, Calendar.getInstance(), mLastFullChargeTimestamp);
+ Log.d(TAG, String.format("execute loadBatteryUsageSlotList size=%d in %d/ms",
+ batteryUsageSlotList.size(), (System.currentTimeMillis() - startTime)));
+ return batteryUsageSlotList;
}
@Override
- protected void onPostExecute(
- final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
- // Set the unused variables to null.
- mContext = null;
+ protected void onPostExecute(final List<BatteryUsageSlot> batteryUsageSlotList) {
+ if (batteryUsageSlotList == null || batteryUsageSlotList.isEmpty()) {
+ Log.d(TAG, "batteryUsageSlotList is null or empty");
+ } else {
+ mBatteryUsageSlotList.clear();
+ mBatteryUsageSlotList.addAll(batteryUsageSlotList);
+ }
+ mIsBatteryUsageSlotLoaded = true;
+ tryToGenerateFinalDataAndApplyCallback();
+ }
+ }.execute();
+ }
+
+ private void loadAndApplyBatteryMapFromServiceOnly() {
+ new AsyncTask<Void, Void, Map<Long, BatteryDiffData>>() {
+ @Override
+ protected Map<Long, BatteryDiffData> doInBackground(Void... voids) {
+ final long startTime = System.currentTimeMillis();
+ final Map<Long, BatteryDiffData> batteryDiffDataMap =
+ DataProcessor.getBatteryDiffDataMapFromStatsService(
+ mContext, mRawStartTimestamp, getSystemAppsPackageNames(),
+ getSystemAppsUids());
+ Log.d(TAG, String.format(
+ "execute loadAndApplyBatteryMapFromServiceOnly size=%d in %d/ms",
+ batteryDiffDataMap.size(), (System.currentTimeMillis() - startTime)));
+ return batteryDiffDataMap;
+ }
+
+ @Override
+ protected void onPostExecute(final Map<Long, BatteryDiffData> batteryDiffDataMap) {
// Post results back to main thread to refresh UI.
if (mHandler != null && mCallbackFunction != null) {
mHandler.post(() -> {
- mCallbackFunction.onBatteryCallbackDataLoaded(batteryUsageMap);
+ mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
});
}
}
@@ -406,38 +468,41 @@
if (!mIsCurrentBatteryHistoryLoaded
|| !mIsCurrentAppUsageLoaded
|| !mIsDatabaseAppUsageLoaded
- || !mIsBatteryEventLoaded) {
+ || !mIsBatteryEventLoaded
+ || !mIsBatteryUsageSlotLoaded) {
return;
}
generateFinalDataAndApplyCallback();
}
- private void generateFinalDataAndApplyCallback() {
- new AsyncTask<Void, Void, Map<Integer, Map<Integer, BatteryDiffData>>>() {
+ private synchronized void generateFinalDataAndApplyCallback() {
+ new AsyncTask<Void, Void, Map<Long, BatteryDiffData>>() {
@Override
- protected Map<Integer, Map<Integer, BatteryDiffData>> doInBackground(Void... voids) {
+ protected Map<Long, BatteryDiffData> doInBackground(Void... voids) {
final long startTime = System.currentTimeMillis();
- final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap =
- DataProcessor.getBatteryUsageMap(
- mContext, mHourlyBatteryLevelsPerDay, mBatteryHistoryMap,
- mAppUsagePeriodMap);
- DataProcessor.loadLabelAndIcon(batteryUsageMap);
- Log.d(TAG, String.format("execute generateFinalDataAndApplyCallback in %d/ms",
- (System.currentTimeMillis() - startTime)));
- return batteryUsageMap;
+ final Map<Long, BatteryDiffData> batteryDiffDataMap = new ArrayMap<>();
+ for (BatteryUsageSlot batteryUsageSlot : mBatteryUsageSlotList) {
+ batteryDiffDataMap.put(batteryUsageSlot.getStartTimestamp(),
+ ConvertUtils.convertToBatteryDiffData(
+ mContext, batteryUsageSlot, getSystemAppsPackageNames(),
+ getSystemAppsUids()));
+ }
+ batteryDiffDataMap.putAll(DataProcessor.getBatteryDiffDataMap(mContext,
+ mHourlyBatteryLevelsPerDay, mBatteryHistoryMap, mAppUsagePeriodMap,
+ getSystemAppsPackageNames(), getSystemAppsUids()));
+
+ Log.d(TAG, String.format(
+ "execute generateFinalDataAndApplyCallback size=%d in %d/ms",
+ batteryDiffDataMap.size(), System.currentTimeMillis() - startTime));
+ return batteryDiffDataMap;
}
@Override
- protected void onPostExecute(
- final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
- // Set the unused variables to null.
- mContext = null;
- mHourlyBatteryLevelsPerDay = null;
- mBatteryHistoryMap = null;
+ protected void onPostExecute(final Map<Long, BatteryDiffData> batteryDiffDataMap) {
// Post results back to main thread to refresh UI.
if (mHandler != null && mCallbackFunction != null) {
mHandler.post(() -> {
- mCallbackFunction.onBatteryCallbackDataLoaded(batteryUsageMap);
+ mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
});
}
}
@@ -445,7 +510,7 @@
}
// Whether we should load app usage data from service or database.
- private boolean shouldLoadAppUsageData() {
+ private synchronized boolean shouldLoadAppUsageData() {
if (!mShowScreenOnTime) {
return false;
}
@@ -480,6 +545,20 @@
return userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE;
}
+ private synchronized Set<String> getSystemAppsPackageNames() {
+ if (mSystemAppsPackageNames == null) {
+ mSystemAppsPackageNames = DataProcessor.getSystemAppsPackageNames(mContext);
+ }
+ return mSystemAppsPackageNames;
+ }
+
+ private synchronized Set<Integer> getSystemAppsUids() {
+ if (mSystemAppsUids == null) {
+ mSystemAppsUids = DataProcessor.getSystemAppsUids(mContext);
+ }
+ return mSystemAppsUids;
+ }
+
/**
* @return Returns battery level data and start async task to compute battery diff usage data
* and load app labels + icons.
@@ -489,14 +568,55 @@
public static BatteryLevelData getBatteryLevelData(
Context context,
@Nullable Handler handler,
- @Nullable final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
- final DataProcessor.UsageMapAsyncResponse asyncResponseDelegate) {
- if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
- Log.d(TAG, "batteryHistoryMap is null in getBatteryLevelData()");
- new DataProcessManager(context, handler, asyncResponseDelegate).start();
+ final boolean isFromPeriodJob,
+ final OnBatteryDiffDataMapLoadedListener onBatteryUsageMapLoadedListener) {
+ final long start = System.currentTimeMillis();
+ final long lastFullChargeTime = DatabaseUtils.getLastFullChargeTime(context);
+ final List<BatteryEvent> batteryLevelRecordEvents =
+ DatabaseUtils.getBatteryEvents(
+ context, Calendar.getInstance(), lastFullChargeTime,
+ BATTERY_LEVEL_RECORD_EVENTS);
+ final long startTimestamp = batteryLevelRecordEvents.isEmpty()
+ ? lastFullChargeTime : batteryLevelRecordEvents.get(0).getTimestamp();
+ final BatteryLevelData batteryLevelData = getPeriodBatteryLevelData(context, handler,
+ startTimestamp, lastFullChargeTime, isFromPeriodJob,
+ onBatteryUsageMapLoadedListener);
+ Log.d(TAG, String.format("execute getBatteryLevelData in %d/ms,"
+ + " batteryLevelRecordEvents.size=%d",
+ (System.currentTimeMillis() - start), batteryLevelRecordEvents.size()));
+
+ return isFromPeriodJob
+ ? batteryLevelData
+ : BatteryLevelData.combine(batteryLevelData, batteryLevelRecordEvents);
+ }
+
+ private static BatteryLevelData getPeriodBatteryLevelData(
+ Context context,
+ @Nullable Handler handler,
+ final long startTimestamp,
+ final long lastFullChargeTime,
+ final boolean isFromPeriodJob,
+ final OnBatteryDiffDataMapLoadedListener onBatteryDiffDataMapLoadedListener) {
+ final long currentTime = System.currentTimeMillis();
+ Log.d(TAG, String.format("getPeriodBatteryLevelData() startTimestamp=%s",
+ ConvertUtils.utcToLocalTimeForLogging(startTimestamp)));
+ if (isFromPeriodJob
+ && startTimestamp >= TimestampUtils.getLastEvenHourTimestamp(currentTime)) {
+ // Nothing needs to be loaded for period job.
return null;
}
+
handler = handler != null ? handler : new Handler(Looper.getMainLooper());
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
+ sFakeBatteryHistoryMap != null ? sFakeBatteryHistoryMap
+ : DatabaseUtils.getHistoryMapSinceLatestRecordBeforeQueryTimestamp(context,
+ Calendar.getInstance(), startTimestamp, lastFullChargeTime);
+ if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
+ Log.d(TAG, "batteryHistoryMap is null in getPeriodBatteryLevelData()");
+ new DataProcessManager(context, handler, onBatteryDiffDataMapLoadedListener).start();
+ return null;
+ }
+
// Process raw history map data into hourly timestamps.
final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap =
DataProcessor.getHistoryMapWithExpectedTimestamps(context, batteryHistoryMap);
@@ -505,20 +625,20 @@
DataProcessor.getLevelDataThroughProcessedHistoryMap(
context, processedBatteryHistoryMap);
if (batteryLevelData == null) {
- new DataProcessManager(context, handler, asyncResponseDelegate).start();
+ new DataProcessManager(context, handler, onBatteryDiffDataMapLoadedListener).start();
Log.d(TAG, "getBatteryLevelData() returns null");
return null;
}
- final long rawStartTimestamp = Collections.min(batteryHistoryMap.keySet());
// Start the async task to compute diff usage data and load labels and icons.
new DataProcessManager(
context,
handler,
- rawStartTimestamp,
- asyncResponseDelegate,
+ startTimestamp,
+ lastFullChargeTime,
+ onBatteryDiffDataMapLoadedListener,
batteryLevelData.getHourlyBatteryLevelsPerDay(),
- processedBatteryHistoryMap).start();
+ processedBatteryHistoryMap).start(isFromPeriodJob);
return batteryLevelData;
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
index 71ed46f..32cd1b9 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
@@ -17,6 +17,9 @@
package com.android.settings.fuelgauge.batteryusage;
import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.getEffectivePackageName;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isSystemConsumer;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isUidConsumer;
+import static com.android.settingslib.fuelgauge.BatteryStatus.BATTERY_LEVEL_UNKNOWN;
import android.app.usage.IUsageStatsManager;
import android.app.usage.UsageEvents;
@@ -44,6 +47,7 @@
import android.util.Log;
import android.util.SparseArray;
+import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.internal.annotations.VisibleForTesting;
@@ -54,6 +58,8 @@
import com.android.settingslib.fuelgauge.BatteryStatus;
import com.android.settingslib.spaprivileged.model.app.AppListRepositoryUtil;
+import com.google.common.base.Preconditions;
+
import java.time.Duration;
import java.util.ArrayList;
import java.util.Calendar;
@@ -76,9 +82,7 @@
private static final int POWER_COMPONENT_WAKELOCK = 12;
private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10;
private static final int MIN_DAILY_DATA_SIZE = 2;
- private static final int MIN_TIMESTAMP_DATA_SIZE = 2;
private static final int MAX_DIFF_SECONDS_OF_UPPER_TIMESTAMP = 5;
- private static final long MIN_TIME_SLOT = DateUtils.HOUR_IN_MILLIS * 2;
private static final String MEDIASERVER_PACKAGE_NAME = "mediaserver";
private static final String ANDROID_CORE_APPS_SHARED_USER_ID = "android.uid.shared";
private static final Map<String, BatteryHistEntry> EMPTY_BATTERY_MAP = new ArrayMap<>();
@@ -157,11 +161,14 @@
}
return batteryLevelData == null
? null
- : getBatteryUsageMap(
- context,
- batteryLevelData.getHourlyBatteryLevelsPerDay(),
- processedBatteryHistoryMap,
- /*appUsagePeriodMap=*/ null);
+ : generateBatteryUsageMap(context,
+ getBatteryDiffDataMap(context,
+ batteryLevelData.getHourlyBatteryLevelsPerDay(),
+ processedBatteryHistoryMap,
+ /*appUsagePeriodMap=*/ null,
+ getSystemAppsPackageNames(context),
+ getSystemAppsUids(context)),
+ batteryLevelData);
}
/**
@@ -261,7 +268,7 @@
* </ul>
*
* <p>The structure is consistent with the battery usage map returned by
- * {@code getBatteryUsageMap}.</p>
+ * {@code generateBatteryUsageMap}.</p>
*
* <p>{@code Long} stands for the userId.</p>
* <p>{@code String} stands for the packageName.</p>
@@ -403,8 +410,8 @@
/**
* @return Returns the processed history map which has interpolated to every hour data.
- * The start and end timestamp must be the even hours.
- * The keys of processed history map should contain every hour between the start and end
+ * The start timestamp is the first timestamp in batteryHistoryMap. The end timestamp is current
+ * time. The keys of processed history map should contain every hour between the start and end
* timestamp. If there's no data in some key, the value will be the empty map.
*/
static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapWithExpectedTimestamps(
@@ -431,28 +438,23 @@
static BatteryLevelData getLevelDataThroughProcessedHistoryMap(
Context context,
final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap) {
- final List<Long> timestampList = new ArrayList<>(processedBatteryHistoryMap.keySet());
- Collections.sort(timestampList);
- final List<Long> dailyTimestamps = getDailyTimestamps(timestampList);
// There should be at least the start and end timestamps. Otherwise, return null to not show
// data in usage chart.
- if (dailyTimestamps.size() < MIN_DAILY_DATA_SIZE) {
+ if (processedBatteryHistoryMap.size() < MIN_DAILY_DATA_SIZE) {
return null;
}
-
- final List<List<Long>> hourlyTimestamps = getHourlyTimestamps(dailyTimestamps);
- final BatteryLevelData.PeriodBatteryLevelData dailyLevelData =
- getPeriodBatteryLevelData(context, processedBatteryHistoryMap, dailyTimestamps);
- final List<BatteryLevelData.PeriodBatteryLevelData> hourlyLevelData =
- getHourlyPeriodBatteryLevelData(
- context, processedBatteryHistoryMap, hourlyTimestamps);
- return new BatteryLevelData(dailyLevelData, hourlyLevelData);
+ Map<Long, Integer> batteryLevelMap = new ArrayMap<>();
+ for (Long timestamp : processedBatteryHistoryMap.keySet()) {
+ batteryLevelMap.put(
+ timestamp, getLevel(context, processedBatteryHistoryMap, timestamp));
+ }
+ return new BatteryLevelData(batteryLevelMap);
}
/**
- * Computes expected timestamp slots. The start timestamp is the last full charge time.
- * The end timestamp is current time. The middle timestamps are the sharp hour timestamps
- * between the start and end timestamps.
+ * Computes expected timestamp slots. The start timestamp is the first timestamp in
+ * rawTimestampList. The end timestamp is current time. The middle timestamps are the sharp hour
+ * timestamps between the start and end timestamps.
*/
@VisibleForTesting
static List<Long> getTimestampSlots(final List<Long> rawTimestampList, final long currentTime) {
@@ -475,56 +477,6 @@
return timestampSlots;
}
- /**
- * Computes expected daily timestamp slots.
- *
- * The valid result should be composed of 3 parts:
- * 1) start timestamp
- * 2) every 00:00 timestamp (default timezone) between the start and end
- * 3) end timestamp
- * Otherwise, returns an empty list.
- */
- @VisibleForTesting
- static List<Long> getDailyTimestamps(final List<Long> timestampList) {
- final List<Long> dailyTimestampList = new ArrayList<>();
- // If timestamp number is smaller than 2, the following computation is not necessary.
- if (timestampList.size() < MIN_TIMESTAMP_DATA_SIZE) {
- return dailyTimestampList;
- }
- final long startTime = timestampList.get(0);
- final long endTime = timestampList.get(timestampList.size() - 1);
- for (long timestamp = startTime; timestamp < endTime;
- timestamp = TimestampUtils.getNextDayTimestamp(timestamp)) {
- dailyTimestampList.add(timestamp);
- }
- dailyTimestampList.add(endTime);
- return dailyTimestampList;
- }
-
- @VisibleForTesting
- static List<List<Long>> getHourlyTimestamps(final List<Long> dailyTimestamps) {
- final List<List<Long>> hourlyTimestamps = new ArrayList<>();
- if (dailyTimestamps.size() < MIN_DAILY_DATA_SIZE) {
- return hourlyTimestamps;
- }
-
- for (int dailyIndex = 0; dailyIndex < dailyTimestamps.size() - 1; dailyIndex++) {
- final List<Long> hourlyTimestampsPerDay = new ArrayList<>();
- final long startTime = dailyTimestamps.get(dailyIndex);
- final long endTime = dailyTimestamps.get(dailyIndex + 1);
-
- hourlyTimestampsPerDay.add(startTime);
- for (long timestamp = TimestampUtils.getNextEvenHourTimestamp(startTime);
- timestamp < endTime; timestamp += MIN_TIME_SLOT) {
- hourlyTimestampsPerDay.add(timestamp);
- }
- hourlyTimestampsPerDay.add(endTime);
-
- hourlyTimestamps.add(hourlyTimestampsPerDay);
- }
- return hourlyTimestamps;
- }
-
@VisibleForTesting
static boolean isFromFullCharge(@Nullable final Map<String, BatteryHistEntry> entryList) {
if (entryList == null) {
@@ -560,34 +512,102 @@
return results;
}
+ static Map<Long, BatteryDiffData> getBatteryDiffDataMap(
+ Context context,
+ final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay,
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
+ final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
+ appUsagePeriodMap,
+ final @NonNull Set<String> systemAppsPackageNames,
+ final @NonNull Set<Integer> systemAppsUids) {
+ final Map<Long, BatteryDiffData> batteryDiffDataMap = new ArrayMap<>();
+ final int currentUserId = context.getUserId();
+ final UserHandle userHandle =
+ Utils.getManagedProfile(context.getSystemService(UserManager.class));
+ final int workProfileUserId =
+ userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE;
+ // Each time slot usage diff data =
+ // sum(Math.abs(timestamp[i+1] data - timestamp[i] data));
+ // since we want to aggregate every hour usage diff data into a single time slot.
+ for (int dailyIndex = 0; dailyIndex < hourlyBatteryLevelsPerDay.size(); dailyIndex++) {
+ if (hourlyBatteryLevelsPerDay.get(dailyIndex) == null) {
+ continue;
+ }
+ final List<Long> hourlyTimestamps =
+ hourlyBatteryLevelsPerDay.get(dailyIndex).getTimestamps();
+ for (int hourlyIndex = 0; hourlyIndex < hourlyTimestamps.size() - 1; hourlyIndex++) {
+ final Long startTimestamp = hourlyTimestamps.get(hourlyIndex);
+ final Long endTimestamp = hourlyTimestamps.get(hourlyIndex + 1);
+ final int startBatteryLevel =
+ hourlyBatteryLevelsPerDay.get(dailyIndex).getLevels().get(hourlyIndex);
+ final int endBatteryLevel =
+ hourlyBatteryLevelsPerDay.get(dailyIndex).getLevels().get(hourlyIndex + 1);
+ final long slotDuration = endTimestamp - startTimestamp;
+ List<Map<String, BatteryHistEntry>> slotBatteryHistoryList = new ArrayList<>();
+ slotBatteryHistoryList.add(
+ batteryHistoryMap.getOrDefault(startTimestamp, EMPTY_BATTERY_MAP));
+ for (Long timestamp = TimestampUtils.getNextHourTimestamp(startTimestamp);
+ timestamp < endTimestamp; timestamp += DateUtils.HOUR_IN_MILLIS) {
+ slotBatteryHistoryList.add(
+ batteryHistoryMap.getOrDefault(timestamp, EMPTY_BATTERY_MAP));
+ }
+ slotBatteryHistoryList.add(
+ batteryHistoryMap.getOrDefault(endTimestamp, EMPTY_BATTERY_MAP));
+
+ final BatteryDiffData hourlyBatteryDiffData =
+ insertHourlyUsageDiffDataPerSlot(
+ context,
+ startTimestamp,
+ endTimestamp,
+ startBatteryLevel,
+ endBatteryLevel,
+ currentUserId,
+ workProfileUserId,
+ slotDuration,
+ systemAppsPackageNames,
+ systemAppsUids,
+ appUsagePeriodMap == null
+ || appUsagePeriodMap.get(dailyIndex) == null
+ ? null
+ : appUsagePeriodMap.get(dailyIndex).get(hourlyIndex),
+ slotBatteryHistoryList);
+ batteryDiffDataMap.put(startTimestamp, hourlyBatteryDiffData);
+ }
+ }
+ return batteryDiffDataMap;
+ }
+
/**
* @return Returns the indexed battery usage data for each corresponding time slot.
*
* <p>There could be 2 cases of the returned value:</p>
* <ul>
- * <li>null: empty or invalid data.</li>
- * <li>non-null: must be a 2d map and composed by 3 parts:</li>
+ * <li> null: empty or invalid data.</li>
+ * <li> 1 part: if batteryLevelData is null.</li>
+ * <p> [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]</p>
+ * <li> 3 parts: if batteryLevelData is not null.</li>
* <p> 1 - [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]</p>
* <p> 2 - [0][SELECTED_INDEX_ALL] ~ [maxDailyIndex][SELECTED_INDEX_ALL]</p>
* <p> 3 - [0][0] ~ [maxDailyIndex][maxHourlyIndex]</p>
* </ul>
*/
- @Nullable
- static Map<Integer, Map<Integer, BatteryDiffData>> getBatteryUsageMap(
+ static Map<Integer, Map<Integer, BatteryDiffData>> generateBatteryUsageMap(
final Context context,
- final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay,
- final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
- final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
- appUsagePeriodMap) {
- if (batteryHistoryMap.isEmpty()) {
- return null;
- }
+ final Map<Long, BatteryDiffData> batteryDiffDataMap,
+ final @Nullable BatteryLevelData batteryLevelData) {
final Map<Integer, Map<Integer, BatteryDiffData>> resultMap = new ArrayMap<>();
- final Set<String> systemAppsPackageNames = getSystemAppsPackageNames(context);
- final Set<Integer> systemAppsUids = getSystemAppsUids(context);
+ if (batteryLevelData == null) {
+ Preconditions.checkArgument(batteryDiffDataMap.size() == 1);
+ BatteryDiffData batteryDiffData = batteryDiffDataMap.values().stream().toList().get(0);
+ final Map<Integer, BatteryDiffData> allUsageMap = new ArrayMap<>();
+ allUsageMap.put(SELECTED_INDEX_ALL, batteryDiffData);
+ resultMap.put(SELECTED_INDEX_ALL, allUsageMap);
+ return resultMap;
+ }
+ List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
+ batteryLevelData.getHourlyBatteryLevelsPerDay();
// Insert diff data from [0][0] to [maxDailyIndex][maxHourlyIndex].
- insertHourlyUsageDiffData(context, systemAppsPackageNames, systemAppsUids,
- hourlyBatteryLevelsPerDay, batteryHistoryMap, appUsagePeriodMap, resultMap);
+ insertHourlyUsageDiffData(hourlyBatteryLevelsPerDay, batteryDiffDataMap, resultMap);
// Insert diff data from [0][SELECTED_INDEX_ALL] to [maxDailyIndex][SELECTED_INDEX_ALL].
insertDailyUsageDiffData(context, hourlyBatteryLevelsPerDay, resultMap);
// Insert diff data [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL].
@@ -602,7 +622,10 @@
@Nullable
static BatteryDiffData generateBatteryDiffData(
final Context context,
- final List<BatteryHistEntry> batteryHistEntryList) {
+ final long startTimestamp,
+ final List<BatteryHistEntry> batteryHistEntryList,
+ final @NonNull Set<String> systemAppsPackageNames,
+ final @NonNull Set<Integer> systemAppsUids) {
if (batteryHistEntryList == null || batteryHistEntryList.isEmpty()) {
Log.w(TAG, "batteryHistEntryList is null or empty in generateBatteryDiffData()");
return null;
@@ -624,6 +647,14 @@
} else {
final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry(
context,
+ entry.mUid,
+ entry.mUserId,
+ entry.getKey(),
+ entry.mIsHidden,
+ entry.mDrainType,
+ entry.mPackageName,
+ entry.mAppLabel,
+ entry.mConsumerType,
entry.mForegroundUsageTimeInMs,
entry.mBackgroundUsageTimeInMs,
/*screenOnTimeInMs=*/ 0,
@@ -631,8 +662,7 @@
entry.mForegroundUsageConsumePower,
entry.mForegroundServiceUsageConsumePower,
entry.mBackgroundUsageConsumePower,
- entry.mCachedUsageConsumePower,
- entry);
+ entry.mCachedUsageConsumePower);
if (currentBatteryDiffEntry.isSystemEntry()) {
systemEntries.add(currentBatteryDiffEntry);
} else {
@@ -645,11 +675,10 @@
if (appEntries.isEmpty() && systemEntries.isEmpty()) {
return null;
}
-
- final Set<String> systemAppsPackageNames = getSystemAppsPackageNames(context);
- final Set<Integer> systemAppsUids = getSystemAppsUids(context);
- return new BatteryDiffData(context, /* screenOnTime= */ 0L, appEntries, systemEntries,
- systemAppsPackageNames, systemAppsUids, /* isAccumulated= */ false);
+ return new BatteryDiffData(context, startTimestamp, getCurrentTimeMillis(),
+ /* startBatteryLevel =*/ 100, getCurrentLevel(context), /* screenOnTime= */ 0L,
+ appEntries, systemEntries, systemAppsPackageNames, systemAppsUids,
+ /* isAccumulated= */ false);
}
/**
@@ -845,21 +874,15 @@
return getScreenOnTime(appUsageMap.get(userId).get(packageName));
}
- /**
- * @return Returns the overall battery usage data from battery stats service directly.
- *
- * The returned value should be always a 2d map and composed by only 1 part:
- * - [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]
- */
- static Map<Integer, Map<Integer, BatteryDiffData>> getBatteryUsageMapFromStatsService(
- final Context context) {
- final Map<Integer, Map<Integer, BatteryDiffData>> resultMap = new ArrayMap<>();
- final Map<Integer, BatteryDiffData> allUsageMap = new ArrayMap<>();
- // Always construct the map whether the value is null or not.
- allUsageMap.put(SELECTED_INDEX_ALL,
- generateBatteryDiffData(context, getBatteryHistListFromFromStatsService(context)));
- resultMap.put(SELECTED_INDEX_ALL, allUsageMap);
- return resultMap;
+ static Map<Long, BatteryDiffData> getBatteryDiffDataMapFromStatsService(
+ final Context context, final long startTimestamp,
+ @NonNull final Set<String> systemAppsPackageNames,
+ @NonNull final Set<Integer> systemAppsUids) {
+ Map<Long, BatteryDiffData> batteryDiffDataMap = new ArrayMap<>(1);
+ batteryDiffDataMap.put(startTimestamp, generateBatteryDiffData(
+ context, startTimestamp, getBatteryHistListFromFromStatsService(context),
+ systemAppsPackageNames, systemAppsUids));
+ return batteryDiffDataMap;
}
static void loadLabelAndIcon(
@@ -878,6 +901,22 @@
}
}
+ static Set<String> getSystemAppsPackageNames(Context context) {
+ return sTestSystemAppsPackageNames != null ? sTestSystemAppsPackageNames
+ : AppListRepositoryUtil.getSystemPackageNames(context, context.getUserId());
+ }
+
+ static Set<Integer> getSystemAppsUids(Context context) {
+ Set<Integer> result = new ArraySet<>(1);
+ try {
+ result.add(context.getPackageManager().getUidForSharedUser(
+ ANDROID_CORE_APPS_SHARED_USER_ID));
+ } catch (PackageManager.NameNotFoundException e) {
+ // No Android Core Apps
+ }
+ return result;
+ }
+
/**
* Generates the list of {@link AppUsageEvent} within the specific time range.
* The buffer is added to make sure the app usage calculation near the boundaries is correct.
@@ -1158,28 +1197,6 @@
resultMap.put(currentSlot, newHistEntryMap);
}
- private static List<BatteryLevelData.PeriodBatteryLevelData> getHourlyPeriodBatteryLevelData(
- Context context,
- final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap,
- final List<List<Long>> timestamps) {
- final List<BatteryLevelData.PeriodBatteryLevelData> levelData = new ArrayList<>();
- timestamps.forEach(
- timestampList -> levelData.add(
- getPeriodBatteryLevelData(
- context, processedBatteryHistoryMap, timestampList)));
- return levelData;
- }
-
- private static BatteryLevelData.PeriodBatteryLevelData getPeriodBatteryLevelData(
- Context context,
- final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap,
- final List<Long> timestamps) {
- final List<Integer> levels = new ArrayList<>();
- timestamps.forEach(
- timestamp -> levels.add(getLevel(context, processedBatteryHistoryMap, timestamp)));
- return new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels);
- }
-
private static Integer getLevel(
Context context,
final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap,
@@ -1188,13 +1205,12 @@
if (entryMap == null || entryMap.isEmpty()) {
Log.e(TAG, "abnormal entry list in the timestamp:"
+ ConvertUtils.utcToLocalTimeForLogging(timestamp));
- return null;
+ return BATTERY_LEVEL_UNKNOWN;
}
// The current time battery history hasn't been loaded yet, returns the current battery
// level.
if (entryMap.containsKey(CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER)) {
- final Intent intent = BatteryUtils.getBatteryIntent(context);
- return BatteryStatus.getBatteryLevel(intent);
+ return getCurrentLevel(context);
}
// Averages the battery level in each time slot to avoid corner conditions.
float batteryLevelCounter = 0;
@@ -1204,20 +1220,15 @@
return Math.round(batteryLevelCounter / entryMap.size());
}
+ private static int getCurrentLevel(Context context) {
+ final Intent intent = BatteryUtils.getBatteryIntent(context);
+ return BatteryStatus.getBatteryLevel(intent);
+ }
+
private static void insertHourlyUsageDiffData(
- Context context,
- final Set<String> systemAppsPackageNames,
- final Set<Integer> systemAppsUids,
final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay,
- final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
- final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
- appUsagePeriodMap,
+ final Map<Long, BatteryDiffData> batteryDiffDataMap,
final Map<Integer, Map<Integer, BatteryDiffData>> resultMap) {
- final int currentUserId = context.getUserId();
- final UserHandle userHandle =
- Utils.getManagedProfile(context.getSystemService(UserManager.class));
- final int workProfileUserId =
- userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE;
// Each time slot usage diff data =
// sum(Math.abs(timestamp[i+1] data - timestamp[i] data));
// since we want to aggregate every hour usage diff data into a single time slot.
@@ -1231,33 +1242,7 @@
hourlyBatteryLevelsPerDay.get(dailyIndex).getTimestamps();
for (int hourlyIndex = 0; hourlyIndex < hourlyTimestamps.size() - 1; hourlyIndex++) {
final Long startTimestamp = hourlyTimestamps.get(hourlyIndex);
- final Long endTimestamp = hourlyTimestamps.get(hourlyIndex + 1);
- final long slotDuration = endTimestamp - startTimestamp;
- List<Map<String, BatteryHistEntry>> slotBatteryHistoryList = new ArrayList<>();
- slotBatteryHistoryList.add(
- batteryHistoryMap.getOrDefault(startTimestamp, EMPTY_BATTERY_MAP));
- for (Long timestamp = TimestampUtils.getNextHourTimestamp(startTimestamp);
- timestamp < endTimestamp; timestamp += DateUtils.HOUR_IN_MILLIS) {
- slotBatteryHistoryList.add(
- batteryHistoryMap.getOrDefault(timestamp, EMPTY_BATTERY_MAP));
- }
- slotBatteryHistoryList.add(
- batteryHistoryMap.getOrDefault(endTimestamp, EMPTY_BATTERY_MAP));
-
- final BatteryDiffData hourlyBatteryDiffData =
- insertHourlyUsageDiffDataPerSlot(
- context,
- currentUserId,
- workProfileUserId,
- slotDuration,
- systemAppsPackageNames,
- systemAppsUids,
- appUsagePeriodMap == null
- || appUsagePeriodMap.get(dailyIndex) == null
- ? null
- : appUsagePeriodMap.get(dailyIndex).get(hourlyIndex),
- slotBatteryHistoryList);
- dailyDiffMap.put(hourlyIndex, hourlyBatteryDiffData);
+ dailyDiffMap.put(hourlyIndex, batteryDiffDataMap.get(startTimestamp));
}
}
}
@@ -1292,6 +1277,10 @@
@Nullable
private static BatteryDiffData insertHourlyUsageDiffDataPerSlot(
final Context context,
+ final long startTimestamp,
+ final long endTimestamp,
+ final int startBatteryLevel,
+ final int endBatteryLevel,
final int currentUserId,
final int workProfileUserId,
final long slotDuration,
@@ -1401,7 +1390,7 @@
currentEntry.mCachedUsageConsumePower,
nextEntry.mCachedUsageConsumePower);
}
- if (selectedBatteryEntry.isSystemEntry()
+ if (isSystemConsumer(selectedBatteryEntry.mConsumerType)
&& selectedBatteryEntry.mDrainType == BatteryConsumer.POWER_COMPONENT_SCREEN) {
// Replace Screen system component time with screen on time.
foregroundUsageTimeInMs = slotScreenOnTime;
@@ -1447,6 +1436,14 @@
backgroundUsageTimeInMs, (long) slotDuration - screenOnTime);
final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry(
context,
+ selectedBatteryEntry.mUid,
+ selectedBatteryEntry.mUserId,
+ selectedBatteryEntry.getKey(),
+ selectedBatteryEntry.mIsHidden,
+ selectedBatteryEntry.mDrainType,
+ selectedBatteryEntry.mPackageName,
+ selectedBatteryEntry.mAppLabel,
+ selectedBatteryEntry.mConsumerType,
foregroundUsageTimeInMs,
backgroundUsageTimeInMs,
screenOnTime,
@@ -1454,8 +1451,7 @@
foregroundUsageConsumePower,
foregroundServiceUsageConsumePower,
backgroundUsageConsumePower,
- cachedUsageConsumePower,
- selectedBatteryEntry);
+ cachedUsageConsumePower);
if (currentBatteryDiffEntry.isSystemEntry()) {
systemEntries.add(currentBatteryDiffEntry);
} else {
@@ -1468,7 +1464,8 @@
return null;
}
- return new BatteryDiffData(context, slotScreenOnTime, appEntries, systemEntries,
+ return new BatteryDiffData(context, startTimestamp, endTimestamp, startBatteryLevel,
+ endBatteryLevel, slotScreenOnTime, appEntries, systemEntries,
systemAppsPackageNames, systemAppsUids, /* isAccumulated= */ false);
}
@@ -1519,7 +1516,7 @@
final int currentUserId,
final int workProfileUserId,
final BatteryHistEntry batteryHistEntry) {
- return batteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY
+ return isUidConsumer(batteryHistEntry.mConsumerType)
&& batteryHistEntry.mUserId != currentUserId
&& batteryHistEntry.mUserId != workProfileUserId;
}
@@ -1531,11 +1528,23 @@
final List<BatteryDiffEntry> appEntries = new ArrayList<>();
final List<BatteryDiffEntry> systemEntries = new ArrayList<>();
+ long startTimestamp = Long.MAX_VALUE;
+ long endTimestamp = 0;
+ int startBatteryLevel = BATTERY_LEVEL_UNKNOWN;
+ int endBatteryLevel = BATTERY_LEVEL_UNKNOWN;
long totalScreenOnTime = 0;
for (BatteryDiffData batteryDiffData : batteryDiffDataList) {
if (batteryDiffData == null) {
continue;
}
+ if (startTimestamp > batteryDiffData.getStartTimestamp()) {
+ startTimestamp = batteryDiffData.getStartTimestamp();
+ startBatteryLevel = batteryDiffData.getStartBatteryLevel();
+ }
+ if (endTimestamp > batteryDiffData.getEndTimestamp()) {
+ endTimestamp = batteryDiffData.getEndTimestamp();
+ endBatteryLevel = batteryDiffData.getEndBatteryLevel();
+ }
totalScreenOnTime += batteryDiffData.getScreenOnTime();
for (BatteryDiffEntry entry : batteryDiffData.getAppDiffEntryList()) {
computeUsageDiffDataPerEntry(entry, diffEntryMap);
@@ -1554,8 +1563,9 @@
}
}
- return diffEntryList.isEmpty() ? null : new BatteryDiffData(context, totalScreenOnTime,
- appEntries, systemEntries, /* systemAppsPackageNames= */ new ArraySet<>(),
+ return diffEntryList.isEmpty() ? null : new BatteryDiffData(context, startTimestamp,
+ endTimestamp, startBatteryLevel, endBatteryLevel, totalScreenOnTime, appEntries,
+ systemEntries, /* systemAppsPackageNames= */ new ArraySet<>(),
/* systemAppsUids= */ new ArraySet<>(), /* isAccumulated= */ true);
}
@@ -1751,22 +1761,6 @@
return v2 > v1 ? v2 - v1 : 0;
}
- private static Set<String> getSystemAppsPackageNames(Context context) {
- return sTestSystemAppsPackageNames != null ? sTestSystemAppsPackageNames
- : AppListRepositoryUtil.getSystemPackageNames(context, context.getUserId());
- }
-
- private static Set<Integer> getSystemAppsUids(Context context) {
- Set<Integer> result = new ArraySet<>();
- try {
- result.add(context.getPackageManager().getUidForSharedUser(
- ANDROID_CORE_APPS_SHARED_USER_ID));
- } catch (PackageManager.NameNotFoundException e) {
- // No Android Core Apps
- }
- return result;
- }
-
private static long getCurrentTimeMillis() {
return sTestCurrentTimeMillis > 0 ? sTestCurrentTimeMillis : System.currentTimeMillis();
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
index b54563b..e78d25c 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
@@ -15,6 +15,8 @@
*/
package com.android.settings.fuelgauge.batteryusage;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.utcToLocalTimeForLogging;
+
import android.app.usage.IUsageStatsManager;
import android.app.usage.UsageStatsManager;
import android.content.ContentResolver;
@@ -33,6 +35,8 @@
import android.os.RemoteException;
import android.os.SystemClock;
import android.os.UserManager;
+import android.util.ArrayMap;
+import android.util.ArraySet;
import android.util.Log;
import androidx.annotation.VisibleForTesting;
@@ -48,9 +52,10 @@
import java.time.Duration;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
+import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collectors;
@@ -62,11 +67,13 @@
/** 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;
static final int DATA_RETENTION_INTERVAL_DAY = 9;
static final String KEY_LAST_LOAD_FULL_CHARGE_TIME = "last_load_full_charge_time";
static final String KEY_LAST_UPLOAD_FULL_CHARGE_TIME = "last_upload_full_charge_time";
static final String KEY_LAST_USAGE_SOURCE = "last_usage_source";
+ static final String KEY_DISMISSED_POWER_ANOMALY_KEYS = "dismissed_power_anomaly_keys";
/** An authority name of the battery content provider. */
public static final String AUTHORITY = "com.android.settings.battery.usage.provider";
@@ -76,12 +83,20 @@
public static final String BATTERY_EVENT_TABLE = "BatteryEvent";
/** A table name for battery usage history. */
public static final String BATTERY_STATE_TABLE = "BatteryState";
+ /** A table name for battery usage slot. */
+ public static final String BATTERY_USAGE_SLOT_TABLE = "BatteryUsageSlot";
+ /** A path name for last full charge time query. */
+ public static final String LAST_FULL_CHARGE_TIMESTAMP_PATH = "lastFullChargeTimestamp";
+ /** A path name for querying the latest record timestamp in battery state table. */
+ public static final String BATTERY_STATE_LATEST_TIMESTAMP_PATH = "batteryStateLatestTimestamp";
/** A path name for app usage latest timestamp query. */
public static final String APP_USAGE_LATEST_TIMESTAMP_PATH = "appUsageLatestTimestamp";
/** Key for query parameter timestamp used in BATTERY_CONTENT_URI **/
public static final String QUERY_KEY_TIMESTAMP = "timestamp";
/** Key for query parameter userid used in APP_USAGE_EVENT_URI **/
public static final String QUERY_KEY_USERID = "userid";
+ /** Key for query parameter battery event type used in BATTERY_EVENT_URI **/
+ public static final String QUERY_BATTERY_EVENT_TYPE = "batteryEventType";
public static final long INVALID_USER_ID = Integer.MIN_VALUE;
/**
@@ -111,6 +126,13 @@
.authority(AUTHORITY)
.appendPath(BATTERY_STATE_TABLE)
.build();
+ /** A content URI to access battery usage slots data. */
+ public static final Uri BATTERY_USAGE_SLOT_URI =
+ new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(AUTHORITY)
+ .appendPath(BATTERY_USAGE_SLOT_TABLE)
+ .build();
// For testing only.
@VisibleForTesting
@@ -138,9 +160,9 @@
.appendQueryParameter(
QUERY_KEY_USERID, Long.toString(userId))
.build();
- final long latestTimestamp =
- loadAppUsageLatestTimestampFromContentProvider(context, appUsageLatestTimestampUri);
- final String latestTimestampString = ConvertUtils.utcToLocalTimeForLogging(latestTimestamp);
+ final long latestTimestamp = loadLongFromContentProvider(
+ context, appUsageLatestTimestampUri, /*defaultValue=*/ INVALID_TIMESTAMP);
+ final String latestTimestampString = utcToLocalTimeForLogging(latestTimestamp);
Log.d(TAG, String.format(
"getAppUsageStartTimestampOfUser() userId=%d latestTimestamp=%s in %d/ms",
userId, latestTimestampString, (System.currentTimeMillis() - startTime)));
@@ -161,8 +183,7 @@
// sure the app usage calculation near the boundaries is correct.
final long queryTimestamp =
Math.max(rawStartTimestamp, sixDaysAgoTimestamp) - USAGE_QUERY_BUFFER_HOURS;
- Log.d(TAG, "sixDayAgoTimestamp: " + ConvertUtils.utcToLocalTimeForLogging(
- sixDaysAgoTimestamp));
+ Log.d(TAG, "sixDaysAgoTimestamp: " + utcToLocalTimeForLogging(sixDaysAgoTimestamp));
final String queryUserIdString = userIds.stream()
.map(userId -> String.valueOf(userId))
.collect(Collectors.joining(","));
@@ -177,8 +198,8 @@
.appendQueryParameter(QUERY_KEY_USERID, queryUserIdString)
.build();
- final List<AppUsageEvent> appUsageEventList =
- loadAppUsageEventsFromContentProvider(context, appUsageEventUri);
+ final List<AppUsageEvent> appUsageEventList = loadListFromContentProvider(
+ context, appUsageEventUri, ConvertUtils::convertToAppUsageEvent);
Log.d(TAG, String.format("getAppUsageEventForUser userId=%s size=%d in %d/ms",
queryUserIdString, appUsageEventList.size(),
(System.currentTimeMillis() - startTime)));
@@ -189,11 +210,15 @@
public static List<BatteryEvent> getBatteryEvents(
Context context,
final Calendar calendar,
- final long rawStartTimestamp) {
+ final long rawStartTimestamp,
+ final List<BatteryEventType> queryBatteryEventTypes) {
final long startTime = System.currentTimeMillis();
final long sixDaysAgoTimestamp = getTimestampSixDaysAgo(calendar);
final long queryTimestamp = Math.max(rawStartTimestamp, sixDaysAgoTimestamp);
Log.d(TAG, "getBatteryEvents for timestamp: " + queryTimestamp);
+ final String queryBatteryEventTypesString = queryBatteryEventTypes.stream()
+ .map(type -> String.valueOf(type.getNumber()))
+ .collect(Collectors.joining(","));
// Builds the content uri everytime to avoid cache.
final Uri batteryEventUri =
new Uri.Builder()
@@ -202,22 +227,93 @@
.appendPath(BATTERY_EVENT_TABLE)
.appendQueryParameter(
QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+ .appendQueryParameter(
+ QUERY_BATTERY_EVENT_TYPE, queryBatteryEventTypesString)
.build();
- final List<BatteryEvent> batteryEventList =
- loadBatteryEventsFromContentProvider(context, batteryEventUri);
+ final List<BatteryEvent> batteryEventList = loadListFromContentProvider(
+ context, batteryEventUri, ConvertUtils::convertToBatteryEvent);
Log.d(TAG, String.format("getBatteryEvents size=%d in %d/ms", batteryEventList.size(),
(System.currentTimeMillis() - startTime)));
return batteryEventList;
}
- /** Long: for timestamp and String: for BatteryHistEntry.getKey() */
- public static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapSinceLastFullCharge(
- Context context, Calendar calendar) {
+ /**
+ * Returns the battery usage slot data after {@code rawStartTimestamp} in battery event table.
+ */
+ public static List<BatteryUsageSlot> getBatteryUsageSlots(
+ Context context,
+ final Calendar calendar,
+ final long rawStartTimestamp) {
final long startTime = System.currentTimeMillis();
final long sixDaysAgoTimestamp = getTimestampSixDaysAgo(calendar);
- Log.d(TAG, "sixDayAgoTimestamp: " + ConvertUtils.utcToLocalTimeForLogging(
- sixDaysAgoTimestamp));
+ final long queryTimestamp = Math.max(rawStartTimestamp, sixDaysAgoTimestamp);
+ Log.d(TAG, "getBatteryUsageSlots for timestamp: " + queryTimestamp);
+ // Builds the content uri everytime to avoid cache.
+ final Uri batteryUsageSlotUri =
+ new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(AUTHORITY)
+ .appendPath(BATTERY_USAGE_SLOT_TABLE)
+ .appendQueryParameter(
+ QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+ .build();
+
+ final List<BatteryUsageSlot> batteryUsageSlotList = loadListFromContentProvider(
+ context, batteryUsageSlotUri, ConvertUtils::convertToBatteryUsageSlot);
+ Log.d(TAG, String.format("getBatteryUsageSlots size=%d in %d/ms",
+ batteryUsageSlotList.size(), (System.currentTimeMillis() - startTime)));
+ return batteryUsageSlotList;
+ }
+
+ /** Returns the last full charge time. */
+ public static long getLastFullChargeTime(Context context) {
+ final long startTime = System.currentTimeMillis();
+ // Builds the content uri everytime to avoid cache.
+ final Uri lastFullChargeTimeUri =
+ new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(AUTHORITY)
+ .appendPath(LAST_FULL_CHARGE_TIMESTAMP_PATH)
+ .build();
+ final long lastFullChargeTime = loadLongFromContentProvider(
+ context, lastFullChargeTimeUri, /*defaultValue=*/ INVALID_TIMESTAMP);
+ final String lastFullChargeTimeString = utcToLocalTimeForLogging(lastFullChargeTime);
+ Log.d(TAG, String.format(
+ "getLastFullChargeTime() lastFullChargeTime=%s in %d/ms",
+ lastFullChargeTimeString, (System.currentTimeMillis() - startTime)));
+ return lastFullChargeTime;
+ }
+
+ /** Returns the first battery state timestamp no later than the {@code queryTimestamp}. */
+ @VisibleForTesting
+ static long getBatteryStateLatestTimestampBeforeQueryTimestamp(
+ Context context, final long queryTimestamp) {
+ final long startTime = System.currentTimeMillis();
+ // Builds the content uri everytime to avoid cache.
+ final Uri batteryStateLatestTimestampUri =
+ new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(AUTHORITY)
+ .appendPath(BATTERY_STATE_LATEST_TIMESTAMP_PATH)
+ .appendQueryParameter(
+ QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+ .build();
+ final long batteryStateLatestTimestamp = loadLongFromContentProvider(
+ context, batteryStateLatestTimestampUri, /*defaultValue=*/ INVALID_TIMESTAMP);
+ final String batteryStateLatestTimestampString =
+ utcToLocalTimeForLogging(batteryStateLatestTimestamp);
+ Log.d(TAG, String.format(
+ "getBatteryStateLatestTimestamp() batteryStateLatestTimestamp=%s in %d/ms",
+ batteryStateLatestTimestampString, (System.currentTimeMillis() - startTime)));
+ return batteryStateLatestTimestamp;
+ }
+
+ /** Returns the battery history map after the given timestamp. */
+ @VisibleForTesting
+ static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapSinceQueryTimestamp(
+ Context context, final long queryTimestamp) {
+ final long startTime = System.currentTimeMillis();
// Builds the content uri everytime to avoid cache.
final Uri batteryStateUri =
new Uri.Builder()
@@ -225,20 +321,59 @@
.authority(AUTHORITY)
.appendPath(BATTERY_STATE_TABLE)
.appendQueryParameter(
- QUERY_KEY_TIMESTAMP, Long.toString(sixDaysAgoTimestamp))
+ QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
.build();
- final Map<Long, Map<String, BatteryHistEntry>> resultMap =
- loadHistoryMapFromContentProvider(context, batteryStateUri);
+ final List<BatteryHistEntry> batteryHistEntryList = loadListFromContentProvider(
+ context, batteryStateUri, cursor -> new BatteryHistEntry(cursor));
+ final Map<Long, Map<String, BatteryHistEntry>> resultMap = new ArrayMap();
+ for (final BatteryHistEntry entry : batteryHistEntryList) {
+ final long timestamp = entry.mTimestamp;
+ final String key = entry.getKey();
+ Map batteryHistEntryMap = resultMap.get(timestamp);
+ // Creates new one if there is no corresponding map.
+ if (batteryHistEntryMap == null) {
+ batteryHistEntryMap = new ArrayMap();
+ resultMap.put(timestamp, batteryHistEntryMap);
+ }
+ batteryHistEntryMap.put(key, entry);
+ }
+
if (resultMap == null || resultMap.isEmpty()) {
- Log.d(TAG, "getHistoryMapSinceLastFullCharge() returns empty or null");
+ Log.d(TAG, "getBatteryHistoryMap() returns empty or null");
} else {
- Log.d(TAG, String.format("getHistoryMapSinceLastFullCharge() size=%d in %d/ms",
+ Log.d(TAG, String.format("getBatteryHistoryMap() size=%d in %d/ms",
resultMap.size(), (System.currentTimeMillis() - startTime)));
}
return resultMap;
}
+ /**
+ * Returns the battery history map since the latest record no later than the given timestamp.
+ * If there is no record before the given timestamp or the given timestamp is before last full
+ * charge time, returns the history map since last full charge time.
+ */
+ public static Map<Long, Map<String, BatteryHistEntry>>
+ getHistoryMapSinceLatestRecordBeforeQueryTimestamp(Context context, Calendar calendar,
+ final long queryTimestamp, final long lastFullChargeTime) {
+ final long sixDaysAgoTimestamp = getTimestampSixDaysAgo(calendar);
+ Log.d(TAG, "sixDaysAgoTimestamp: " + utcToLocalTimeForLogging(sixDaysAgoTimestamp));
+ final long batteryStateLatestTimestamp =
+ queryTimestamp == 0L ? 0L : getBatteryStateLatestTimestampBeforeQueryTimestamp(
+ context, queryTimestamp);
+ final long maxTimestamp = Math.max(Math.max(
+ sixDaysAgoTimestamp, lastFullChargeTime), batteryStateLatestTimestamp);
+ return getHistoryMapSinceQueryTimestamp(context, maxTimestamp);
+ }
+
+ /** Returns the history map since last full charge time. */
+ public static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapSinceLastFullCharge(
+ Context context, Calendar calendar) {
+ final long lastFullChargeTime = getLastFullChargeTime(context);
+ return getHistoryMapSinceLatestRecordBeforeQueryTimestamp(
+ context, calendar, 0, lastFullChargeTime);
+ }
+
/** Clears all data in the battery usage database. */
public static void clearAll(Context context) {
AsyncTask.execute(() -> {
@@ -248,6 +383,7 @@
database.appUsageEventDao().clearAll();
database.batteryEventDao().clearAll();
database.batteryStateDao().clearAll();
+ database.batteryUsageSlotDao().clearAll();
} catch (RuntimeException e) {
Log.e(TAG, "clearAll() failed", e);
}
@@ -265,6 +401,7 @@
database.appUsageEventDao().clearAllBefore(earliestTimestamp);
database.batteryEventDao().clearAllBefore(earliestTimestamp);
database.batteryStateDao().clearAllBefore(earliestTimestamp);
+ database.batteryUsageSlotDao().clearAllBefore(earliestTimestamp);
} catch (RuntimeException e) {
Log.e(TAG, "clearAllBefore() failed", e);
}
@@ -293,7 +430,7 @@
/*user=*/ context.getSystemService(UserManager.class)
.getProfileParent(context.getUser()));
} catch (PackageManager.NameNotFoundException e) {
- Log.e(TAG, "context.createPackageContextAsUser() fail:" + e);
+ Log.e(TAG, "context.createPackageContextAsUser() fail:", e);
return null;
}
}
@@ -320,7 +457,7 @@
resolver.notifyChange(APP_USAGE_EVENT_URI, /*observer=*/ null);
Log.d(TAG, "insert() app usage events data into database");
} catch (Exception e) {
- Log.e(TAG, "bulkInsert() app usage data into database error:\n" + e);
+ Log.e(TAG, "bulkInsert() app usage data into database error:", e);
}
}
Log.d(TAG, String.format("sendAppUsageEventData() size=%d in %d/ms",
@@ -346,8 +483,65 @@
return contentValues;
}
+ static List<ContentValues> sendBatteryEventData(
+ final Context context, final List<BatteryEvent> batteryEventList) {
+ final long startTime = System.currentTimeMillis();
+ // Creates the ContentValues list to insert them into provider.
+ final List<ContentValues> valuesList = new ArrayList<>();
+ batteryEventList.stream()
+ .forEach(batteryEvent -> valuesList.add(
+ ConvertUtils.convertBatteryEventToContentValues(batteryEvent)));
+ int size = 0;
+ final ContentResolver resolver = context.getContentResolver();
+ // Inserts all ContentValues into battery provider.
+ if (!valuesList.isEmpty()) {
+ final ContentValues[] valuesArray = new ContentValues[valuesList.size()];
+ valuesList.toArray(valuesArray);
+ try {
+ size = resolver.bulkInsert(BATTERY_EVENT_URI, valuesArray);
+ resolver.notifyChange(BATTERY_EVENT_URI, /*observer=*/ null);
+ Log.d(TAG, "insert() battery event data into database");
+ } catch (Exception e) {
+ Log.e(TAG, "bulkInsert() battery event data into database error:", e);
+ }
+ }
+ Log.d(TAG, String.format("sendBatteryEventData() size=%d in %d/ms",
+ size, (System.currentTimeMillis() - startTime)));
+ clearMemory();
+ return valuesList;
+ }
+
+ static List<ContentValues> sendBatteryUsageSlotData(
+ final Context context, final List<BatteryUsageSlot> batteryUsageSlotList) {
+ final long startTime = System.currentTimeMillis();
+ // Creates the ContentValues list to insert them into provider.
+ final List<ContentValues> valuesList = new ArrayList<>();
+ batteryUsageSlotList.stream()
+ .forEach(batteryUsageSlot -> valuesList.add(
+ ConvertUtils.convertBatteryUsageSlotToContentValues(batteryUsageSlot)));
+ int size = 0;
+ final ContentResolver resolver = context.getContentResolver();
+ // Inserts all ContentValues into battery provider.
+ if (!valuesList.isEmpty()) {
+ final ContentValues[] valuesArray = new ContentValues[valuesList.size()];
+ valuesList.toArray(valuesArray);
+ try {
+ size = resolver.bulkInsert(BATTERY_USAGE_SLOT_URI, valuesArray);
+ resolver.notifyChange(BATTERY_USAGE_SLOT_URI, /*observer=*/ null);
+ Log.d(TAG, "insert() battery usage slots data into database");
+ } catch (Exception e) {
+ Log.e(TAG, "bulkInsert() battery usage slots data into database error:", e);
+ }
+ }
+ Log.d(TAG, String.format("sendBatteryUsageSlotData() size=%d in %d/ms",
+ size, (System.currentTimeMillis() - startTime)));
+ clearMemory();
+ return valuesList;
+ }
+
static List<ContentValues> sendBatteryEntryData(
final Context context,
+ final long snapshotTimestamp,
final List<BatteryEntry> batteryEntryList,
final BatteryUsageStats batteryUsageStats,
final boolean isFullChargeStart) {
@@ -364,7 +558,6 @@
final int batteryHealth = intent.getIntExtra(
BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
// We should use the same timestamp for each data snapshot.
- final long snapshotTimestamp = Clock.systemUTC().millis();
final long snapshotBootTimestamp = SystemClock.elapsedRealtime();
// Creates the ContentValues list to insert them into provider.
@@ -409,8 +602,7 @@
Log.d(TAG, "insert() battery states data into database with isFullChargeStart:"
+ isFullChargeStart);
} catch (Exception e) {
- errorMessage = e.toString();
- Log.e(TAG, "bulkInsert() data into database error:\n" + errorMessage);
+ Log.e(TAG, "bulkInsert() data into database error:", e);
}
} else {
// Inserts one fake data into battery provider.
@@ -430,8 +622,7 @@
+ isFullChargeStart);
} catch (Exception e) {
- errorMessage = e.toString();
- Log.e(TAG, "insert() data into database error:\n" + errorMessage);
+ Log.e(TAG, "insert() data into database error:", e);
}
valuesList.add(contentValues);
}
@@ -463,6 +654,8 @@
KEY_LAST_LOAD_FULL_CHARGE_TIME);
writeString(context, writer, "LastUploadFullChargeTime",
KEY_LAST_UPLOAD_FULL_CHARGE_TIME);
+ writeString(context, writer, "DismissedPowerAnomalyKeys",
+ KEY_DISMISSED_POWER_ANOMALY_KEYS);
}
static SharedPreferences getSharedPreferences(Context context) {
@@ -501,15 +694,73 @@
return usageSource;
}
+ static void removeDismissedPowerAnomalyKeys(Context context) {
+ final SharedPreferences sharedPreferences = getSharedPreferences(context);
+ if (sharedPreferences != null
+ && sharedPreferences.contains(KEY_DISMISSED_POWER_ANOMALY_KEYS)) {
+ sharedPreferences.edit().remove(KEY_DISMISSED_POWER_ANOMALY_KEYS).apply();
+ }
+ }
+
+ static Set<String> getDismissedPowerAnomalyKeys(Context context) {
+ final SharedPreferences sharedPreferences = getSharedPreferences(context);
+ return sharedPreferences != null
+ ? sharedPreferences.getStringSet(KEY_DISMISSED_POWER_ANOMALY_KEYS, new ArraySet<>())
+ : new ArraySet<>();
+ }
+
+ static void setDismissedPowerAnomalyKeys(Context context, String dismissedPowerAnomalyKey) {
+ final SharedPreferences sharedPreferences = getSharedPreferences(context);
+ if (sharedPreferences != null) {
+ final Set<String> dismissedPowerAnomalyKeys = getDismissedPowerAnomalyKeys(context);
+ dismissedPowerAnomalyKeys.add(dismissedPowerAnomalyKey);
+ sharedPreferences.edit()
+ .putStringSet(KEY_DISMISSED_POWER_ANOMALY_KEYS, dismissedPowerAnomalyKeys)
+ .apply();
+ }
+ }
+
static void recordDateTime(Context context, String preferenceKey) {
final SharedPreferences sharedPreferences = getSharedPreferences(context);
if (sharedPreferences != null) {
- final String currentTime = ConvertUtils.utcToLocalTimeForLogging(
- System.currentTimeMillis());
+ final String currentTime = utcToLocalTimeForLogging(System.currentTimeMillis());
sharedPreferences.edit().putString(preferenceKey, currentTime).apply();
}
}
+ @VisibleForTesting
+ static <T> T loadFromContentProvider(
+ Context context, Uri uri, T defaultValue, Function<Cursor, T> cursorReader) {
+ // Transfer work profile to user profile. Please see b/297036263.
+ context = getParentContext(context);
+ if (context == null) {
+ return defaultValue;
+ }
+ try (Cursor cursor = sFakeSupplier != null ? sFakeSupplier.get() :
+ context.getContentResolver().query(uri, null, null, null)) {
+ return (cursor == null || cursor.getCount() == 0)
+ ? defaultValue : cursorReader.apply(cursor);
+ }
+ }
+
+ private static long loadLongFromContentProvider(
+ Context context, Uri uri, final long defaultValue) {
+ return loadFromContentProvider(context, uri, defaultValue,
+ cursor -> cursor.moveToFirst() ? cursor.getLong(/*columnIndex=*/ 0) : defaultValue);
+ }
+
+ private static <E> List<E> loadListFromContentProvider(
+ Context context, Uri uri, Function<Cursor, E> converter) {
+ return loadFromContentProvider(context, uri, new ArrayList<>(),
+ cursor -> {
+ final List<E> list = new ArrayList<>();
+ while (cursor.moveToNext()) {
+ list.add(converter.apply(cursor));
+ }
+ return list;
+ });
+ }
+
private static void writeString(
Context context, PrintWriter writer, String prefix, String key) {
final SharedPreferences sharedPreferences = getSharedPreferences(context);
@@ -519,116 +770,6 @@
}
}
- private static long loadAppUsageLatestTimestampFromContentProvider(
- Context context, final Uri appUsageLatestTimestampUri) {
- // We have already make sure the context here is with profile parent's user identity. Don't
- // need to check whether current user is work profile.
- try (Cursor cursor = sFakeSupplier != null
- ? sFakeSupplier.get()
- : context.getContentResolver().query(
- appUsageLatestTimestampUri, null, null, null)) {
- if (cursor == null || cursor.getCount() == 0) {
- return INVALID_USER_ID;
- }
- cursor.moveToFirst();
- // There is only one column returned so use the index 0 directly.
- final long latestTimestamp = cursor.getLong(/*columnIndex=*/ 0);
- try {
- cursor.close();
- } catch (Exception e) {
- Log.e(TAG, "cursor.close() failed", e);
- }
- // If there is no data for this user, 0 will be returned from the database.
- return latestTimestamp == 0 ? INVALID_USER_ID : latestTimestamp;
- }
- }
-
- private static List<AppUsageEvent> loadAppUsageEventsFromContentProvider(
- Context context, Uri appUsageEventUri) {
- final List<AppUsageEvent> appUsageEventList = new ArrayList<>();
- context = getParentContext(context);
- if (context == null) {
- return appUsageEventList;
- }
- try (Cursor cursor = sFakeSupplier != null
- ? sFakeSupplier.get()
- : context.getContentResolver().query(appUsageEventUri, null, null, null)) {
- if (cursor == null || cursor.getCount() == 0) {
- return appUsageEventList;
- }
- // Loads and recovers all AppUsageEvent data from cursor.
- while (cursor.moveToNext()) {
- appUsageEventList.add(ConvertUtils.convertToAppUsageEventFromCursor(cursor));
- }
- try {
- cursor.close();
- } catch (Exception e) {
- Log.e(TAG, "cursor.close() failed", e);
- }
- }
- return appUsageEventList;
- }
-
- private static List<BatteryEvent> loadBatteryEventsFromContentProvider(
- Context context, Uri batteryEventUri) {
- final List<BatteryEvent> batteryEventList = new ArrayList<>();
- context = getParentContext(context);
- if (context == null) {
- return batteryEventList;
- }
- try (Cursor cursor = sFakeSupplier != null
- ? sFakeSupplier.get()
- : context.getContentResolver().query(batteryEventUri, null, null, null)) {
- if (cursor == null || cursor.getCount() == 0) {
- return batteryEventList;
- }
- // Loads and recovers all AppUsageEvent data from cursor.
- while (cursor.moveToNext()) {
- batteryEventList.add(ConvertUtils.convertToBatteryEventFromCursor(cursor));
- }
- try {
- cursor.close();
- } catch (Exception e) {
- Log.e(TAG, "cursor.close() failed", e);
- }
- }
- return batteryEventList;
- }
-
- private static Map<Long, Map<String, BatteryHistEntry>> loadHistoryMapFromContentProvider(
- Context context, Uri batteryStateUri) {
- context = getParentContext(context);
- if (context == null) {
- return null;
- }
- final Map<Long, Map<String, BatteryHistEntry>> resultMap = new HashMap();
- try (Cursor cursor = sFakeSupplier != null ? sFakeSupplier.get() :
- context.getContentResolver().query(batteryStateUri, null, null, null)) {
- if (cursor == null || cursor.getCount() == 0) {
- return resultMap;
- }
- // Loads and recovers all BatteryHistEntry data from cursor.
- while (cursor.moveToNext()) {
- final BatteryHistEntry entry = new BatteryHistEntry(cursor);
- final long timestamp = entry.mTimestamp;
- final String key = entry.getKey();
- Map batteryHistEntryMap = resultMap.get(timestamp);
- // Creates new one if there is no corresponding map.
- if (batteryHistEntryMap == null) {
- batteryHistEntryMap = new HashMap<>();
- resultMap.put(timestamp, batteryHistEntryMap);
- }
- batteryHistEntryMap.put(key, entry);
- }
- try {
- cursor.close();
- } catch (Exception e) {
- Log.e(TAG, "cursor.close() failed", e);
- }
- }
- return resultMap;
- }
-
private static void clearMemory() {
if (SystemClock.uptimeMillis() > CLEAR_MEMORY_THRESHOLD_MS) {
return;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
index 2bd0466..2371a19 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
@@ -44,7 +44,6 @@
}
BatteryUsageLogUtils.writeLog(context, Action.EXECUTE_JOB, "");
BatteryUsageDataLoader.enqueueWork(context, /*isFullChargeStart=*/ false);
- AppUsageDataLoader.enqueueWork(context);
Log.d(TAG, "refresh periodic job from action=" + action);
PeriodicJobManager.getInstance(context).refreshJob(/*fromBoot=*/ false);
DatabaseUtils.clearExpiredDataIfNeeded(context);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
index 5a96fb4..f13f34c 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
@@ -21,12 +21,13 @@
import android.content.Context;
import android.database.ContentObserver;
import android.net.Uri;
+import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
+import android.os.Looper;
import android.provider.SearchIndexableResource;
import android.util.Log;
-import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.loader.app.LoaderManager;
import androidx.loader.content.Loader;
@@ -39,11 +40,13 @@
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.utils.AsyncLoaderCompat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
+import java.util.Optional;
/** Advanced power usage. */
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
@@ -55,16 +58,17 @@
@VisibleForTesting
BatteryHistoryPreference mHistPref;
@VisibleForTesting
- Map<Long, Map<String, BatteryHistEntry>> mBatteryHistoryMap;
- @VisibleForTesting
- final BatteryHistoryLoaderCallbacks mBatteryHistoryLoaderCallbacks =
- new BatteryHistoryLoaderCallbacks();
+ final BatteryLevelDataLoaderCallbacks mBatteryLevelDataLoaderCallbacks =
+ new BatteryLevelDataLoaderCallbacks();
private boolean mIsChartDataLoaded = false;
+ private long mResumeTimestamp;
private BatteryChartPreferenceController mBatteryChartPreferenceController;
+ private Optional<BatteryLevelData> mBatteryLevelData;
+ private final Handler mHandler = new Handler(Looper.getMainLooper());
private final ContentObserver mBatteryObserver =
- new ContentObserver(new Handler()) {
+ new ContentObserver(mHandler) {
@Override
public void onChange(boolean selfChange) {
Log.d(TAG, "onBatteryContentChange: " + selfChange);
@@ -79,6 +83,7 @@
super.onCreate(icicle);
mHistPref = findPreference(KEY_BATTERY_CHART);
setBatteryChartPreferenceController();
+ AsyncTask.execute(() -> BootBroadcastReceiver.invokeJobRecheck(getContext()));
}
@Override
@@ -109,6 +114,7 @@
super.onPause();
// Resets the flag to reload usage data in onResume() callback.
mIsChartDataLoaded = false;
+ mBatteryLevelData = null;
final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
if (uri != null) {
getContext().getContentResolver().unregisterContentObserver(mBatteryObserver);
@@ -118,6 +124,7 @@
@Override
public void onResume() {
super.onResume();
+ mResumeTimestamp = System.currentTimeMillis();
final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
if (uri != null) {
getContext().getContentResolver().registerContentObserver(
@@ -159,20 +166,8 @@
}
@Override
- protected boolean isBatteryHistoryNeeded() {
- return true;
- }
-
- @Override
protected void refreshUi(@BatteryUpdateType int refreshType) {
- final Context context = getContext();
- if (context == null) {
- return;
- }
- updatePreference(mHistPref);
- if (mBatteryChartPreferenceController != null && mBatteryHistoryMap != null) {
- mBatteryChartPreferenceController.setBatteryHistoryMap(mBatteryHistoryMap);
- }
+ // Do nothing
}
@Override
@@ -181,11 +176,32 @@
bundle.putInt(KEY_REFRESH_TYPE, refreshType);
if (!mIsChartDataLoaded) {
mIsChartDataLoaded = true;
- restartLoader(LoaderIndex.BATTERY_HISTORY_LOADER, bundle,
- mBatteryHistoryLoaderCallbacks);
+ restartLoader(LoaderIndex.BATTERY_LEVEL_DATA_LOADER, bundle,
+ mBatteryLevelDataLoaderCallbacks);
}
}
+ private void onBatteryLevelDataUpdate(BatteryLevelData batteryLevelData) {
+ mBatteryLevelData = Optional.ofNullable(batteryLevelData);
+ if (mBatteryChartPreferenceController != null) {
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(batteryLevelData);
+ Log.d(TAG, String.format("Battery chart shows in %d millis",
+ System.currentTimeMillis() - mResumeTimestamp));
+ }
+ }
+
+ private void onBatteryDiffDataMapUpdate(Map<Long, BatteryDiffData> batteryDiffDataMap) {
+ if (mBatteryLevelData != null && mBatteryChartPreferenceController != null) {
+ Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap =
+ DataProcessor.generateBatteryUsageMap(
+ getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null));
+ DataProcessor.loadLabelAndIcon(batteryUsageMap);
+ mBatteryChartPreferenceController.onBatteryUsageMapUpdate(batteryUsageMap);
+ }
+ Log.d(TAG, String.format("Battery usage list shows in %d millis",
+ System.currentTimeMillis() - mResumeTimestamp));
+ }
+
private void setBatteryChartPreferenceController() {
if (mHistPref != null && mBatteryChartPreferenceController != null) {
mHistPref.setChartPreferenceController(mBatteryChartPreferenceController);
@@ -216,28 +232,31 @@
}
};
- private class BatteryHistoryLoaderCallbacks
- implements LoaderManager.LoaderCallbacks<Map<Long, Map<String, BatteryHistEntry>>> {
- private int mRefreshType;
-
+ private class BatteryLevelDataLoaderCallbacks
+ implements LoaderManager.LoaderCallbacks<BatteryLevelData> {
@Override
- @NonNull
- public Loader<Map<Long, Map<String, BatteryHistEntry>>> onCreateLoader(
- int id, Bundle bundle) {
- mRefreshType = bundle.getInt(KEY_REFRESH_TYPE);
- return new BatteryHistoryLoader(getContext());
+ public Loader<BatteryLevelData> onCreateLoader(int id, Bundle bundle) {
+ return new AsyncLoaderCompat<BatteryLevelData>(getContext().getApplicationContext()) {
+ @Override
+ protected void onDiscardResult(BatteryLevelData result) {}
+
+ @Override
+ public BatteryLevelData loadInBackground() {
+ return DataProcessManager.getBatteryLevelData(
+ getContext(), mHandler, /*isFromPeriodJob=*/ false,
+ map -> PowerUsageAdvanced.this.onBatteryDiffDataMapUpdate(map));
+ }
+ };
}
@Override
- public void onLoadFinished(Loader<Map<Long, Map<String, BatteryHistEntry>>> loader,
- Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
- mBatteryHistoryMap = batteryHistoryMap;
- PowerUsageAdvanced.this.onLoadFinished(mRefreshType);
+ public void onLoadFinished(Loader<BatteryLevelData> loader,
+ BatteryLevelData batteryLevelData) {
+ PowerUsageAdvanced.this.onBatteryLevelDataUpdate(batteryLevelData);
}
@Override
- public void onLoaderReset(Loader<Map<Long, Map<String, BatteryHistEntry>>> loader) {
+ public void onLoaderReset(Loader<BatteryLevelData> loader) {
}
}
-
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java
index ed3a921..22856b6 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java
@@ -32,7 +32,6 @@
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.fuelgauge.BatteryBroadcastReceiver;
-import com.android.settings.fuelgauge.BatteryUtils;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -63,14 +62,14 @@
LoaderIndex.BATTERY_USAGE_STATS_LOADER,
LoaderIndex.BATTERY_INFO_LOADER,
LoaderIndex.BATTERY_TIP_LOADER,
- LoaderIndex.BATTERY_HISTORY_LOADER
+ LoaderIndex.BATTERY_LEVEL_DATA_LOADER
})
public @interface LoaderIndex {
int BATTERY_USAGE_STATS_LOADER = 0;
int BATTERY_INFO_LOADER = 1;
int BATTERY_TIP_LOADER = 2;
- int BATTERY_HISTORY_LOADER = 3;
+ int BATTERY_LEVEL_DATA_LOADER = 3;
}
@Override
@@ -108,7 +107,7 @@
protected void restartBatteryStatsLoader(int refreshType) {
final Bundle bundle = new Bundle();
bundle.putInt(KEY_REFRESH_TYPE, refreshType);
- bundle.putBoolean(KEY_INCLUDE_HISTORY, isBatteryHistoryNeeded());
+ bundle.putBoolean(KEY_INCLUDE_HISTORY, false);
restartLoader(LoaderIndex.BATTERY_USAGE_STATS_LOADER, bundle,
mBatteryUsageStatsLoaderCallbacks);
}
@@ -137,14 +136,6 @@
protected abstract void refreshUi(@BatteryUpdateType int refreshType);
- protected abstract boolean isBatteryHistoryNeeded();
-
- protected void updatePreference(BatteryHistoryPreference historyPref) {
- final long startTime = System.currentTimeMillis();
- historyPref.setBatteryUsageStats(mBatteryUsageStats);
- BatteryUtils.logRuntime(TAG, "updatePreference", startTime);
- }
-
private class BatteryUsageStatsLoaderCallbacks
implements LoaderManager.LoaderCallbacks<BatteryUsageStats> {
private int mRefreshType;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
index a0c5843..f52de5f 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
@@ -45,7 +45,6 @@
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
-import com.android.settingslib.widget.LayoutPreference;
import java.util.List;
@@ -69,8 +68,6 @@
@VisibleForTesting
BatteryUtils mBatteryUtils;
@VisibleForTesting
- LayoutPreference mBatteryLayoutPref;
- @VisibleForTesting
BatteryInfo mBatteryInfo;
@VisibleForTesting
@@ -143,9 +140,6 @@
final SettingsActivity activity = (SettingsActivity) getActivity();
mBatteryHeaderPreferenceController = use(BatteryHeaderPreferenceController.class);
- mBatteryHeaderPreferenceController.setActivity(activity);
- mBatteryHeaderPreferenceController.setFragment(this);
- mBatteryHeaderPreferenceController.setLifecycle(getSettingsLifecycle());
mBatteryTipPreferenceController = use(BatteryTipPreferenceController.class);
mBatteryTipPreferenceController.setActivity(activity);
@@ -208,11 +202,6 @@
return R.string.help_url_battery;
}
- @Override
- protected boolean isBatteryHistoryNeeded() {
- return false;
- }
-
protected void refreshUi(@BatteryUpdateType int refreshType) {
final Context context = getContext();
if (context == null) {
@@ -240,11 +229,6 @@
}
@VisibleForTesting
- void setBatteryLayoutPreference(LayoutPreference layoutPreference) {
- mBatteryLayoutPref = layoutPreference;
- }
-
- @VisibleForTesting
void initFeatureProvider() {
mPowerFeatureProvider = FeatureFactory.getFeatureFactory().getPowerUsageFeatureProvider();
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
index a638d09..0a6de71 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
@@ -36,9 +36,16 @@
@Query("SELECT * FROM BatteryEventEntity ORDER BY timestamp DESC")
List<BatteryEventEntity> getAll();
+ /** Gets the {@link Cursor} of the last full charge time . */
+ @Query("SELECT MAX(timestamp) FROM BatteryEventEntity"
+ + " WHERE batteryEventType = 3") // BatteryEventType.FULL_CHARGED = 3
+ Cursor getLastFullChargeTimestamp();
+
/** Gets the {@link Cursor} of all recorded data after a specific timestamp. */
- @Query("SELECT * FROM BatteryEventEntity WHERE timestamp > :timestamp ORDER BY timestamp DESC")
- Cursor getAllAfter(long timestamp);
+ @Query("SELECT * FROM BatteryEventEntity"
+ + " WHERE timestamp > :timestamp AND batteryEventType IN (:batteryEventTypes)"
+ + " ORDER BY timestamp DESC")
+ Cursor getAllAfter(long timestamp, List<Integer> batteryEventTypes);
/** Deletes all recorded data before a specific timestamp. */
@Query("DELETE FROM BatteryEventEntity WHERE timestamp <= :timestamp")
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java
index 6d2ab8d..520c6be 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java
@@ -37,16 +37,18 @@
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(List<BatteryState> states);
+ /** Gets the {@link Cursor} of the latest record timestamp no later than the given timestamp. */
+ @Query("SELECT MAX(timestamp) FROM BatteryState WHERE timestamp <= :timestamp")
+ Cursor getLatestTimestampBefore(long timestamp);
+
+ /** Lists all recorded battery states after a specific timestamp. */
+ @Query("SELECT * FROM BatteryState WHERE timestamp >= :timestamp ORDER BY timestamp ASC")
+ Cursor getBatteryStatesAfter(long timestamp);
+
/** Lists all recorded data after a specific timestamp. */
@Query("SELECT * FROM BatteryState WHERE timestamp > :timestamp ORDER BY timestamp DESC")
List<BatteryState> getAllAfter(long timestamp);
- /** Gets the {@link Cursor} of all recorded data since last full charge within 7 days. */
- @Query("SELECT * FROM BatteryState WHERE timestamp >= :timestampSixDaysAgo AND timestamp >= "
- + "(SELECT IFNULL((SELECT MAX(timestamp) FROM BatteryState "
- + "WHERE isFullChargeCycleStart = 1), 0)) ORDER BY timestamp ASC")
- Cursor getCursorSinceLastFullCharge(long timestampSixDaysAgo);
-
/** Get the count of distinct timestamp after a specific timestamp. */
@Query("SELECT COUNT(DISTINCT timestamp) FROM BatteryState WHERE timestamp > :timestamp")
int getDistinctTimestampCount(long timestamp);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
index 466a7ca..28a0012 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
@@ -25,7 +25,8 @@
/** A {@link RoomDatabase} for battery usage states history. */
@Database(
- entities = {AppUsageEventEntity.class, BatteryEventEntity.class, BatteryState.class},
+ entities = {AppUsageEventEntity.class, BatteryEventEntity.class, BatteryState.class,
+ BatteryUsageSlotEntity.class},
version = 1)
public abstract class BatteryStateDatabase extends RoomDatabase {
private static final String TAG = "BatteryStateDatabase";
@@ -38,13 +39,15 @@
public abstract BatteryEventDao batteryEventDao();
/** Provides DAO for battery state table. */
public abstract BatteryStateDao batteryStateDao();
+ /** Provides DAO for battery usage slot table. */
+ public abstract BatteryUsageSlotDao batteryUsageSlotDao();
/** Gets or creates an instance of {@link RoomDatabase}. */
public static BatteryStateDatabase getInstance(Context context) {
if (sBatteryStateDatabase == null) {
sBatteryStateDatabase =
Room.databaseBuilder(
- context, BatteryStateDatabase.class, "battery-usage-db-v8")
+ context, BatteryStateDatabase.class, "battery-usage-db-v9")
// Allows accessing data in the main thread for dumping bugreport.
.allowMainThreadQueries()
.fallbackToDestructiveMigration()
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java
new file mode 100644
index 0000000..a695f6a
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage.db;
+
+import android.database.Cursor;
+
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+
+import java.util.List;
+
+/** Data access object for accessing {@link BatteryUsageSlotEntity} in the database. */
+@Dao
+public interface BatteryUsageSlotDao {
+ /** Inserts a {@link BatteryUsageSlotEntity} data into the database. */
+ @Insert(onConflict = OnConflictStrategy.REPLACE)
+ void insert(BatteryUsageSlotEntity event);
+
+ /** Gets all recorded data. */
+ @Query("SELECT * FROM BatteryUsageSlotEntity ORDER BY timestamp ASC")
+ List<BatteryUsageSlotEntity> getAll();
+
+ /** Gets the {@link Cursor} of all recorded data after a specific timestamp. */
+ @Query("SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp"
+ + " ORDER BY timestamp ASC")
+ Cursor getAllAfter(long timestamp);
+
+ /** Deletes all recorded data before a specific timestamp. */
+ @Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp <= :timestamp")
+ void clearAllBefore(long timestamp);
+
+ /** Clears all recorded data in the database. */
+ @Query("DELETE FROM BatteryUsageSlotEntity")
+ void clearAll();
+}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java
new file mode 100644
index 0000000..c2d5631
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage.db;
+
+import android.content.ContentValues;
+
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
+
+import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
+
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
+
+import java.util.Locale;
+
+/** A {@link Entity} class to save battery usage slot into database. */
+@Entity
+public class BatteryUsageSlotEntity {
+ /** Keys for accessing {@link ContentValues}. */
+ public static final String KEY_TIMESTAMP = "timestamp";
+ public static final String KEY_BATTERY_USAGE_SLOT = "batteryUsageSlot";
+
+ @PrimaryKey(autoGenerate = true)
+ private long mId;
+
+ public final long timestamp;
+ public final String batteryUsageSlot;
+
+ public BatteryUsageSlotEntity(final long timestamp, final String batteryUsageSlot) {
+ this.timestamp = timestamp;
+ this.batteryUsageSlot = batteryUsageSlot;
+ }
+
+ /** Sets the auto-generated content ID. */
+ public void setId(long id) {
+ this.mId = id;
+ }
+
+ /** Gets the auto-generated content ID. */
+ public long getId() {
+ return mId;
+ }
+
+ @Override
+ public String toString() {
+ final String recordAtDateTime = ConvertUtils.utcToLocalTimeForLogging(timestamp);
+ final StringBuilder builder = new StringBuilder()
+ .append("\nBatteryUsageSlot{")
+ .append(String.format(Locale.US, "\n\ttimestamp=%s|batteryUsageSlot=%s",
+ recordAtDateTime, batteryUsageSlot))
+ .append("\n}");
+ return builder.toString();
+ }
+
+ /** Creates new {@link BatteryUsageSlotEntity} from {@link ContentValues}. */
+ public static BatteryUsageSlotEntity create(ContentValues contentValues) {
+ Builder builder = BatteryUsageSlotEntity.newBuilder();
+ if (contentValues.containsKey(KEY_TIMESTAMP)) {
+ builder.setTimestamp(contentValues.getAsLong(KEY_TIMESTAMP));
+ }
+ if (contentValues.containsKey(KEY_BATTERY_USAGE_SLOT)) {
+ builder.setBatteryUsageSlot(contentValues.getAsString(KEY_BATTERY_USAGE_SLOT));
+ }
+ return builder.build();
+ }
+
+ /** Creates a new {@link Builder} instance. */
+ public static Builder newBuilder() {
+ return new Builder();
+ }
+
+ /** A convenience builder class to improve readability. */
+ public static class Builder {
+ private long mTimestamp;
+ private String mBatteryUsageSlot;
+
+ /** Sets the timestamp. */
+ @CanIgnoreReturnValue
+ public Builder setTimestamp(final long timestamp) {
+ mTimestamp = timestamp;
+ return this;
+ }
+
+ /** Sets the battery usage slot. */
+ @CanIgnoreReturnValue
+ public Builder setBatteryUsageSlot(final String batteryUsageSlot) {
+ mBatteryUsageSlot = batteryUsageSlot;
+ return this;
+ }
+
+ /** Builds the {@link BatteryUsageSlotEntity}. */
+ public BatteryUsageSlotEntity build() {
+ return new BatteryUsageSlotEntity(mTimestamp, mBatteryUsageSlot);
+ }
+
+ private Builder() {}
+ }
+}
diff --git a/src/com/android/settings/fuelgauge/protos/Android.bp b/src/com/android/settings/fuelgauge/protos/Android.bp
index 1f3cdd9..531bdc32 100644
--- a/src/com/android/settings/fuelgauge/protos/Android.bp
+++ b/src/com/android/settings/fuelgauge/protos/Android.bp
@@ -24,6 +24,14 @@
}
java_library {
+ name: "battery-usage-slot-protos-lite",
+ proto: {
+ type: "lite",
+ },
+ srcs: ["battery_usage_slot.proto"],
+}
+
+java_library {
name: "fuelgauge-usage-state-protos-lite",
proto: {
type: "lite",
diff --git a/src/com/android/settings/fuelgauge/protos/battery_event.proto b/src/com/android/settings/fuelgauge/protos/battery_event.proto
index 80ccb3b..58ab3be 100644
--- a/src/com/android/settings/fuelgauge/protos/battery_event.proto
+++ b/src/com/android/settings/fuelgauge/protos/battery_event.proto
@@ -8,6 +8,8 @@
UNKNOWN_EVENT = 0;
POWER_CONNECTED = 1;
POWER_DISCONNECTED = 2;
+ FULL_CHARGED = 3;
+ EVEN_HOUR = 4;
}
message BatteryEvent {
diff --git a/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
new file mode 100644
index 0000000..e3b604b
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
@@ -0,0 +1,32 @@
+syntax = "proto2";
+
+option java_multiple_files = true;
+option java_package = "com.android.settings.fuelgauge.batteryusage";
+option java_outer_classname = "BatteryUsageSlotProto";
+
+message BatteryUsageSlot {
+ optional int64 start_timestamp = 1;
+ optional int64 end_timestamp = 2;
+ optional int32 start_battery_level = 3;
+ optional int32 end_battery_level = 4;
+ optional int64 screen_on_time = 5;
+ repeated BatteryUsageDiff app_usage = 6;
+ repeated BatteryUsageDiff system_usage = 7;
+}
+
+message BatteryUsageDiff {
+ optional int64 uid = 1;
+ optional int64 user_id = 2;
+ optional string package_name = 3;
+ optional string label = 4;
+ optional string key = 5;
+ optional bool is_hidden = 6;
+ optional int32 component_id = 7;
+ optional int32 consumer_type = 8;
+ optional double consume_power = 9;
+ optional double foreground_usage_consume_power = 10;
+ optional double background_usage_consume_power = 11;
+ optional int64 foreground_usage_time = 12;
+ optional int64 background_usage_time = 13;
+ optional int64 screen_on_time = 14;
+}
diff --git a/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto b/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto
index 380c786..644ab9e 100644
--- a/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto
+++ b/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto
@@ -11,8 +11,8 @@
message PowerAnomalyEvent {
optional string event_id = 1;
optional int64 timestamp = 2;
- optional string type = 3; // e.g. settings, apps
- optional string key = 4; // e.g. brightness, significant_increase
+ optional PowerAnomalyType type = 3;
+ optional PowerAnomalyKey key = 4;
optional float score = 5;
oneof info {
WarningBannerInfo warning_banner_info = 6;
@@ -20,6 +20,25 @@
}
}
+// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead.
+// The enum value will be used to decide the tips card style like icons and colors.
+//
+// Next id: 2
+enum PowerAnomalyType{
+ TYPE_SETTINGS_BANNER = 0;
+ TYPE_APPS_ITEM = 1;
+}
+
+// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead.
+// The enum value will be used to decide pre-defined title and button labels.
+//
+// Next id: 3
+enum PowerAnomalyKey{
+ KEY_BRIGHTNESS = 0;
+ KEY_SCREEN_TIMEOUT = 1;
+ KEY_APP = 2;
+}
+
message WarningBannerInfo {
optional string title_string = 1;
optional string description_string = 2;
@@ -28,7 +47,9 @@
optional string main_button_destination = 4;
// Used in the SubSettingLauncher.setSourceMetricsCategory().
optional int32 main_button_source_metrics_category = 5;
- optional string cancel_button_string = 6;
+ // Used in the SubSettingLauncher.setArguments().
+ optional string main_button_source_highlight_key = 6;
+ optional string cancel_button_string = 7;
}
message WarningItemInfo {
@@ -38,9 +59,5 @@
optional string title_string = 4;
optional string description_string = 5;
optional string main_button_string = 6;
- // Used in the SubSettingLauncher.setDestination().
- optional string main_button_destination = 7;
- // Used in the SubSettingLauncher.setSourceMetricsCategory().
- optional int32 main_button_source_metrics_category = 8;
- optional string cancel_button_string = 9;
+ optional string cancel_button_string = 7;
}
diff --git a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
index ab83a9d..ccdb257 100644
--- a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
+++ b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
@@ -52,7 +52,8 @@
}
}
- static boolean isGestureAvailable(Context context) {
+ /** Returns {@code true} if gesture is available. */
+ public static boolean isGestureAvailable(Context context) {
// Skip if the swipe up settings are not available
if (!context.getResources().getBoolean(
com.android.internal.R.bool.config_swipe_up_gesture_setting_available)) {
diff --git a/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java b/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
index fa7b372..d79db43 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysPickerDialogFragment.java
@@ -21,7 +21,6 @@
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.hardware.input.InputManager;
@@ -48,7 +47,6 @@
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.Utils;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import java.util.ArrayList;
import java.util.Arrays;
@@ -70,7 +68,6 @@
private TextView mLeftBracket;
private TextView mRightBracket;
private ImageView mActionKeyIcon;
- private MetricsFeatureProvider mMetricsFeatureProvider;
private List<int[]> mRemappableKeyList =
new ArrayList<>(Arrays.asList(
@@ -95,7 +92,6 @@
mActivity = getActivity();
FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
- mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
InputManager inputManager = mActivity.getSystemService(InputManager.class);
mKeyDefaultName = getArguments().getString(DEFAULT_KEY);
@@ -143,7 +139,6 @@
doneButton.setOnClickListener(v -> {
String selectedItem = modifierKeys.get(adapter.getCurrentItem());
Spannable itemSummary;
- logMetricsForRemapping(selectedItem);
if (selectedItem.equals(mKeyDefaultName)) {
itemSummary = new SpannableString(
mActivity.getString(R.string.modifier_keys_default_summary));
@@ -194,28 +189,6 @@
return modifierKeyDialog;
}
- private void logMetricsForRemapping(String selectedItem) {
- if (mKeyDefaultName.equals("Caps lock")) {
- mMetricsFeatureProvider.action(
- mActivity, SettingsEnums.ACTION_FROM_CAPS_LOCK_TO, selectedItem);
- }
-
- if (mKeyDefaultName.equals("Ctrl")) {
- mMetricsFeatureProvider.action(
- mActivity, SettingsEnums.ACTION_FROM_CTRL_TO, selectedItem);
- }
-
- if (mKeyDefaultName.equals("Action key")) {
- mMetricsFeatureProvider.action(
- mActivity, SettingsEnums.ACTION_FROM_ACTION_KEY_TO, selectedItem);
- }
-
- if (mKeyDefaultName.equals("Alt")) {
- mMetricsFeatureProvider.action(
- mActivity, SettingsEnums.ACTION_FROM_ALT_TO, selectedItem);
- }
- }
-
private void setInitialFocusItem(
List<String> modifierKeys, ModifierKeyAdapter adapter) {
if (modifierKeys.indexOf(mKeyFocus) == -1) {
diff --git a/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java b/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java
index d49fbd1..070968c 100644
--- a/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java
+++ b/src/com/android/settings/inputmethod/ModifierKeysResetDialogFragment.java
@@ -21,7 +21,6 @@
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
-import android.app.settings.SettingsEnums;
import android.hardware.input.InputManager;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -32,8 +31,6 @@
import androidx.fragment.app.DialogFragment;
import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class ModifierKeysResetDialogFragment extends DialogFragment {
@@ -42,8 +39,6 @@
private static final String MODIFIER_KEYS_META = "modifier_keys_meta";
private static final String MODIFIER_KEYS_ALT = "modifier_keys_alt";
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
private String[] mKeys = {
MODIFIER_KEYS_CAPS_LOCK,
MODIFIER_KEYS_CTRL,
@@ -57,7 +52,6 @@
super.onCreateDialog(savedInstanceState);
Activity activity = getActivity();
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
InputManager inputManager = activity.getSystemService(InputManager.class);
View dialoglayout =
LayoutInflater.from(activity).inflate(R.layout.modifier_key_reset_dialog, null);
@@ -67,7 +61,6 @@
Button restoreButton = dialoglayout.findViewById(R.id.modifier_key_reset_restore_button);
restoreButton.setOnClickListener(v -> {
- mMetricsFeatureProvider.action(activity, SettingsEnums.ACTION_CLEAR_REMAPPINGS);
inputManager.clearAllModifierKeyRemappings();
dismiss();
activity.recreate();
diff --git a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java
index 879f134..e63d7d1 100644
--- a/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java
+++ b/src/com/android/settings/inputmethod/NewKeyboardLayoutPickerController.java
@@ -16,7 +16,6 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.input.InputDeviceIdentifier;
import android.hardware.input.InputManager;
@@ -31,9 +30,7 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.TickButtonPreference;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -56,16 +53,13 @@
private KeyboardLayout[] mKeyboardLayouts;
private PreferenceScreen mScreen;
private String mPreviousSelection;
- private String mFinalSelectedLayout;
private String mLayout;
- private MetricsFeatureProvider mMetricsFeatureProvider;
public NewKeyboardLayoutPickerController(Context context, String key) {
super(context, key);
mIm = context.getSystemService(InputManager.class);
mInputDeviceId = -1;
mPreferenceMap = new HashMap<>();
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
public void initialize(Fragment parent) {
@@ -80,7 +74,6 @@
mInputMethodSubtype =
arguments.getParcelable(NewKeyboardSettingsUtils.EXTRA_INPUT_METHOD_SUBTYPE);
mLayout = getSelectedLayoutLabel();
- mFinalSelectedLayout = mLayout;
mKeyboardLayouts = mIm.getKeyboardLayoutListForInputDevice(
mInputDeviceIdentifier, mUserId, mInputMethodInfo, mInputMethodSubtype);
parent.getActivity().setTitle(mTitle);
@@ -99,11 +92,6 @@
@Override
public void onStop() {
- if (!mLayout.equals(mFinalSelectedLayout)) {
- String change = "From:" + mLayout + ", to:" + mFinalSelectedLayout;
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_PK_LAYOUT_CHANGED, change);
- }
mIm.unregisterInputDeviceListener(this);
mInputDeviceId = -1;
}
@@ -134,7 +122,6 @@
}
setLayout(pref);
mPreviousSelection = preference.getKey();
- mFinalSelectedLayout = pref.getTitle().toString();
return true;
}
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index 0b69df5..ed3bd1d 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -108,7 +108,6 @@
SHOW_VIRTUAL_KEYBOARD_SWITCH));
FeatureFactory featureFactory = FeatureFactory.getFeatureFactory();
- mMetricsFeatureProvider = featureFactory.getMetricsFeatureProvider();
mFeatureProvider = featureFactory.getKeyboardSettingsFeatureProvider();
mSupportsFirmwareUpdate = mFeatureProvider.supportsFirmwareUpdate();
if (mSupportsFirmwareUpdate) {
@@ -125,10 +124,6 @@
KeyboardLayoutPickerFragment.EXTRA_INPUT_DEVICE_IDENTIFIER);
int intentFromWhere =
activity.getIntent().getIntExtra(android.provider.Settings.EXTRA_ENTRYPOINT, -1);
- if (intentFromWhere != -1) {
- mMetricsFeatureProvider.action(
- getContext(), SettingsEnums.ACTION_OPEN_PK_SETTINGS_FROM, intentFromWhere);
- }
if (inputDeviceIdentifier != null) {
mAutoInputDeviceIdentifier = inputDeviceIdentifier;
}
@@ -259,10 +254,6 @@
});
}
category.addPreference(pref);
- mMetricsFeatureProvider.action(
- getContext(),
- SettingsEnums.ACTION_USE_SPECIFIC_KEYBOARD,
- hardKeyboardDeviceInfo.mDeviceName);
}
mKeyboardAssistanceCategory.setOrder(1);
preferenceScreen.addPreference(mKeyboardAssistanceCategory);
diff --git a/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java b/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
index 648a3e6..bbe65c1 100644
--- a/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TouchGesturesButtonPreferenceController.java
@@ -16,7 +16,6 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.util.FeatureFlagUtils;
@@ -24,8 +23,6 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.widget.ButtonPreference;
public class TouchGesturesButtonPreferenceController extends BasePreferenceController {
@@ -36,11 +33,9 @@
private static final String GESTURE_DIALOG_TAG = "GESTURE_DIALOG_TAG";
private Fragment mParent;
- private MetricsFeatureProvider mMetricsFeatureProvider;
public TouchGesturesButtonPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
public void setFragment(Fragment parent) {
@@ -72,7 +67,6 @@
}
private void showTouchpadGestureEducation() {
- mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LEARN_TOUCHPAD_GESTURE_CLICK);
TrackpadGestureDialogFragment fragment = new TrackpadGestureDialogFragment();
fragment.setTargetFragment(mParent, 0);
fragment.show(mParent.getActivity().getSupportFragmentManager(), GESTURE_DIALOG_TAG);
diff --git a/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java
index d410a1b..5133d04 100644
--- a/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadBottomPreferenceController.java
@@ -16,22 +16,16 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.input.InputSettings;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadBottomPreferenceController extends TogglePreferenceController {
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
public TrackpadBottomPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -42,8 +36,6 @@
@Override
public boolean setChecked(boolean isChecked) {
InputSettings.setTouchpadRightClickZone(mContext, isChecked);
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_GESTURE_BOTTOM_RIGHT_TAP_CHANGED, isChecked);
return true;
}
diff --git a/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceController.java
index 36fb0c0..017689d 100644
--- a/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceController.java
@@ -16,24 +16,18 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadGoBackPreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_BACK_ENABLED;
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
public TrackpadGoBackPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -44,8 +38,6 @@
@Override
public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_GESTURE_GO_BACK_CHANGED, isChecked);
return true;
}
diff --git a/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceController.java b/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceController.java
index dbc706e..18699e3 100644
--- a/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceController.java
@@ -16,24 +16,18 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadGoHomePreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_HOME_ENABLED;
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
public TrackpadGoHomePreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -44,8 +38,6 @@
@Override
public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_GESTURE_GO_HOME_CHANGED, isChecked);
return true;
}
diff --git a/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceController.java
index d430e4d..21f04a3 100644
--- a/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceController.java
@@ -16,24 +16,18 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadNotificationsPreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_NOTIFICATION_ENABLED;
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
public TrackpadNotificationsPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -44,8 +38,6 @@
@Override
public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_GESTURE_NOTIFICATION_CHANGED, isChecked);
return true;
}
diff --git a/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceController.java
index d024546..71b4119 100644
--- a/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceController.java
@@ -16,25 +16,20 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.input.InputSettings;
import androidx.preference.PreferenceScreen;
import com.android.settings.core.SliderPreferenceController;
-import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.SeekBarPreference;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadPointerSpeedPreferenceController extends SliderPreferenceController {
private SeekBarPreference mPreference;
- private MetricsFeatureProvider mMetricsFeatureProvider;
public TrackpadPointerSpeedPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -58,8 +53,6 @@
return false;
}
InputSettings.setTouchpadPointerSpeed(mContext, position);
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_GESTURE_POINTER_SPEED_CHANGED, position);
return true;
}
diff --git a/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceController.java
index 44a56e7..eab2b33 100644
--- a/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceController.java
@@ -16,24 +16,18 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadRecentAppsPreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_OVERVIEW_ENABLED;
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
public TrackpadRecentAppsPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -44,8 +38,6 @@
@Override
public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_GESTURE_RECENT_APPS_CHANGED, isChecked);
return true;
}
diff --git a/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java
index 042126d..10d3013 100644
--- a/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceController.java
@@ -16,22 +16,16 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.input.InputSettings;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadReverseScrollingPreferenceController extends TogglePreferenceController {
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
public TrackpadReverseScrollingPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -42,8 +36,6 @@
@Override
public boolean setChecked(boolean isChecked) {
InputSettings.setTouchpadNaturalScrolling(mContext, !isChecked);
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_GESTURE_REVERSE_SCROLLING_CHANGED, isChecked);
return true;
}
diff --git a/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceController.java
index 2b11411..84de64e 100644
--- a/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceController.java
@@ -16,24 +16,18 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadSwitchAppsPreferenceController extends TogglePreferenceController {
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_QUICK_SWITCH_ENABLED;
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
public TrackpadSwitchAppsPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -44,8 +38,6 @@
@Override
public boolean setChecked(boolean isChecked) {
Settings.Secure.putInt(mContext.getContentResolver(), SETTING_KEY, isChecked ? 1 : 0);
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_GESTURE_SWITCH_APPS_CHANGED, isChecked);
return true;
}
diff --git a/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java b/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java
index f78c81e..8655307 100644
--- a/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java
+++ b/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceController.java
@@ -16,22 +16,16 @@
package com.android.settings.inputmethod;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.input.InputSettings;
import com.android.settings.R;
import com.android.settings.core.TogglePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class TrackpadTapToClickPreferenceController extends TogglePreferenceController {
- private MetricsFeatureProvider mMetricsFeatureProvider;
-
public TrackpadTapToClickPreferenceController(Context context, String key) {
super(context, key);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -42,8 +36,6 @@
@Override
public boolean setChecked(boolean isChecked) {
InputSettings.setTouchpadTapToClick(mContext, isChecked);
- mMetricsFeatureProvider.action(
- mContext, SettingsEnums.ACTION_GESTURE_TAP_TO_CLICK_CHANGED, isChecked);
return true;
}
diff --git a/src/com/android/settings/localepicker/AppLocalePickerActivity.java b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
index 1d27590..1c6a21a 100644
--- a/src/com/android/settings/localepicker/AppLocalePickerActivity.java
+++ b/src/com/android/settings/localepicker/AppLocalePickerActivity.java
@@ -18,14 +18,17 @@
import android.app.FragmentTransaction;
import android.app.LocaleManager;
-import android.app.settings.SettingsEnums;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
import android.content.Intent;
-import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.LocaleList;
+import android.os.SystemClock;
import android.os.SystemProperties;
+import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import android.view.MenuItem;
@@ -33,8 +36,7 @@
import android.widget.FrameLayout;
import android.widget.ListView;
-import androidx.activity.result.ActivityResultLauncher;
-import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.core.app.NotificationCompat;
import androidx.core.view.ViewCompat;
import com.android.internal.app.LocalePickerWithRegion;
@@ -43,27 +45,24 @@
import com.android.settings.applications.AppLocaleUtil;
import com.android.settings.applications.appinfo.AppLocaleDetails;
import com.android.settings.core.SettingsBaseActivity;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-
-import java.util.Locale;
public class AppLocalePickerActivity extends SettingsBaseActivity
implements LocalePickerWithRegion.LocaleSelectedListener, MenuItem.OnActionExpandListener {
private static final String TAG = AppLocalePickerActivity.class.getSimpleName();
+ private static final String CHANNEL_ID_SUGGESTION = "suggestion";
+ private static final String CHANNEL_ID_SUGGESTION_TO_USER = "Locale suggestion";
+ private static final String EXTRA_SYSTEM_LOCALE_DIALOG_TYPE = "system_locale_dialog_type";
+ private static final String LOCALE_SUGGESTION = "locale_suggestion";
+ static final boolean ENABLED = false;
static final String EXTRA_APP_LOCALE = "app_locale";
- private static final String PROP_SYSTEM_LOCALE_SUGGESTION = "android.system.locale.suggestion";
- private static final boolean ENABLED = false;
- private static final int SIM_LOCALE = 1 << 0;
- private static final int SYSTEM_LOCALE = 1 << 1;
- private static final int APP_LOCALE = 1 << 2;
- private static final int IME_LOCALE = 1 << 3;
+ static final String EXTRA_NOTIFICATION_ID = "notification_id";
+ static final String PROP_SYSTEM_LOCALE_SUGGESTION = "android.system.locale.suggestion";
private String mPackageName;
private LocalePickerWithRegion mLocalePickerWithRegion;
private AppLocaleDetails mAppLocaleDetails;
private View mAppLocaleDetailContainer;
- private MetricsFeatureProvider mMetricsFeatureProvider;
+ private NotificationController mNotificationController;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -89,7 +88,7 @@
setTitle(R.string.app_locale_picker_title);
getActionBar().setDisplayHomeAsUpEnabled(true);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
+ mNotificationController = NotificationController.getInstance(this);
mLocalePickerWithRegion = LocalePickerWithRegion.createLanguagePicker(
this,
@@ -118,7 +117,6 @@
if (localeInfo == null || localeInfo.getLocale() == null || localeInfo.isSystemLocale()) {
setAppDefaultLocale("");
} else {
- logLocaleSource(localeInfo);
setAppDefaultLocale(localeInfo.getLocale().toLanguageTag());
broadcastAppLocaleChange(localeInfo);
}
@@ -156,52 +154,78 @@
if (!SystemProperties.getBoolean(PROP_SYSTEM_LOCALE_SUGGESTION, ENABLED)) {
return;
}
- String languageTag = localeInfo.getLocale().toLanguageTag();
- if (isInSystemLocale(languageTag) || localeInfo.isAppCurrentLocale()) {
+ String localeTag = localeInfo.getLocale().toLanguageTag();
+ if (LocaleUtils.isInSystemLocale(localeTag) || localeInfo.isAppCurrentLocale()) {
return;
}
- String intentAction = getString(R.string.config_app_locale_intent_action);
- if (!TextUtils.isEmpty(intentAction)) {
- try {
- PackageManager packageManager = getPackageManager();
- ApplicationInfo info = packageManager.getApplicationInfo(mPackageName,
- PackageManager.GET_META_DATA);
- Intent intent = new Intent(intentAction)
- .putExtra(Intent.EXTRA_UID, info.uid)
- .putExtra(EXTRA_APP_LOCALE, languageTag);
- if (intent.resolveActivity(packageManager) != null) {
- mStartForResult.launch(intent);
- }
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(TAG, "Unable to find info for package: " + mPackageName);
+ try {
+ int uid = getPackageManager().getApplicationInfo(mPackageName,
+ PackageManager.GET_META_DATA).uid;
+ boolean launchNotification = mNotificationController.shouldTriggerNotification(
+ uid, localeTag);
+ if (launchNotification) {
+ triggerNotification(
+ mNotificationController.getNotificationId(localeTag),
+ getString(R.string.title_system_locale_addition,
+ localeInfo.getFullNameNative()),
+ getString(R.string.desc_system_locale_addition),
+ localeTag);
}
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(TAG, "Unable to find info for package: " + mPackageName);
}
}
- // Invoke startActivityFroResult so that the calling package can be shared via the intent.
- private ActivityResultLauncher<Intent> mStartForResult = registerForActivityResult(
- new ActivityResultContracts.StartActivityForResult(),
- result -> {
- }
- );
+ private void triggerNotification(
+ int notificationId,
+ String title,
+ String description,
+ String localeTag) {
+ NotificationManager notificationManager = getSystemService(NotificationManager.class);
+ final boolean channelExist =
+ notificationManager.getNotificationChannel(CHANNEL_ID_SUGGESTION) != null;
- /**
- * Checks if the localeTag is in the system locale. Since in the current design, the system
- * language list would not show two locales with the same language and region but different
- * numbering system. So, during the comparison, the extension has to be stripped.
- *
- * @param languageTag A language tag
- * @return true if the locale is in the system locale. Otherwise, false.
- */
- private static boolean isInSystemLocale(String languageTag) {
- LocaleList systemLocales = LocaleList.getDefault();
- Locale locale = Locale.forLanguageTag(languageTag).stripExtensions();
- for (int i = 0; i < systemLocales.size(); i++) {
- if (locale.equals(systemLocales.get(i).stripExtensions())) {
- return true;
- }
+ // Create an alert channel if it does not exist
+ if (!channelExist) {
+ NotificationChannel channel =
+ new NotificationChannel(
+ CHANNEL_ID_SUGGESTION,
+ CHANNEL_ID_SUGGESTION_TO_USER,
+ NotificationManager.IMPORTANCE_DEFAULT);
+ channel.setSound(/* sound */ null, /* audioAttributes */ null); // silent notification
+ notificationManager.createNotificationChannel(channel);
}
- return false;
+
+ final NotificationCompat.Builder builder =
+ new NotificationCompat.Builder(this, CHANNEL_ID_SUGGESTION)
+ .setSmallIcon(R.drawable.ic_settings_language)
+ .setAutoCancel(true)
+ .setContentTitle(title)
+ .setContentText(description)
+ .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
+ .setContentIntent(
+ createPendingIntent(localeTag, notificationId, false))
+ .setDeleteIntent(
+ createPendingIntent(localeTag, notificationId, true));
+ notificationManager.notify(notificationId, builder.build());
+ }
+
+ private PendingIntent createPendingIntent(String locale, int notificationId,
+ boolean isDeleteIntent) {
+ Intent intent = isDeleteIntent
+ ? new Intent(this, NotificationCancelReceiver.class)
+ : new Intent(Settings.ACTION_LOCALE_SETTINGS)
+ .putExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE, LOCALE_SUGGESTION)
+ .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+
+ intent.putExtra(EXTRA_APP_LOCALE, locale)
+ .putExtra(EXTRA_NOTIFICATION_ID, notificationId);
+ int flag = PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT;
+ int elapsedTime = (int) SystemClock.elapsedRealtimeNanos();
+
+ return isDeleteIntent
+ ? PendingIntent.getBroadcast(this, elapsedTime, intent, flag)
+ : PendingIntent.getActivity(this, elapsedTime, intent, flag);
}
private View launchAppLocaleDetailsPage() {
@@ -250,32 +274,4 @@
return false;
}
-
- private void logLocaleSource(LocaleStore.LocaleInfo localeInfo) {
- if (!localeInfo.isSuggested() || localeInfo.isAppCurrentLocale()) {
- return;
- }
- int localeSource = 0;
- if (hasSuggestionType(localeInfo,
- LocaleStore.LocaleInfo.SUGGESTION_TYPE_SYSTEM_AVAILABLE_LANGUAGE)) {
- localeSource |= SYSTEM_LOCALE;
- }
- if (hasSuggestionType(localeInfo,
- LocaleStore.LocaleInfo.SUGGESTION_TYPE_OTHER_APP_LANGUAGE)) {
- localeSource |= APP_LOCALE;
- }
- if (hasSuggestionType(localeInfo, LocaleStore.LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE)) {
- localeSource |= IME_LOCALE;
- }
- if (hasSuggestionType(localeInfo, LocaleStore.LocaleInfo.SUGGESTION_TYPE_SIM)) {
- localeSource |= SIM_LOCALE;
- }
- mMetricsFeatureProvider.action(this,
- SettingsEnums.ACTION_CHANGE_APP_LANGUAGE_FROM_SUGGESTED, localeSource);
- }
-
- private static boolean hasSuggestionType(LocaleStore.LocaleInfo localeInfo,
- int suggestionType) {
- return localeInfo.isSuggestionOfType(suggestionType);
- }
}
diff --git a/src/com/android/settings/localepicker/LocaleDialogFragment.java b/src/com/android/settings/localepicker/LocaleDialogFragment.java
index 52ee63d..91cbc87 100644
--- a/src/com/android/settings/localepicker/LocaleDialogFragment.java
+++ b/src/com/android/settings/localepicker/LocaleDialogFragment.java
@@ -51,6 +51,7 @@
static final int DIALOG_CONFIRM_SYSTEM_DEFAULT = 1;
static final int DIALOG_NOT_AVAILABLE_LOCALE = 2;
+ static final int DIALOG_ADD_SYSTEM_LOCALE = 3;
static final String ARG_DIALOG_TYPE = "arg_dialog_type";
static final String ARG_TARGET_LOCALE = "arg_target_locale";
@@ -95,7 +96,8 @@
mShouldKeepDialog = savedInstanceState.getBoolean(ARG_SHOW_DIALOG, false);
// Keep the dialog if user rotates the device, otherwise close the confirm system
// default dialog only when user changes the locale.
- if (type == DIALOG_CONFIRM_SYSTEM_DEFAULT && !mShouldKeepDialog) {
+ if ((type == DIALOG_CONFIRM_SYSTEM_DEFAULT || type == DIALOG_ADD_SYSTEM_LOCALE)
+ && !mShouldKeepDialog) {
dismiss();
}
}
@@ -192,7 +194,8 @@
@Override
public void onClick(DialogInterface dialog, int which) {
- if (mDialogType == DIALOG_CONFIRM_SYSTEM_DEFAULT) {
+ if (mDialogType == DIALOG_CONFIRM_SYSTEM_DEFAULT
+ || mDialogType == DIALOG_ADD_SYSTEM_LOCALE) {
int result = Activity.RESULT_CANCELED;
boolean changed = false;
if (which == DialogInterface.BUTTON_POSITIVE) {
@@ -201,9 +204,10 @@
}
Intent intent = new Intent();
Bundle bundle = new Bundle();
- bundle.putInt(ARG_DIALOG_TYPE, DIALOG_CONFIRM_SYSTEM_DEFAULT);
+ bundle.putInt(ARG_DIALOG_TYPE, mDialogType);
+ bundle.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE, mLocaleInfo);
intent.putExtras(bundle);
- mParent.onActivityResult(DIALOG_CONFIRM_SYSTEM_DEFAULT, result, intent);
+ mParent.onActivityResult(mDialogType, result, intent);
mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_CHANGE_LANGUAGE,
changed);
}
@@ -229,6 +233,15 @@
dialogContent.mMessage = mContext.getString(R.string.desc_unavailable_locale);
dialogContent.mPositiveButton = mContext.getString(R.string.okay);
break;
+ case DIALOG_ADD_SYSTEM_LOCALE:
+ dialogContent.mTitle = String.format(mContext.getString(
+ R.string.title_system_locale_addition),
+ mLocaleInfo.getFullNameNative());
+ dialogContent.mMessage = mContext.getString(
+ R.string.desc_system_locale_addition);
+ dialogContent.mPositiveButton = mContext.getString(R.string.add);
+ dialogContent.mNegativeButton = mContext.getString(R.string.cancel);
+ break;
default:
break;
}
diff --git a/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java b/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
index af9ad85..bfe0749 100644
--- a/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
+++ b/src/com/android/settings/localepicker/LocaleDragAndDropAdapter.java
@@ -16,7 +16,6 @@
package com.android.settings.localepicker;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.graphics.Canvas;
import android.os.Bundle;
@@ -39,7 +38,6 @@
import com.android.internal.app.LocalePicker;
import com.android.internal.app.LocaleStore;
import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
import com.android.settings.shortcut.ShortcutsUpdateTask;
import java.text.NumberFormat;
@@ -53,7 +51,6 @@
private static final String TAG = "LocaleDragAndDropAdapter";
private static final String CFGKEY_SELECTED_LOCALES = "selectedLocales";
private static final String CFGKEY_DRAG_LOCALE = "dragLocales";
- private static final String CFGKEY_DRAG_LOCALES_TO_POSITION = "dragLocales_end";
private final Context mContext;
private final ItemTouchHelper mItemTouchHelper;
@@ -61,7 +58,6 @@
private List<LocaleStore.LocaleInfo> mFeedItemList;
private List<LocaleStore.LocaleInfo> mCacheItemList;
private RecyclerView mParentView = null;
- private LocaleListEditor mParent;
private boolean mRemoveMode = false;
private boolean mDragEnabled = true;
private NumberFormat mNumberFormatter = NumberFormat.getNumberInstance();
@@ -94,7 +90,6 @@
LocaleDragAndDropAdapter(LocaleListEditor parent, List<LocaleStore.LocaleInfo> feedItemList) {
mFeedItemList = feedItemList;
- mParent = parent;
mCacheItemList = new ArrayList<>(feedItemList);
mContext = parent.getContext();
@@ -230,12 +225,6 @@
"Negative position in onItemMove %d -> %d", fromPosition, toPosition));
}
- if (fromPosition != toPosition) {
- FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
- .action(mContext, SettingsEnums.ACTION_REORDER_LANGUAGE,
- mDragLocale.getLocale().toLanguageTag() + " move to " + toPosition);
- }
-
notifyItemChanged(fromPosition); // to update the numbers
notifyItemChanged(toPosition);
notifyItemMoved(fromPosition, toPosition);
@@ -274,9 +263,6 @@
for (int i = itemCount - 1; i >= 0; i--) {
localeInfo = mFeedItemList.get(i);
if (localeInfo.getChecked()) {
- FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
- .action(mContext, SettingsEnums.ACTION_REMOVE_LANGUAGE,
- localeInfo.getLocale().toLanguageTag());
mFeedItemList.remove(i);
}
}
diff --git a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
index b962b9e..a639c9d 100644
--- a/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
+++ b/src/com/android/settings/localepicker/LocaleHelperPreferenceController.java
@@ -16,7 +16,6 @@
package com.android.settings.localepicker;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
@@ -25,10 +24,8 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
-import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.HelpUtils;
import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.widget.FooterPreference;
/**
@@ -39,11 +36,8 @@
private static final String KEY_FOOTER_LANGUAGE_PICKER = "footer_languages_picker";
- private final MetricsFeatureProvider mMetricsFeatureProvider;
-
public LocaleHelperPreferenceController(Context context) {
super(context);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -78,7 +72,6 @@
mContext.getString(R.string.link_locale_picker_footer_learn_more),
mContext.getClass().getName());
if (intent != null) {
- mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE);
mContext.startActivity(intent);
} else {
Log.w(TAG, "HelpIntent is null");
diff --git a/src/com/android/settings/localepicker/LocaleListEditor.java b/src/com/android/settings/localepicker/LocaleListEditor.java
index d9109c3..fe92af6 100644
--- a/src/com/android/settings/localepicker/LocaleListEditor.java
+++ b/src/com/android/settings/localepicker/LocaleListEditor.java
@@ -19,6 +19,8 @@
import static android.os.UserManager.DISALLOW_CONFIG_LOCALE;
import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_NOTIFICATION_ID;
+import static com.android.settings.localepicker.LocaleDialogFragment.DIALOG_ADD_SYSTEM_LOCALE;
import static com.android.settings.localepicker.LocaleDialogFragment.DIALOG_CONFIRM_SYSTEM_DEFAULT;
import android.app.Activity;
@@ -29,6 +31,7 @@
import android.content.res.Resources;
import android.os.Bundle;
import android.os.LocaleList;
+import android.os.SystemProperties;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
@@ -59,7 +62,6 @@
import com.android.settingslib.widget.LayoutPreference;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.Locale;
@@ -68,20 +70,22 @@
*/
@SearchIndexable
public class LocaleListEditor extends RestrictedSettingsFragment implements View.OnTouchListener {
- private static final String TAG = LocaleListEditor.class.getSimpleName();
protected static final String INTENT_LOCALE_KEY = "localeInfo";
+
+ private static final String TAG = LocaleListEditor.class.getSimpleName();
private static final String CFGKEY_REMOVE_MODE = "localeRemoveMode";
private static final String CFGKEY_REMOVE_DIALOG = "showingLocaleRemoveDialog";
private static final String CFGKEY_ADD_LOCALE = "localeAdded";
- private static final int MENU_ID_REMOVE = Menu.FIRST + 1;
- private static final int REQUEST_LOCALE_PICKER = 0;
-
private static final String INDEX_KEY_ADD_LANGUAGE = "add_language";
private static final String KEY_LANGUAGES_PICKER = "languages_picker";
private static final String TAG_DIALOG_CONFIRM_SYSTEM_DEFAULT = "dialog_confirm_system_default";
private static final String TAG_DIALOG_NOT_AVAILABLE = "dialog_not_available_locale";
- static final String EXTRA_SYSTEM_LOCALE_DIALOG_TYPE = "system_locale_dialog_type";
+ private static final String TAG_DIALOG_ADD_SYSTEM_LOCALE = "dialog_add_system_locale";
+ private static final String EXTRA_SYSTEM_LOCALE_DIALOG_TYPE = "system_locale_dialog_type";
private static final String LOCALE_SUGGESTION = "locale_suggestion";
+ private static final int MENU_ID_REMOVE = Menu.FIRST + 1;
+ private static final int REQUEST_LOCALE_PICKER = 0;
+ private static final int INVALID_NOTIFICATION_ID = -1;
private LocaleDragAndDropAdapter mAdapter;
private Menu mMenu;
@@ -170,9 +174,10 @@
if (mShowingRemoveDialog) {
showRemoveLocaleWarningDialog();
}
- if (shouldShowConfirmationDialog() && !mLocaleAdditionMode) {
- getActivity().setResult(Activity.RESULT_OK);
+ Log.d(TAG, "LocaleAdditionMode:" + mLocaleAdditionMode);
+ if (!mLocaleAdditionMode && shouldShowConfirmationDialog()) {
showDialogForAddedLocale();
+ mLocaleAdditionMode = true;
}
}
@@ -216,8 +221,6 @@
localeInfo = mayAppendUnicodeTags(localeInfo, preferencesTags);
mAdapter.addLocale(localeInfo);
updateVisibilityOfRemoveMenu();
- mMetricsFeatureProvider.action(getContext(), SettingsEnums.ACTION_ADD_LANGUAGE,
- localeInfo.getLocale().toLanguageTag());
} else if (requestCode == DIALOG_CONFIRM_SYSTEM_DEFAULT) {
localeInfo = mAdapter.getFeedItemList().get(0);
if (resultCode == Activity.RESULT_OK) {
@@ -238,18 +241,19 @@
mAdapter.notifyListChanged(localeInfo);
}
mAdapter.setCacheItemList();
+ } else if (requestCode == DIALOG_ADD_SYSTEM_LOCALE) {
+ if (resultCode == Activity.RESULT_OK) {
+ localeInfo = (LocaleStore.LocaleInfo) data.getExtras().getSerializable(
+ LocaleDialogFragment.ARG_TARGET_LOCALE);
+ String preferencesTags = Settings.System.getString(
+ getContext().getContentResolver(),
+ Settings.System.LOCALE_PREFERENCES);
+ mAdapter.addLocale(mayAppendUnicodeTags(localeInfo, preferencesTags));
+ }
}
super.onActivityResult(requestCode, resultCode, data);
}
- @Override
- public void onDestroy() {
- super.onDestroy();
- if (mSuggestionDialog != null) {
- mSuggestionDialog.dismiss();
- }
- }
-
@VisibleForTesting
static LocaleStore.LocaleInfo mayAppendUnicodeTags(
LocaleStore.LocaleInfo localeInfo, String recordTags) {
@@ -278,31 +282,42 @@
Intent intent = this.getIntent();
String dialogType = intent.getStringExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE);
String localeTag = intent.getStringExtra(EXTRA_APP_LOCALE);
- if (!isAllowedPackage()
- || isNullOrEmpty(dialogType)
- || isNullOrEmpty(localeTag)
- || !LOCALE_SUGGESTION.equals(dialogType)
+ int notificationId = intent.getIntExtra(EXTRA_NOTIFICATION_ID, INVALID_NOTIFICATION_ID);
+ if (!isDialogFeatureEnabled()
+ || !isValidNotificationId(localeTag, notificationId)
+ || !isValidDialogType(dialogType)
|| !isValidLocale(localeTag)
- || isInSystemLocale(localeTag)) {
- getActivity().setResult(Activity.RESULT_CANCELED);
+ || LocaleUtils.isInSystemLocale(localeTag)) {
return false;
}
- getActivity().setResult(Activity.RESULT_OK);
return true;
}
- private boolean isAllowedPackage() {
- List<String> allowList = Arrays.asList(getContext().getResources().getStringArray(
- R.array.allowed_packages_for_locale_confirmation_diallog));
- String callingPackage = getActivity().getCallingPackage();
- return !isNullOrEmpty(callingPackage) && allowList.contains(callingPackage);
+ private boolean isDialogFeatureEnabled() {
+ return SystemProperties.getBoolean(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION,
+ AppLocalePickerActivity.ENABLED);
}
- private static boolean isNullOrEmpty(String str) {
- return str == null || str.isEmpty();
+ private boolean isValidNotificationId(String localeTag, long id) {
+ if (id == -1) {
+ return false;
+ }
+ return id == getNotificationController().getNotificationId(localeTag);
+ }
+
+ @VisibleForTesting
+ NotificationController getNotificationController() {
+ return NotificationController.getInstance(getContext());
+ }
+
+ private boolean isValidDialogType(String type) {
+ return LOCALE_SUGGESTION.equals(type);
}
private boolean isValidLocale(String tag) {
+ if (TextUtils.isEmpty(tag)) {
+ return false;
+ }
String[] systemLocales = getSupportedLocales();
for (String systemTag : systemLocales) {
if (systemTag.equals(tag)) {
@@ -312,63 +327,26 @@
return false;
}
- protected String[] getSupportedLocales() {
+ @VisibleForTesting
+ String[] getSupportedLocales() {
return LocalePicker.getSupportedLocales(getContext());
}
- /**
- * Check if the localeTag is in the system locale. Since in the current design, the system
- * language list would not show two locales with the same language and region but different
- * numbering system. So, during the comparison, the u extension has to be stripped out.
- *
- * @param languageTag A language tag
- * @return true if the locale is in the system locale. Otherwise, false.
- */
- private boolean isInSystemLocale(String languageTag) {
- LocaleList systemLocales = LocaleList.getDefault();
- Locale locale = Locale.forLanguageTag(languageTag).stripExtensions();
- for (int i = 0; i < systemLocales.size(); i++) {
- if (systemLocales.get(i).stripExtensions().equals(locale)) {
- return true;
- }
- }
- return false;
- }
-
private void showDialogForAddedLocale() {
+ Log.d(TAG, "Show confirmation dialog");
Intent intent = this.getIntent();
String dialogType = intent.getStringExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE);
String appLocaleTag = intent.getStringExtra(EXTRA_APP_LOCALE);
- Log.d(TAG, "Dialog suggested locale: " + appLocaleTag);
+
LocaleStore.LocaleInfo localeInfo = LocaleStore.getLocaleInfo(
Locale.forLanguageTag(appLocaleTag));
- if (LOCALE_SUGGESTION.equals(dialogType)) {
- AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
- customizeLayout(dialogBuilder, localeInfo.getFullNameNative());
- dialogBuilder
- .setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- mLocaleAdditionMode = true;
- String preferencesTags = Settings.System.getString(
- getContext().getContentResolver(),
- Settings.System.LOCALE_PREFERENCES);
- mAdapter.addLocale(mayAppendUnicodeTags(localeInfo, preferencesTags));
- }
- })
- .setNegativeButton(android.R.string.cancel,
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- mLocaleAdditionMode = true;
- }
- });
- mSuggestionDialog = dialogBuilder.create();
- mSuggestionDialog.setCanceledOnTouchOutside(false);
- mSuggestionDialog.show();
- } else {
- Log.d(TAG, "Invalid parameter, dialogType:" + dialogType);
- }
+ final LocaleDialogFragment localeDialogFragment =
+ LocaleDialogFragment.newInstance();
+ Bundle args = new Bundle();
+ args.putInt(LocaleDialogFragment.ARG_DIALOG_TYPE, DIALOG_ADD_SYSTEM_LOCALE);
+ args.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE, localeInfo);
+ localeDialogFragment.setArguments(args);
+ localeDialogFragment.show(mFragmentManager, TAG_DIALOG_ADD_SYSTEM_LOCALE);
}
private void customizeLayout(AlertDialog.Builder dialogBuilder, String language) {
diff --git a/src/com/android/settings/localepicker/LocaleNotificationDataManager.java b/src/com/android/settings/localepicker/LocaleNotificationDataManager.java
new file mode 100644
index 0000000..09d6280
--- /dev/null
+++ b/src/com/android/settings/localepicker/LocaleNotificationDataManager.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import android.content.Context;
+import android.content.SharedPreferences;
+
+import androidx.annotation.VisibleForTesting;
+
+import com.google.gson.Gson;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * A data manager that manages the {@link SharedPreferences} for the locale notification
+ * information.
+ */
+public class LocaleNotificationDataManager {
+ private static final String LOCALE_NOTIFICATION = "locale_notification";
+ private Context mContext;
+
+ /**
+ * Constructor
+ *
+ * @param context The context
+ */
+ public LocaleNotificationDataManager(Context context) {
+ this.mContext = context;
+ }
+
+ private static SharedPreferences getSharedPreferences(Context context) {
+ return context.getSharedPreferences(LOCALE_NOTIFICATION, Context.MODE_PRIVATE);
+ }
+
+ /**
+ * Adds one entry with the corresponding locale and {@link NotificationInfo} to the
+ * {@link SharedPreferences}.
+ *
+ * @param locale A locale which the application sets to
+ * @param info The notification metadata
+ */
+ public void putNotificationInfo(String locale, NotificationInfo info) {
+ Gson gson = new Gson();
+ String json = gson.toJson(info);
+ SharedPreferences.Editor editor = getSharedPreferences(mContext).edit();
+ editor.putString(locale, json);
+ editor.apply();
+ }
+
+ /**
+ * Gets the {@link NotificationInfo} with the associated locale from the
+ * {@link SharedPreferences}.
+ *
+ * @param locale A locale which the application sets to
+ * @return {@link NotificationInfo}
+ */
+ public NotificationInfo getNotificationInfo(String locale) {
+ Gson gson = new Gson();
+ String json = getSharedPreferences(mContext).getString(locale, "");
+ return json.isEmpty() ? null : gson.fromJson(json, NotificationInfo.class);
+ }
+
+ /**
+ * Gets the locale notification map.
+ *
+ * @return A map which maps the locale to the corresponding {@link NotificationInfo}
+ */
+ public Map<String, NotificationInfo> getLocaleNotificationInfoMap() {
+ Gson gson = new Gson();
+ Map<String, String> map = (Map<String, String>) getSharedPreferences(mContext).getAll();
+ Map<String, NotificationInfo> result = new HashMap<>(map.size());
+ map.forEach((key, value) -> {
+ result.put(key, gson.fromJson(value, NotificationInfo.class));
+ });
+ return result;
+ }
+
+ /**
+ * Clears the locale notification map.
+ */
+ @VisibleForTesting
+ void clearLocaleNotificationMap() {
+ getSharedPreferences(mContext).edit().clear().apply();
+ }
+}
diff --git a/src/com/android/settings/localepicker/LocaleUtils.java b/src/com/android/settings/localepicker/LocaleUtils.java
new file mode 100644
index 0000000..a84d0be
--- /dev/null
+++ b/src/com/android/settings/localepicker/LocaleUtils.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import android.os.LocaleList;
+
+import androidx.annotation.NonNull;
+
+import java.util.Locale;
+
+/**
+ * A locale utility class.
+ */
+public class LocaleUtils {
+ /**
+ * Checks if the languageTag is in the system locale. Since in the current design, the system
+ * language list would not show two locales with the same language and region but different
+ * numbering system. So, the u extension has to be stripped out in the process of comparison.
+ *
+ * @param languageTag A language tag
+ * @return true if the locale is in the system locale. Otherwise, false.
+ */
+ public static boolean isInSystemLocale(@NonNull String languageTag) {
+ LocaleList systemLocales = LocaleList.getDefault();
+ Locale localeWithoutUextension =
+ new Locale.Builder()
+ .setLocale(Locale.forLanguageTag(languageTag))
+ .clearExtensions()
+ .build();
+ for (int i = 0; i < systemLocales.size(); i++) {
+ Locale sysLocaleWithoutUextension =
+ new Locale.Builder().setLocale(systemLocales.get(i)).clearExtensions().build();
+ if (localeWithoutUextension.equals(sysLocaleWithoutUextension)) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/src/com/android/settings/localepicker/NotificationCancelReceiver.java b/src/com/android/settings/localepicker/NotificationCancelReceiver.java
new file mode 100644
index 0000000..f51dfb3
--- /dev/null
+++ b/src/com/android/settings/localepicker/NotificationCancelReceiver.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_NOTIFICATION_ID;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+
+/**
+ * A Broadcast receiver that handles the locale notification which is swiped away.
+ */
+public class NotificationCancelReceiver extends BroadcastReceiver {
+ private static final String TAG = NotificationCancelReceiver.class.getSimpleName();
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String appLocale = intent.getExtras().getString(EXTRA_APP_LOCALE);
+ int notificationId = intent.getExtras().getInt(EXTRA_NOTIFICATION_ID, -1);
+ int savedNotificationID = getNotificationController(context).getNotificationId(
+ appLocale);
+ Log.i(TAG, "Locale notification is swiped away.");
+ if (savedNotificationID == notificationId) {
+ getNotificationController(context).incrementDismissCount(appLocale);
+ }
+ }
+
+ @VisibleForTesting
+ NotificationController getNotificationController(Context context) {
+ return NotificationController.getInstance(context);
+ }
+}
diff --git a/src/com/android/settings/localepicker/NotificationController.java b/src/com/android/settings/localepicker/NotificationController.java
new file mode 100644
index 0000000..2d36189
--- /dev/null
+++ b/src/com/android/settings/localepicker/NotificationController.java
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import android.content.Context;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+
+import java.util.Calendar;
+import java.util.Set;
+
+/**
+ * A controller that evaluates whether the notification can be triggered and update the
+ * SharedPreference.
+ */
+public class NotificationController {
+ private static final String TAG = NotificationController.class.getSimpleName();
+ private static final int DISMISS_COUNT_THRESHOLD = 2;
+ private static final int NOTIFICATION_COUNT_THRESHOLD = 2;
+ private static final int MULTIPLE_BASE = 2;
+ // seven days: 7 * 24 * 60
+ private static final int MIN_DURATION_BETWEEN_NOTIFICATIONS_MIN = 10080;
+ private static final String PROPERTY_MIN_DURATION =
+ "android.localenotification.duration.threshold";
+
+ private static NotificationController sInstance = null;
+
+ private final LocaleNotificationDataManager mDataManager;
+
+ /**
+ * Get {@link NotificationController} instance.
+ *
+ * @param context The context
+ * @return {@link NotificationController} instance
+ */
+ public static synchronized NotificationController getInstance(@NonNull Context context) {
+ if (sInstance == null) {
+ sInstance = new NotificationController(context);
+ }
+ return sInstance;
+ }
+
+ private NotificationController(Context context) {
+ mDataManager = new LocaleNotificationDataManager(context);
+ }
+
+ @VisibleForTesting
+ LocaleNotificationDataManager getDataManager() {
+ return mDataManager;
+ }
+
+ /**
+ * Increment the dismissCount of the notification.
+ *
+ * @param locale A locale used to query the {@link NotificationInfo}
+ */
+ public void incrementDismissCount(@NonNull String locale) {
+ NotificationInfo currentInfo = mDataManager.getNotificationInfo(locale);
+ NotificationInfo newInfo = new NotificationInfo(currentInfo.getUidCollection(),
+ currentInfo.getNotificationCount(),
+ currentInfo.getDismissCount() + 1,
+ currentInfo.getLastNotificationTimeMs(),
+ currentInfo.getNotificationId());
+ mDataManager.putNotificationInfo(locale, newInfo);
+ }
+
+ /**
+ * Whether the notification can be triggered or not.
+ *
+ * @param uid The application's uid.
+ * @param locale The application's locale which the user updated to.
+ * @return true if the notification needs to be triggered. Otherwise, false.
+ */
+ public boolean shouldTriggerNotification(int uid, @NonNull String locale) {
+ if (LocaleUtils.isInSystemLocale(locale)) {
+ return false;
+ } else {
+ // Add the uid into the locale's uid list and update the notification count if the
+ // notification can be triggered.
+ return updateLocaleNotificationInfo(uid, locale);
+ }
+ }
+
+ /**
+ * Get the notification id
+ *
+ * @param locale The locale which the application sets to
+ * @return the notification id
+ */
+ public int getNotificationId(@NonNull String locale) {
+ NotificationInfo info = mDataManager.getNotificationInfo(locale);
+ return (info != null) ? info.getNotificationId() : -1;
+ }
+
+ private boolean updateLocaleNotificationInfo(int uid, String locale) {
+ NotificationInfo info = mDataManager.getNotificationInfo(locale);
+ if (info == null) {
+ // Create an empty record with the uid and update the SharedPreference.
+ NotificationInfo emptyInfo = new NotificationInfo(Set.of(uid), 0, 0, 0, 0);
+ mDataManager.putNotificationInfo(locale, emptyInfo);
+ return false;
+ }
+ Set uidCollection = info.getUidCollection();
+ if (uidCollection.contains(uid)) {
+ return false;
+ }
+
+ NotificationInfo newInfo =
+ createNotificationInfoWithNewUidAndCount(uidCollection, uid, info);
+ mDataManager.putNotificationInfo(locale, newInfo);
+ return newInfo.getNotificationCount() > info.getNotificationCount();
+ }
+
+ private NotificationInfo createNotificationInfoWithNewUidAndCount(
+ Set<Integer> uidSet, int uid, NotificationInfo info) {
+ int dismissCount = info.getDismissCount();
+ int notificationCount = info.getNotificationCount();
+ long lastNotificationTime = info.getLastNotificationTimeMs();
+ int notificationId = info.getNotificationId();
+
+ // Add the uid into the locale's uid list
+ uidSet.add(uid);
+ if (dismissCount < DISMISS_COUNT_THRESHOLD
+ && notificationCount < NOTIFICATION_COUNT_THRESHOLD
+ // Notification should fire on multiples of 2 apps using the locale.
+ && uidSet.size() % MULTIPLE_BASE == 0
+ && !isNotificationFrequent(lastNotificationTime)) {
+ // Increment the count because the notification can be triggered.
+ notificationCount = info.getNotificationCount() + 1;
+ lastNotificationTime = Calendar.getInstance().getTimeInMillis();
+ Log.i(TAG, "notificationCount:" + notificationCount);
+ if (notificationCount == 1) {
+ notificationId = (int) SystemClock.uptimeMillis();
+ }
+ }
+ return new NotificationInfo(uidSet, notificationCount, dismissCount, lastNotificationTime,
+ notificationId);
+ }
+
+ /**
+ * Evaluates if the notification is triggered frequently.
+ *
+ * @param lastNotificationTime The timestamp that the last notification was triggered.
+ * @return true if the duration of the two continuous notifications is smaller than the
+ * threshold.
+ * Otherwise, false.
+ */
+ private boolean isNotificationFrequent(long lastNotificationTime) {
+ Calendar time = Calendar.getInstance();
+ int threshold = SystemProperties.getInt(PROPERTY_MIN_DURATION,
+ MIN_DURATION_BETWEEN_NOTIFICATIONS_MIN);
+ time.add(Calendar.MINUTE, threshold * -1);
+ return time.getTimeInMillis() < lastNotificationTime;
+ }
+}
diff --git a/src/com/android/settings/localepicker/NotificationInfo.java b/src/com/android/settings/localepicker/NotificationInfo.java
new file mode 100644
index 0000000..8390826
--- /dev/null
+++ b/src/com/android/settings/localepicker/NotificationInfo.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import java.util.Objects;
+import java.util.Set;
+
+class NotificationInfo {
+ private Set<Integer> mUidCollection;
+ private int mNotificationCount;
+ private int mDismissCount;
+ private long mLastNotificationTimeMs;
+ private int mNotificationId;
+
+ private NotificationInfo() {
+ }
+
+ NotificationInfo(Set<Integer> uidCollection, int notificationCount, int dismissCount,
+ long lastNotificationTimeMs, int notificationId) {
+ this.mUidCollection = uidCollection;
+ this.mNotificationCount = notificationCount;
+ this.mDismissCount = dismissCount;
+ this.mLastNotificationTimeMs = lastNotificationTimeMs;
+ this.mNotificationId = notificationId;
+ }
+
+ public Set<Integer> getUidCollection() {
+ return mUidCollection;
+ }
+
+ public int getNotificationCount() {
+ return mNotificationCount;
+ }
+
+ public int getDismissCount() {
+ return mDismissCount;
+ }
+
+ public long getLastNotificationTimeMs() {
+ return mLastNotificationTimeMs;
+ }
+
+ public int getNotificationId() {
+ return mNotificationId;
+ }
+
+ public void setUidCollection(Set<Integer> uidCollection) {
+ this.mUidCollection = uidCollection;
+ }
+
+ public void setNotificationCount(int notificationCount) {
+ this.mNotificationCount = notificationCount;
+ }
+
+ public void setDismissCount(int dismissCount) {
+ this.mDismissCount = dismissCount;
+ }
+
+ public void setLastNotificationTimeMs(long lastNotificationTimeMs) {
+ this.mLastNotificationTimeMs = lastNotificationTimeMs;
+ }
+
+ public void setNotificationId(int notificationId) {
+ this.mNotificationId = notificationId;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (o == null) return false;
+ if (this == o) return true;
+ if (!(o instanceof NotificationInfo)) return false;
+ NotificationInfo that = (NotificationInfo) o;
+ return (mUidCollection.equals(that.mUidCollection))
+ && (mDismissCount == that.mDismissCount)
+ && (mNotificationCount == that.mNotificationCount)
+ && (mLastNotificationTimeMs == that.mLastNotificationTimeMs)
+ && (mNotificationId == that.mNotificationId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(mUidCollection, mDismissCount, mNotificationCount,
+ mLastNotificationTimeMs, mNotificationId);
+ }
+}
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index 1d862f3..452ce49 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -167,8 +167,7 @@
});
return Arrays.asList(
- new DataUsageSummaryPreferenceController(getActivity(), getSettingsLifecycle(),
- this, mSubId),
+ new DataUsageSummaryPreferenceController(getActivity(), mSubId),
new RoamingPreferenceController(context, KEY_ROAMING_PREF, getSettingsLifecycle(),
this, mSubId),
new CallsDefaultSubscriptionController(context, KEY_CALLS_PREF,
diff --git a/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java b/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
index 43b50c8..2b2184e 100644
--- a/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
+++ b/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
@@ -89,8 +89,7 @@
.setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
EntityHeaderController.ActionType.ACTION_NONE)
.setHasAppInfoLink(true)
- .setRecyclerView(mFragment.getListView(), mFragment.getSettingsLifecycle())
- .done(activity, mContext);
+ .done(mContext);
pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
pref.findViewById(R.id.entity_header).setBackground(null);
diff --git a/src/com/android/settings/notification/app/HeaderPreferenceController.java b/src/com/android/settings/notification/app/HeaderPreferenceController.java
index 7379d55..220e7b5 100644
--- a/src/com/android/settings/notification/app/HeaderPreferenceController.java
+++ b/src/com/android/settings/notification/app/HeaderPreferenceController.java
@@ -25,7 +25,6 @@
import android.text.TextUtils;
import android.view.View;
-import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.OnLifecycleEvent;
import androidx.preference.Preference;
@@ -90,8 +89,7 @@
.setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
EntityHeaderController.ActionType.ACTION_NONE)
.setHasAppInfoLink(true)
- .setRecyclerView(mFragment.getListView(), mFragment.getSettingsLifecycle())
- .done(activity, mContext);
+ .done(mContext);
pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
pref.findViewById(R.id.entity_header).setBackground(null);
}
diff --git a/src/com/android/settings/notification/history/NotificationHistoryActivity.java b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
index b71d295..4808773 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryActivity.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
@@ -50,6 +50,7 @@
import android.widget.ImageView;
import android.widget.TextView;
+import androidx.core.graphics.ColorUtils;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -176,7 +177,8 @@
com.android.internal.R.id.expand_button);
int textColor = obtainThemeColor(android.R.attr.textColorPrimary);
int backgroundColor = obtainThemeColor(android.R.attr.colorBackgroundFloating);
- expand.setDefaultPillColor(backgroundColor);
+ int pillColor = ColorUtils.blendARGB(textColor, backgroundColor, 0.9f);
+ expand.setDefaultPillColor(pillColor);
expand.setDefaultTextColor(textColor);
expand.setExpanded(false);
header.setStateDescription(container.getVisibility() == View.VISIBLE
diff --git a/src/com/android/settings/notification/zen/ZenAutomaticRuleHeaderPreferenceController.java b/src/com/android/settings/notification/zen/ZenAutomaticRuleHeaderPreferenceController.java
index a0c33df..95823fe 100644
--- a/src/com/android/settings/notification/zen/ZenAutomaticRuleHeaderPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenAutomaticRuleHeaderPreferenceController.java
@@ -76,7 +76,7 @@
mController.setIcon(getIcon())
.setLabel(mRule.getName())
- .done(mFragment.getActivity(), false /* rebindActions */);
+ .done(false /* rebindActions */);
}
private Drawable getIcon() {
diff --git a/src/com/android/settings/password/BiometricFragment.java b/src/com/android/settings/password/BiometricFragment.java
index 4ad04a1..379ce80 100644
--- a/src/com/android/settings/password/BiometricFragment.java
+++ b/src/com/android/settings/password/BiometricFragment.java
@@ -126,10 +126,9 @@
final Bundle bundle = getArguments();
final PromptInfo promptInfo = bundle.getParcelable(KEY_PROMPT_INFO);
- mBiometricPrompt = new BiometricPrompt.Builder(getContext())
+ BiometricPrompt.Builder promptBuilder = new BiometricPrompt.Builder(getContext())
.setTitle(promptInfo.getTitle())
.setUseDefaultTitle() // use default title if title is null/empty
- .setUseDefaultSubtitle() // use default subtitle if subtitle is null/empty
.setDeviceCredentialAllowed(true)
.setSubtitle(promptInfo.getSubtitle())
.setDescription(promptInfo.getDescription())
@@ -140,9 +139,15 @@
.setConfirmationRequired(promptInfo.isConfirmationRequested())
.setDisallowBiometricsIfPolicyExists(
promptInfo.isDisallowBiometricsIfPolicyExists())
+ .setShowEmergencyCallButton(promptInfo.isShowEmergencyCallButton())
.setReceiveSystemEvents(true)
- .setAllowBackgroundAuthentication(true)
- .build();
+ .setAllowBackgroundAuthentication(true);
+
+ // Check if the default subtitle should be used if subtitle is null/empty
+ if (promptInfo.isUseDefaultSubtitle()) {
+ promptBuilder.setUseDefaultSubtitle();
+ }
+ mBiometricPrompt = promptBuilder.build();
}
@Override
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index c126a88..737d1df 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -524,7 +524,6 @@
setupPasswordRequirementsView(headerLayout);
mPasswordRestrictionView.setLayoutManager(new LinearLayoutManager(getActivity()));
- mPasswordRestrictionView.setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_POLITE);
mPasswordEntry = view.findViewById(R.id.password_entry);
mPasswordEntry.setOnEditorActionListener(this);
mPasswordEntry.addTextChangedListener(this);
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index e4ebad7..70d4d7d 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -26,6 +26,7 @@
import android.app.KeyguardManager;
import android.app.RemoteLockscreenValidationSession;
import android.app.admin.DevicePolicyManager;
+import android.app.admin.ManagedSubscriptionsPolicy;
import android.app.trust.TrustManager;
import android.content.ComponentName;
import android.content.Context;
@@ -200,6 +201,13 @@
promptInfo.setDescription(mDetails);
promptInfo.setDisallowBiometricsIfPolicyExists(mCheckDevicePolicyManager);
+ final int policyType = mDevicePolicyManager.getManagedSubscriptionsPolicy().getPolicyType();
+
+ if (isEffectiveUserManagedProfile
+ && (policyType == ManagedSubscriptionsPolicy.TYPE_ALL_MANAGED_SUBSCRIPTIONS)) {
+ promptInfo.setShowEmergencyCallButton(true);
+ }
+
final @LockPatternUtils.CredentialType int credentialType = Utils.getCredentialType(
mContext, effectiveUserId);
if (mTitle == null) {
diff --git a/src/com/android/settings/password/PasswordRequirementAdapter.java b/src/com/android/settings/password/PasswordRequirementAdapter.java
index a4d349e..0d8f02e 100644
--- a/src/com/android/settings/password/PasswordRequirementAdapter.java
+++ b/src/com/android/settings/password/PasswordRequirementAdapter.java
@@ -16,6 +16,7 @@
package com.android.settings.password;
+import android.annotation.NonNull;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
@@ -64,6 +65,11 @@
}
@Override
+ public void onViewAttachedToWindow(@NonNull PasswordRequirementViewHolder holder) {
+ holder.mDescriptionText.announceForAccessibility(holder.mDescriptionText.getText());
+ }
+
+ @Override
public void onBindViewHolder(PasswordRequirementViewHolder holder, int position) {
final int fontSize = mContext.getResources().getDimensionPixelSize(
R.dimen.password_requirement_font_size);
diff --git a/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java b/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java
index d509d2e..03a59de 100644
--- a/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java
+++ b/src/com/android/settings/regionalpreferences/FirstDayOfWeekItemListController.java
@@ -16,7 +16,6 @@
package com.android.settings.regionalpreferences;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import com.android.settings.R;
@@ -58,9 +57,4 @@
protected String[] getUnitValues() {
return mContext.getResources().getStringArray(R.array.first_day_of_week);
}
-
- @Override
- protected int getMetricsActionKey() {
- return SettingsEnums.ACTION_SET_FIRST_DAY_OF_WEEK;
- }
}
diff --git a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
index ac0e7ee..2f2bf76 100644
--- a/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
+++ b/src/com/android/settings/regionalpreferences/RegionalPreferenceListBasePreferenceController.java
@@ -22,20 +22,16 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.TickButtonPreference;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
/** A base controller for handling all regional preferences controllers. */
public abstract class RegionalPreferenceListBasePreferenceController extends
BasePreferenceController {
- private final MetricsFeatureProvider mMetricsFeatureProvider;
private PreferenceCategory mPreferenceCategory;
public RegionalPreferenceListBasePreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
- mMetricsFeatureProvider = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider();
}
@Override
@@ -65,8 +61,6 @@
RegionalPreferencesDataUtils.savePreference(mContext, getExtensionTypes(),
item.equals(RegionalPreferencesDataUtils.DEFAULT_VALUE)
? null : item);
- mMetricsFeatureProvider.action(mContext, getMetricsActionKey(),
- getPreferenceTitle(value) + " > " + getPreferenceTitle(item));
return true;
});
pref.setSelected(!value.isEmpty() && item.equals(value));
@@ -96,8 +90,4 @@
protected abstract String getExtensionTypes();
protected abstract String[] getUnitValues();
-
- protected abstract int getMetricsActionKey();
-
-
}
diff --git a/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java b/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java
index 91ab1a2..c51ca71 100644
--- a/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java
+++ b/src/com/android/settings/regionalpreferences/TemperatureUnitListController.java
@@ -16,7 +16,6 @@
package com.android.settings.regionalpreferences;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import com.android.settings.R;
@@ -56,9 +55,4 @@
protected String[] getUnitValues() {
return mContext.getResources().getStringArray(R.array.temperature_units);
}
-
- @Override
- protected int getMetricsActionKey() {
- return SettingsEnums.ACTION_SET_TEMPERATURE_UNIT;
- }
}
diff --git a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt
index 4569760..dcb81c7 100644
--- a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt
+++ b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrolling.kt
@@ -42,11 +42,11 @@
private val viewModel = RemoteAuthEnrollEnrollingViewModel()
private val adapter = RemoteAuthEnrollEnrollingRecyclerViewAdapter()
private val progressBar by lazy {
- view!!.findViewById<ProgressBar>(R.id.enrolling_list_progress_bar)
+ view!!.requireViewById<ProgressBar>(R.id.enrolling_list_progress_bar)
}
- private val errorText by lazy { view!!.findViewById<TextView>(R.id.error_text) }
+ private val errorText by lazy { view!!.requireViewById<TextView>(R.id.error_text) }
private val recyclerView by lazy {
- view!!.findViewById<RecyclerView>(R.id.discovered_authenticator_list)
+ view!!.requireViewById<RecyclerView>(R.id.discovered_authenticator_list)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -124,4 +124,4 @@
errorText.text = ""
}
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt
index 81b8801..323c41f 100644
--- a/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt
+++ b/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingRecyclerViewAdapter.kt
@@ -46,8 +46,8 @@
override fun getItemCount() = uiStates.size
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
- private val titleTextView: TextView = view.findViewById(R.id.discovered_authenticator_name)
- private val selectButton: ImageView = view.findViewById(R.id.authenticator_radio_button)
+ private val titleTextView: TextView = view.requireViewById(R.id.discovered_authenticator_name)
+ private val selectButton: ImageView = view.requireViewById(R.id.authenticator_radio_button)
private val checkedDrawable =
view.context.getDrawable(R.drawable.ic_radio_button_checked_black_24dp)
private val uncheckedDrawable =
@@ -63,4 +63,4 @@
selectButton.setOnClickListener { discoveredAuthenticatorUiState.onSelect() }
}
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt b/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt
index ebf13f8..93711bf 100644
--- a/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt
+++ b/src/com/android/settings/remoteauth/settings/RemoteAuthSettings.kt
@@ -34,11 +34,11 @@
val viewModel = RemoteAuthSettingsViewModel()
private val adapter = RemoteAuthSettingsRecyclerViewAdapter()
private val recyclerView by lazy {
- view!!.findViewById<RecyclerView>(R.id.registered_authenticator_list)
+ view!!.requireViewById<RecyclerView>(R.id.registered_authenticator_list)
}
private val addAuthenticatorLayout by lazy {
- view!!.findViewById<ConstraintLayout>(R.id.add_authenticator_layout)
+ view!!.requireViewById<ConstraintLayout>(R.id.add_authenticator_layout)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -65,4 +65,4 @@
adapter.uiStates = uiState.registeredAuthenticatorUiStates
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt
index f506a0b..f8038bd 100644
--- a/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt
+++ b/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsRecyclerViewAdapter.kt
@@ -46,12 +46,12 @@
override fun getItemCount() = uiStates.size
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
- private val titleTextView: TextView = view.findViewById(R.id.authenticator_name_text)
- private val unregisterButton: ImageView = view.findViewById(R.id.remove_icon)
+ private val titleTextView: TextView = view.requireViewById(R.id.authenticator_name_text)
+ private val unregisterButton: ImageView = view.requireViewById(R.id.remove_icon)
fun bind(authenticatorUiState: RemoteAuthAuthenticatorItemUiState) {
titleTextView.text = authenticatorUiState.name
unregisterButton.setOnClickListener { authenticatorUiState.unregister() }
}
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/sim/SimListDialogFragment.java b/src/com/android/settings/sim/SimListDialogFragment.java
index 5b84d7b..2763211 100644
--- a/src/com/android/settings/sim/SimListDialogFragment.java
+++ b/src/com/android/settings/sim/SimListDialogFragment.java
@@ -56,7 +56,8 @@
protected SelectSubscriptionAdapter mAdapter;
@VisibleForTesting
- List<SubscriptionInfo> mSubscriptions;
+ @NonNull
+ List<SubscriptionInfo> mSubscriptions = new ArrayList<>();
public static SimListDialogFragment newInstance(int dialogType, int titleResId,
boolean includeAskEveryTime, boolean isCancelItemShowed) {
@@ -71,8 +72,6 @@
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
- mSubscriptions = new ArrayList<>();
-
final AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
View titleView = LayoutInflater.from(getContext()).inflate(
R.layout.sim_confirm_dialog_title_multiple_enabled_profiles_supported, null);
diff --git a/src/com/android/settings/users/MultiUserSwitchBarController.java b/src/com/android/settings/users/MultiUserSwitchBarController.java
index 33651c3..3697bb0 100644
--- a/src/com/android/settings/users/MultiUserSwitchBarController.java
+++ b/src/com/android/settings/users/MultiUserSwitchBarController.java
@@ -46,13 +46,18 @@
MultiUserSwitchBarController(Context context, SwitchWidgetController switchBar,
- OnMultiUserSwitchChangedListener listener) {
+ boolean canUserSwitchToggle, OnMultiUserSwitchChangedListener listener) {
mContext = context;
mSwitchBar = switchBar;
mListener = listener;
mUserCapabilities = UserCapabilities.create(context);
mSwitchBar.setChecked(mUserCapabilities.mUserSwitcherEnabled);
+ setToggleEnabled(canUserSwitchToggle);
+ mSwitchBar.setListener(this);
+ }
+
+ void setToggleEnabled(boolean canUserSwitchToggle) {
if (mUserCapabilities.mDisallowSwitchUser) {
mSwitchBar.setDisabledByAdmin(RestrictedLockUtilsInternal
.checkIfRestrictionEnforced(mContext, UserManager.DISALLOW_USER_SWITCH,
@@ -64,9 +69,8 @@
UserHandle.myUserId()));
} else {
mSwitchBar.setEnabled(!mUserCapabilities.mDisallowSwitchUser
- && !mUserCapabilities.mIsGuest && mUserCapabilities.isAdmin());
+ && !mUserCapabilities.mIsGuest && canUserSwitchToggle);
}
- mSwitchBar.setListener(this);
}
@Override
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 64699ff..c63517d 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -290,8 +290,9 @@
} else {
switchBar.hide();
}
+ boolean isToggleEnabled = mUserManager.getFullUserCount() == 1;
mSwitchBarController = new MultiUserSwitchBarController(activity,
- new MainSwitchBarController(switchBar), this /* listener */);
+ new MainSwitchBarController(switchBar), isToggleEnabled, this /* listener */);
getSettingsLifecycle().addObserver(mSwitchBarController);
boolean openUserEditDialog = getIntent().getBooleanExtra(
EXTRA_OPEN_DIALOG_USER_PROFILE_EDITOR, false);
@@ -422,6 +423,9 @@
mRemoveGuestOnExitPreferenceController.getPreferenceKey()));
if (mShouldUpdateUserList) {
updateUI();
+ // Update state of "Allow multiple users" toggle when list of users updates
+ boolean isToggleEnabled = mUserManager.getFullUserCount() == 1;
+ mSwitchBarController.setToggleEnabled(isToggleEnabled);
}
}
diff --git a/src/com/android/settings/widget/EntityHeaderController.java b/src/com/android/settings/widget/EntityHeaderController.java
index bcd3f4b..376bd22 100644
--- a/src/com/android/settings/widget/EntityHeaderController.java
+++ b/src/com/android/settings/widget/EntityHeaderController.java
@@ -38,13 +38,11 @@
import androidx.annotation.IntDef;
import androidx.annotation.VisibleForTesting;
import androidx.fragment.app.Fragment;
-import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.applications.ApplicationsState;
-import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.widget.LayoutPreference;
import java.lang.annotation.Retention;
@@ -67,12 +65,9 @@
private static final String TAG = "AppDetailFeature";
private final Context mAppContext;
- private final Activity mActivity;
private final Fragment mFragment;
private final int mMetricsCategory;
private final View mHeader;
- private Lifecycle mLifecycle;
- private RecyclerView mRecyclerView;
private Drawable mIcon;
private int mPrefOrder = -1000;
private String mIconContentDescription;
@@ -107,7 +102,6 @@
}
private EntityHeaderController(Activity activity, Fragment fragment, View header) {
- mActivity = activity;
mAppContext = activity.getApplicationContext();
mFragment = fragment;
mMetricsCategory = FeatureFactory.getFeatureFactory().getMetricsFeatureProvider()
@@ -121,12 +115,6 @@
}
}
- public EntityHeaderController setRecyclerView(RecyclerView recyclerView, Lifecycle lifecycle) {
- mRecyclerView = recyclerView;
- mLifecycle = lifecycle;
- return this;
- }
-
/**
* Set the icon in the header. Callers should also consider calling setIconContentDescription
* to provide a description of this icon for accessibility purposes.
@@ -181,13 +169,6 @@
return this;
}
- public EntityHeaderController setSecondSummary(PackageInfo packageInfo) {
- if (packageInfo != null) {
- mSummary = packageInfo.versionName;
- }
- return this;
- }
-
public EntityHeaderController setHasAppInfoLink(boolean hasAppInfoLink) {
mHasAppInfoLink = hasAppInfoLink;
return this;
@@ -234,8 +215,8 @@
/**
* Done mutating entity header, rebinds everything and return a new {@link LayoutPreference}.
*/
- public LayoutPreference done(Activity activity, Context uiContext) {
- final LayoutPreference pref = new LayoutPreference(uiContext, done(activity));
+ public LayoutPreference done(Context uiContext) {
+ final LayoutPreference pref = new LayoutPreference(uiContext, done());
// Makes sure it's the first preference onscreen.
pref.setOrder(mPrefOrder);
pref.setSelectable(false);
@@ -247,7 +228,7 @@
/**
* Done mutating entity header, rebinds everything (optionally skip rebinding buttons).
*/
- public View done(Activity activity, boolean rebindActions) {
+ public View done(boolean rebindActions) {
ImageView iconView = mHeader.findViewById(R.id.entity_header_icon);
if (iconView != null) {
iconView.setImageDrawable(mIcon);
@@ -303,8 +284,8 @@
* Done mutating entity header, rebinds everything.
*/
@VisibleForTesting
- View done(Activity activity) {
- return done(activity, true /* rebindActions */);
+ View done() {
+ return done(true /* rebindActions */);
}
private void bindButton(ImageButton button, @ActionType int action) {
diff --git a/src/com/android/settings/widget/RadioButtonPickerFragment.java b/src/com/android/settings/widget/RadioButtonPickerFragment.java
index 0b59714..9450bb9 100644
--- a/src/com/android/settings/widget/RadioButtonPickerFragment.java
+++ b/src/com/android/settings/widget/RadioButtonPickerFragment.java
@@ -33,8 +33,8 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
-import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.PreferenceXmlParserUtils;
import com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag;
import com.android.settingslib.widget.CandidateInfo;
@@ -46,7 +46,10 @@
import java.util.List;
import java.util.Map;
-public abstract class RadioButtonPickerFragment extends InstrumentedPreferenceFragment implements
+/**
+ * A fragment to handle general radio button picker
+ */
+public abstract class RadioButtonPickerFragment extends SettingsPreferenceFragment implements
SelectorWithWidgetPreference.OnClickListener {
@VisibleForTesting
diff --git a/src/com/android/settings/widget/RestrictedButton.java b/src/com/android/settings/widget/RestrictedButton.java
new file mode 100644
index 0000000..778ea34
--- /dev/null
+++ b/src/com/android/settings/widget/RestrictedButton.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.widget;
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.util.AttributeSet;
+import android.widget.Button;
+
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+
+/**
+ * A preference with a plus button on the side representing an "add" action. The plus button will
+ * only be visible when a non-null click listener is registered.
+ */
+public class RestrictedButton extends Button {
+
+ private UserHandle mUserHandle;
+ private String mUserRestriction;
+
+ public RestrictedButton(Context context) {
+ super(context);
+ }
+
+ public RestrictedButton(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public RestrictedButton(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public RestrictedButton(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Override
+ public boolean performClick() {
+ EnforcedAdmin admin = getEnforcedAdmin();
+ if (admin != null) {
+ RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext, admin);
+ return false;
+ }
+ return super.performClick();
+ }
+
+ /** Initialize the button with {@link UserHandle} and a restriction */
+ public void init(UserHandle userHandle, String restriction) {
+ setAllowClickWhenDisabled(true);
+ mUserHandle = userHandle;
+ mUserRestriction = restriction;
+ }
+
+ /** Update the restriction state */
+ public void updateState() {
+ setEnabled(getEnforcedAdmin() == null);
+ }
+
+ private EnforcedAdmin getEnforcedAdmin() {
+ if (mUserHandle != null) {
+ EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+ mContext, mUserRestriction, mUserHandle.getIdentifier());
+ if (admin != null) {
+ return admin;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index 26c6b4b..48b52e4 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -227,7 +227,7 @@
private final WifiManager mWifiManager;
private boolean mIsTrustOnFirstUseSupported;
- private final List<SubscriptionInfo> mActiveSubscriptionInfos = new ArrayList<>();
+ private final ArrayMap<Integer, SubscriptionInfo> mActiveSubscriptionInfos = new ArrayMap<>();
public WifiConfigController2(WifiConfigUiBase2 parent, View view, WifiEntry wifiEntry,
int mode) {
@@ -716,7 +716,7 @@
if (config.enterpriseConfig.isAuthenticationSimBased()
&& mActiveSubscriptionInfos.size() > 0) {
config.carrierId = mActiveSubscriptionInfos
- .get(mEapSimSpinner.getSelectedItemPosition()).getCarrierId();
+ .valueAt(mEapSimSpinner.getSelectedItemPosition()).getCarrierId();
}
String caCert = (String) mEapCaCertSpinner.getSelectedItem();
@@ -1137,11 +1137,9 @@
}
if (enterpriseConfig.isAuthenticationSimBased()) {
- for (int i = 0; i < mActiveSubscriptionInfos.size(); i++) {
- if (wifiConfig.carrierId == mActiveSubscriptionInfos.get(i).getCarrierId()) {
- mEapSimSpinner.setSelection(i);
- break;
- }
+ int index = mActiveSubscriptionInfos.indexOfKey(wifiConfig.carrierId);
+ if (index > -1) {
+ mEapSimSpinner.setSelection(index);
}
}
@@ -1517,18 +1515,8 @@
}
mActiveSubscriptionInfos.clear();
- // De-duplicates active subscriptions and caches in mActiveSubscriptionInfos.
- for (SubscriptionInfo newInfo : activeSubscriptionInfos) {
- for (SubscriptionInfo cachedInfo : mActiveSubscriptionInfos) {
- if (newInfo.getCarrierId() == cachedInfo.getCarrierId()) {
- continue;
- }
- }
- mActiveSubscriptionInfos.add(newInfo);
- }
-
// Shows disabled 'No SIM' when there is no active subscription.
- if (mActiveSubscriptionInfos.size() == 0) {
+ if (activeSubscriptionInfos.isEmpty()) {
final String[] noSim = new String[]{mContext.getString(R.string.wifi_no_sim_card)};
mEapSimSpinner.setAdapter(getSpinnerAdapter(noSim));
mEapSimSpinner.setSelection(0 /* position */);
@@ -1539,7 +1527,7 @@
// Shows display name of each active subscription.
ArrayMap<Integer, CharSequence> displayNames = new ArrayMap<>();
int defaultDataSubscriptionId = SubscriptionManager.getDefaultDataSubscriptionId();
- for (SubscriptionInfo activeSubInfo : mActiveSubscriptionInfos) {
+ for (SubscriptionInfo activeSubInfo : activeSubscriptionInfos) {
// If multiple SIMs have the same carrier id, only the first or default data SIM is
// displayed.
if (displayNames.containsKey(activeSubInfo.getCarrierId())
@@ -1548,6 +1536,7 @@
}
displayNames.put(activeSubInfo.getCarrierId(),
SubscriptionUtil.getUniqueSubscriptionDisplayName(activeSubInfo, mContext));
+ mActiveSubscriptionInfos.put(activeSubInfo.getCarrierId(), activeSubInfo);
}
mEapSimSpinner.setAdapter(
getSpinnerAdapter(displayNames.values().toArray(new String[displayNames.size()])));
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index 2e1bc31..0da56e3 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -434,7 +434,6 @@
mDataUsageSummaryPref.setVisible(true);
mSummaryHeaderController =
new WifiDataUsageSummaryPreferenceController(mFragment.getActivity(),
- mLifecycle, (PreferenceFragmentCompat) mFragment,
mWifiEntry.getWifiConfiguration().getAllNetworkKeys());
return;
}
@@ -489,8 +488,7 @@
mEntityHeaderController
.setSummary(mWifiEntry.getSummary())
.setSecondSummary(getExpiryTimeSummary())
- .setRecyclerView(mFragment.getListView(), mLifecycle)
- .done(mFragment.getActivity(), true /* rebind */);
+ .done(true /* rebind */);
}
}
@@ -583,9 +581,7 @@
Drawable wifiIcon = mIconInjector.getIcon(mShowX, mRssiSignalLevel);
if (mEntityHeaderController != null) {
- mEntityHeaderController
- .setIcon(redrawIconForHeader(wifiIcon)).done(mFragment.getActivity(),
- true /* rebind */);
+ mEntityHeaderController.setIcon(redrawIconForHeader(wifiIcon)).done(true /* rebind */);
}
Drawable wifiIconDark = wifiIcon.getConstantState().newDrawable().mutate();
diff --git a/src/com/android/settings/wifi/dpp/WifiDppUtils.java b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
index c336c62..83a1571 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppUtils.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
@@ -396,8 +396,7 @@
final int userId = UserHandle.myUserId();
final BiometricPrompt.Builder builder = new BiometricPrompt.Builder(context)
- .setTitle(context.getText(R.string.wifi_dpp_lockscreen_title))
- .setUseDefaultSubtitle();
+ .setTitle(context.getText(R.string.wifi_dpp_lockscreen_title));
if (keyguardManager.isDeviceSecure()) {
builder.setDeviceCredentialAllowed(true);
diff --git a/src/com/android/settings/wifi/factory/WifiFeatureProvider.java b/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
index c61cf51..3f0d62f 100644
--- a/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
+++ b/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
@@ -26,6 +26,7 @@
import androidx.lifecycle.ViewModelProvider;
import androidx.lifecycle.ViewModelStoreOwner;
+import com.android.settings.wifi.repository.SharedConnectivityRepository;
import com.android.settings.wifi.repository.WifiHotspotRepository;
import com.android.settings.wifi.tether.WifiHotspotSecurityViewModel;
import com.android.settings.wifi.tether.WifiHotspotSpeedViewModel;
@@ -44,6 +45,7 @@
private TetheringManager mTetheringManager;
private WifiVerboseLogging mWifiVerboseLogging;
private WifiHotspotRepository mWifiHotspotRepository;
+ private SharedConnectivityRepository mSharedConnectivityRepository;
public WifiFeatureProvider(@NonNull Context appContext) {
mAppContext = appContext;
@@ -93,6 +95,17 @@
}
/**
+ * Gets SharedConnectivityRepository
+ */
+ public SharedConnectivityRepository getSharedConnectivityRepository() {
+ if (mSharedConnectivityRepository == null) {
+ mSharedConnectivityRepository = new SharedConnectivityRepository(mAppContext);
+ verboseLog(TAG, "getSharedConnectivityRepository():" + mSharedConnectivityRepository);
+ }
+ return mSharedConnectivityRepository;
+ }
+
+ /**
* Gets WifiTetherViewModel
*/
public WifiTetherViewModel getWifiTetherViewModel(@NotNull ViewModelStoreOwner owner) {
diff --git a/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java b/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java
new file mode 100644
index 0000000..fa34b00
--- /dev/null
+++ b/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.repository;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
+import android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus;
+import android.net.wifi.sharedconnectivity.app.KnownNetwork;
+import android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivityClientCallback;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
+import android.os.HandlerThread;
+import android.provider.DeviceConfig;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.annotation.WorkerThread;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+
+import com.android.settings.overlay.FeatureFactory;
+
+import java.util.List;
+import java.util.concurrent.Executor;
+
+/**
+ * Shared Connectivity Repository for {@link SharedConnectivityManager}
+ */
+public class SharedConnectivityRepository {
+ private static final String TAG = "SharedConnectivityRepository";
+ private static final String DEVICE_CONFIG_NAMESPACE = "wifi";
+ private static final String DEVICE_CONFIG_KEY = "shared_connectivity_enabled";
+
+ private Context mAppContext;
+ private SharedConnectivityManager mManager;
+ private ClientCallback mClientCallback = new ClientCallback();
+ private HandlerThread mWorkerThread = new HandlerThread(TAG);
+ private Executor mWorkerExecutor = cmd -> mWorkerThread.getThreadHandler().post(cmd);
+ private Runnable mLaunchSettingsRunnable = () -> handleLaunchSettings();
+ @VisibleForTesting
+ MutableLiveData<SharedConnectivitySettingsState> mSettingsState = new MutableLiveData<>();
+
+ public SharedConnectivityRepository(@NonNull Context appContext) {
+ this(appContext,
+ DeviceConfig.getBoolean(DEVICE_CONFIG_NAMESPACE, DEVICE_CONFIG_KEY, false));
+ }
+
+ @VisibleForTesting
+ SharedConnectivityRepository(@NonNull Context appContext, boolean isConfigEnabled) {
+ mAppContext = appContext;
+ if (!isConfigEnabled) {
+ return;
+ }
+ mManager = mAppContext.getSystemService(SharedConnectivityManager.class);
+ if (mManager == null) {
+ Log.w(TAG, "Failed to get SharedConnectivityManager");
+ return;
+ }
+ mWorkerThread.start();
+ mManager.registerCallback(mWorkerExecutor, mClientCallback);
+ }
+
+ /**
+ * Return whether Wi-Fi Shared Connectivity service is available or not.
+ *
+ * @return {@code true} if Wi-Fi Shared Connectivity service is available
+ */
+ public boolean isServiceAvailable() {
+ return mManager != null;
+ }
+
+ /**
+ * Gets SharedConnectivitySettingsState LiveData
+ */
+ public LiveData<SharedConnectivitySettingsState> getSettingsState() {
+ return mSettingsState;
+ }
+
+ /**
+ * Launch Instant Hotspot Settings
+ */
+ public void launchSettings() {
+ mWorkerExecutor.execute(mLaunchSettingsRunnable);
+ }
+
+ @WorkerThread
+ @VisibleForTesting
+ void handleLaunchSettings() {
+ if (mManager == null) {
+ return;
+ }
+ SharedConnectivitySettingsState state = mManager.getSettingsState();
+ log("handleLaunchSettings(), state:" + state);
+ if (state == null) {
+ Log.e(TAG, "No SettingsState to launch Instant Hotspot settings");
+ return;
+ }
+ PendingIntent intent = state.getInstantTetherSettingsPendingIntent();
+ if (intent == null) {
+ Log.e(TAG, "No PendingIntent to launch Instant Hotspot settings");
+ return;
+ }
+ sendSettingsIntent(intent);
+ }
+
+ @WorkerThread
+ @VisibleForTesting
+ void sendSettingsIntent(@NonNull PendingIntent intent) {
+ try {
+ log("sendSettingsIntent(), sent intent:" + intent);
+ intent.send();
+ } catch (PendingIntent.CanceledException e) {
+ Log.e(TAG, "Failed to launch Instant Hotspot settings", e);
+ }
+ }
+
+ @WorkerThread
+ class ClientCallback implements SharedConnectivityClientCallback {
+
+ @Override
+ public void onHotspotNetworkConnectionStatusChanged(HotspotNetworkConnectionStatus status) {
+ log("onHotspotNetworkConnectionStatusChanged(), status:" + status);
+ }
+
+ @Override
+ public void onHotspotNetworksUpdated(List<HotspotNetwork> networks) {
+ log("onHotspotNetworksUpdated(), networks:" + networks);
+ }
+
+ @Override
+ public void onKnownNetworkConnectionStatusChanged(KnownNetworkConnectionStatus status) {
+ log("onKnownNetworkConnectionStatusChanged(), status:" + status);
+ }
+
+ @Override
+ public void onKnownNetworksUpdated(List<KnownNetwork> networks) {
+ log("onKnownNetworksUpdated(), networks:" + networks);
+ }
+
+ @Override
+ public void onRegisterCallbackFailed(Exception e) {
+ Log.e(TAG, "onRegisterCallbackFailed(), e:" + e);
+ }
+
+ @Override
+ public void onServiceConnected() {
+ SharedConnectivitySettingsState state = mManager.getSettingsState();
+ Log.d(TAG, "onServiceConnected(), Manager#getSettingsState:" + state);
+ mSettingsState.postValue(state);
+ }
+
+ @Override
+ public void onServiceDisconnected() {
+ log("onServiceDisconnected()");
+ }
+
+ @Override
+ public void onSharedConnectivitySettingsChanged(SharedConnectivitySettingsState state) {
+ Log.d(TAG, "onSharedConnectivitySettingsChanged(), state:" + state);
+ mSettingsState.postValue(state);
+ }
+ }
+
+ private void log(String msg) {
+ FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
+ }
+}
diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java
index c06e869..f75fe11 100644
--- a/src/com/android/settings/wifi/slice/WifiSlice.java
+++ b/src/com/android/settings/wifi/slice/WifiSlice.java
@@ -20,6 +20,7 @@
import static android.provider.SettingsSlicesContract.KEY_WIFI;
import static com.android.settings.slices.CustomSliceRegistry.WIFI_SLICE_URI;
+import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource;
import android.annotation.ColorInt;
import android.app.PendingIntent;
@@ -264,13 +265,19 @@
android.R.attr.colorControlNormal));
}
- final Drawable drawable = mContext.getDrawable(
- WifiUtils.getInternetIconResource(wifiSliceItem.getLevel(),
- wifiSliceItem.shouldShowXLevelIcon()));
+ Drawable drawable = mContext.getDrawable(getWifiIconResId(wifiSliceItem));
drawable.setTint(tint);
return Utils.createIconWithDrawable(drawable);
}
+ @VisibleForTesting
+ int getWifiIconResId(WifiSliceItem wifiSliceItem) {
+ return (wifiSliceItem.isInstantHotspotNetwork())
+ ? getHotspotIconResource(wifiSliceItem.getInstantHotspotDeviceType())
+ : WifiUtils.getInternetIconResource(wifiSliceItem.getLevel(),
+ wifiSliceItem.shouldShowXLevelIcon());
+ }
+
protected IconCompat getEndIcon(WifiSliceItem wifiSliceItem) {
if (wifiSliceItem.getConnectedState() != WifiEntry.CONNECTED_STATE_DISCONNECTED) {
return IconCompat.createWithResource(mContext, R.drawable.ic_settings_24dp);
diff --git a/src/com/android/settings/wifi/slice/WifiSliceItem.java b/src/com/android/settings/wifi/slice/WifiSliceItem.java
index 5028a06..c6f85e5 100644
--- a/src/com/android/settings/wifi/slice/WifiSliceItem.java
+++ b/src/com/android/settings/wifi/slice/WifiSliceItem.java
@@ -20,6 +20,7 @@
import android.text.TextUtils;
import com.android.settingslib.R;
+import com.android.wifitrackerlib.HotspotNetworkEntry;
import com.android.wifitrackerlib.WifiEntry;
/**
@@ -39,6 +40,9 @@
private final boolean mHasInternetAccess;
private final String mSummary;
+ private boolean mIsInstantHotspotNetwork;
+ private int mInstantHotspotDeviceType;
+
// These values must be kept within [WifiEntry.WIFI_LEVEL_MIN, WifiEntry.WIFI_LEVEL_MAX]
private static final int[] WIFI_CONNECTION_STRENGTH = {
R.string.accessibility_no_wifi,
@@ -59,6 +63,10 @@
mShouldEditBeforeConnect = wifiEntry.shouldEditBeforeConnect();
mHasInternetAccess = wifiEntry.hasInternetAccess();
mSummary = wifiEntry.getSummary(false /* concise */);
+ mIsInstantHotspotNetwork = wifiEntry instanceof HotspotNetworkEntry;
+ if (mIsInstantHotspotNetwork) {
+ mInstantHotspotDeviceType = ((HotspotNetworkEntry) wifiEntry).getDeviceType();
+ }
}
@Override
@@ -83,6 +91,12 @@
if (!TextUtils.equals(getSummary(), otherItem.getSummary())) {
return false;
}
+ if (isInstantHotspotNetwork() != otherItem.isInstantHotspotNetwork()) {
+ return false;
+ }
+ if (getInstantHotspotDeviceType() != otherItem.getInstantHotspotDeviceType()) {
+ return false;
+ }
return true;
}
@@ -137,6 +151,20 @@
}
/**
+ * Returns true if this is a Instant Hotspot network.
+ */
+ public boolean isInstantHotspotNetwork() {
+ return mIsInstantHotspotNetwork;
+ }
+
+ /**
+ * Returns DeviceType of Instant Hotspot network.
+ */
+ public int getInstantHotspotDeviceType() {
+ return mInstantHotspotDeviceType;
+ }
+
+ /**
* This method has similar code as WifiEntryPreference#buildContentDescription().
* TODO(b/154191825): Adds WifiEntry#getContentDescription() to replace the duplicate code.
*/
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index 85812a5..df31f49 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -76,6 +76,8 @@
static final String KEY_WIFI_HOTSPOT_SECURITY = "wifi_hotspot_security";
@VisibleForTesting
static final String KEY_WIFI_HOTSPOT_SPEED = "wifi_hotspot_speed";
+ @VisibleForTesting
+ static final String KEY_INSTANT_HOTSPOT = "wifi_hotspot_instant";
@VisibleForTesting
SettingsMainSwitchBar mMainSwitchBar;
@@ -103,6 +105,8 @@
Preference mWifiHotspotSecurity;
@VisibleForTesting
Preference mWifiHotspotSpeed;
+ @VisibleForTesting
+ Preference mInstantHotspot;
static {
TETHER_STATE_CHANGE_FILTER = new IntentFilter(WIFI_AP_STATE_CHANGED_ACTION);
@@ -148,6 +152,7 @@
.getWifiTetherViewModel(this);
if (mWifiTetherViewModel != null) {
setupSpeedFeature(mWifiTetherViewModel.isSpeedFeatureAvailable());
+ setupInstantHotspot(mWifiTetherViewModel.isInstantHotspotFeatureAvailable());
mWifiTetherViewModel.getRestarting().observe(this, this::onRestartingChanged);
}
}
@@ -167,6 +172,24 @@
}
}
+ @VisibleForTesting
+ void setupInstantHotspot(boolean isFeatureAvailable) {
+ if (!isFeatureAvailable) {
+ return;
+ }
+ mInstantHotspot = findPreference(KEY_INSTANT_HOTSPOT);
+ if (mInstantHotspot == null) {
+ Log.e(TAG, "Failed to find Instant Hotspot preference:" + KEY_INSTANT_HOTSPOT);
+ return;
+ }
+ mWifiTetherViewModel.getInstantHotspotSummary()
+ .observe(this, this::onInstantHotspotChanged);
+ mInstantHotspot.setOnPreferenceClickListener(p -> {
+ mWifiTetherViewModel.launchInstantHotspotSettings();
+ return true;
+ });
+ }
+
@Override
public void onAttach(Context context) {
super.onAttach(context);
@@ -280,6 +303,16 @@
}
@VisibleForTesting
+ void onInstantHotspotChanged(String summary) {
+ if (summary == null) {
+ mInstantHotspot.setVisible(false);
+ return;
+ }
+ mInstantHotspot.setVisible(true);
+ mInstantHotspot.setSummary(summary);
+ }
+
+ @VisibleForTesting
SoftApConfiguration buildNewConfig() {
SoftApConfiguration currentConfig = mWifiTetherViewModel.getSoftApConfiguration();
SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder(currentConfig);
diff --git a/src/com/android/settings/wifi/tether/WifiTetherViewModel.java b/src/com/android/settings/wifi/tether/WifiTetherViewModel.java
index 4cde1be..ea09482 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherViewModel.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherViewModel.java
@@ -28,7 +28,9 @@
import android.app.Application;
import android.net.wifi.SoftApConfiguration;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
+import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
@@ -36,6 +38,8 @@
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.wifi.factory.WifiFeatureProvider;
+import com.android.settings.wifi.repository.SharedConnectivityRepository;
import com.android.settings.wifi.repository.WifiHotspotRepository;
import org.jetbrains.annotations.NotNull;
@@ -48,6 +52,8 @@
*/
public class WifiTetherViewModel extends AndroidViewModel {
private static final String TAG = "WifiTetherViewModel";
+ static final int RES_INSTANT_HOTSPOT_SUMMARY_ON = R.string.wifi_hotspot_instant_summary_on;
+ static final int RES_INSTANT_HOTSPOT_SUMMARY_OFF = R.string.wifi_hotspot_instant_summary_off;
static Map<Integer, Integer> sSecuritySummaryResMap = new HashMap<>();
@@ -78,10 +84,23 @@
protected final Observer<Integer> mSecurityTypeObserver = st -> onSecurityTypeChanged(st);
protected final Observer<Integer> mSpeedTypeObserver = st -> onSpeedTypeChanged(st);
+ private SharedConnectivityRepository mSharedConnectivityRepository;
+ @VisibleForTesting
+ MutableLiveData<String> mInstantHotspotSummary = new MutableLiveData<>();
+ @VisibleForTesting
+ Observer<SharedConnectivitySettingsState> mInstantHotspotStateObserver =
+ state -> onInstantHotspotStateChanged(state);
+
public WifiTetherViewModel(@NotNull Application application) {
super(application);
- mWifiHotspotRepository = FeatureFactory.getFeatureFactory().getWifiFeatureProvider()
- .getWifiHotspotRepository();
+ WifiFeatureProvider featureProvider = FeatureFactory.getFeatureFactory()
+ .getWifiFeatureProvider();
+ mWifiHotspotRepository = featureProvider.getWifiHotspotRepository();
+ mSharedConnectivityRepository = featureProvider.getSharedConnectivityRepository();
+ if (mSharedConnectivityRepository.isServiceAvailable()) {
+ mSharedConnectivityRepository.getSettingsState()
+ .observeForever(mInstantHotspotStateObserver);
+ }
}
@Override
@@ -92,6 +111,10 @@
if (mSpeedSummary != null) {
mWifiHotspotRepository.getSpeedType().removeObserver(mSpeedTypeObserver);
}
+ if (mSharedConnectivityRepository.isServiceAvailable()) {
+ mSharedConnectivityRepository.getSettingsState()
+ .removeObserver(mInstantHotspotStateObserver);
+ }
}
/**
@@ -172,4 +195,46 @@
public LiveData<Boolean> getRestarting() {
return mWifiHotspotRepository.getRestarting();
}
+
+ /**
+ * Return whether Wi-Fi Instant Hotspot feature is available or not.
+ *
+ * @return {@code true} if Wi-Fi Instant Hotspot feature is available
+ */
+ public boolean isInstantHotspotFeatureAvailable() {
+ return mSharedConnectivityRepository.isServiceAvailable();
+ }
+
+ /**
+ * Gets InstantHotspotSummary
+ */
+ public LiveData<String> getInstantHotspotSummary() {
+ return mInstantHotspotSummary;
+ }
+
+ @VisibleForTesting
+ void onInstantHotspotStateChanged(SharedConnectivitySettingsState state) {
+ log("onInstantHotspotStateChanged(), state:" + state);
+ if (state == null) {
+ mInstantHotspotSummary.setValue(null);
+ return;
+ }
+ mInstantHotspotSummary.setValue(getInstantHotspotSummary(state.isInstantTetherEnabled()));
+ }
+
+ private String getInstantHotspotSummary(boolean enabled) {
+ return getApplication().getString(
+ enabled ? RES_INSTANT_HOTSPOT_SUMMARY_ON : RES_INSTANT_HOTSPOT_SUMMARY_OFF);
+ }
+
+ /**
+ * Launch Instant Hotspot Settings
+ */
+ public void launchInstantHotspotSettings() {
+ mSharedConnectivityRepository.launchSettings();
+ }
+
+ private void log(String msg) {
+ FeatureFactory.getFeatureFactory().getWifiFeatureProvider().verboseLog(TAG, msg);
+ }
}
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index 2bd8721..f620348 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -17,13 +17,14 @@
platform_apis: true,
certificate: "platform",
privileged: true,
-
+ use_resource_processor: true,
resource_dirs: ["res"],
static_libs: [
"Settings-core",
"androidx.fragment_fragment-testing",
"frameworks-base-testutils",
+ "androidx.fragment_fragment",
],
aaptflags: ["--extra-packages com.android.settings"],
@@ -48,6 +49,8 @@
],
static_libs: [
+ "Robolectric_shadows_androidx_fragment_upstream",
+ "Settings_robolectric_meta_service_file",
"SettingsLib-robo-testutils",
"Settings-robo-testutils",
"androidx.test.core",
@@ -75,15 +78,16 @@
"SettingsLib",
"SettingsLib-search",
],
+
+ upstream: true,
}
java_library {
name: "Settings-robo-testutils",
srcs: ["testutils/**/*.java"],
-
libs: [
+ "Robolectric_all-target_upstream",
"Settings-core",
- "Robolectric_all-target",
"mockito-robolectric-prebuilt",
"truth-prebuilt",
],
diff --git a/tests/robotests/config/robolectric.properties b/tests/robotests/config/robolectric.properties
index ee805c4..3c8b258 100644
--- a/tests/robotests/config/robolectric.properties
+++ b/tests/robotests/config/robolectric.properties
@@ -2,3 +2,4 @@
shadows=\
com.android.settings.testutils.shadow.ShadowThreadUtils \
com.android.settings.network.ShadowServiceManagerExtend
+instrumentedPackages=androidx.preference
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
index 41aec0b..43fe9ca 100644
--- a/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearConfirmTest.java
@@ -40,10 +40,14 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import java.util.ArrayList;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class MainClearConfirmTest {
private FragmentActivity mActivity;
diff --git a/tests/robotests/src/com/android/settings/MainClearTest.java b/tests/robotests/src/com/android/settings/MainClearTest.java
index d1e9408..d782e6d 100644
--- a/tests/robotests/src/com/android/settings/MainClearTest.java
+++ b/tests/robotests/src/com/android/settings/MainClearTest.java
@@ -50,6 +50,7 @@
import androidx.fragment.app.FragmentActivity;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.utils.ActivityControllerWrapper;
import com.android.settingslib.development.DevelopmentSettingsEnabler;
@@ -66,11 +67,15 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowActivity;
-import org.robolectric.shadows.ShadowUserManager;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
+@Config(shadows = {
+ ShadowUtils.class,
+ ShadowUserManager.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class MainClearTest {
private static final String TEST_ACCOUNT_TYPE = "android.test.account.type";
@@ -112,7 +117,7 @@
Robolectric.buildActivity(FragmentActivity.class)).get());
mShadowActivity = Shadows.shadowOf(mActivity);
UserManager userManager = mActivity.getSystemService(UserManager.class);
- mShadowUserManager = Shadows.shadowOf(userManager);
+ mShadowUserManager = Shadow.extract(userManager);
mShadowUserManager.setIsAdminUser(true);
mContentView = LayoutInflater.from(mActivity).inflate(R.layout.main_clear, null);
diff --git a/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java b/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java
index 3b51ca8..34012d3 100644
--- a/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java
+++ b/tests/robotests/src/com/android/settings/ResetNetworkConfirmTest.java
@@ -38,8 +38,10 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowRecoverySystem.class, ShadowBluetoothAdapter.class})
public class ResetNetworkConfirmTest {
diff --git a/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java
index 6489311..627d52f 100644
--- a/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsPreferenceFragmentTest.java
@@ -40,7 +40,6 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settings.widget.WorkOnlyCategory;
import org.junit.After;
@@ -55,6 +54,9 @@
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class SettingsPreferenceFragmentTest {
private static final int ITEM_COUNT = 5;
@@ -166,7 +168,6 @@
}
@Test
- @Config(shadows = ShadowFragment.class)
public void onCreate_hasExtraFragmentKey_shouldExpandPreferences() {
doReturn(mContext.getTheme()).when(mActivity).getTheme();
doReturn(mContext.getResources()).when(mFragment).getResources();
@@ -181,7 +182,6 @@
}
@Test
- @Config(shadows = ShadowFragment.class)
public void onCreate_noPreferenceScreen_shouldNotCrash() {
doReturn(mContext.getTheme()).when(mActivity).getTheme();
doReturn(mContext.getResources()).when(mFragment).getResources();
diff --git a/tests/robotests/src/com/android/settings/UtilsTest.java b/tests/robotests/src/com/android/settings/UtilsTest.java
index 733a5e6..0c555da 100644
--- a/tests/robotests/src/com/android/settings/UtilsTest.java
+++ b/tests/robotests/src/com/android/settings/UtilsTest.java
@@ -16,15 +16,10 @@
package com.android.settings;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PASSWORD;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PATTERN;
-import static android.app.admin.DevicePolicyResources.Strings.Settings.WORK_PROFILE_CONFIRM_PIN;
-
import static com.google.common.truth.Truth.assertThat;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThrows;
-import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
@@ -399,45 +394,33 @@
}
@Test
- public void getConfirmCredentialStringForUser_workPin_shouldReturnCorrectString() {
+ public void getConfirmCredentialStringForUser_workPin_shouldReturnNull() {
setUpForConfirmCredentialString(true /* isEffectiveUserManagedProfile */);
- when(mDevicePolicyResourcesManager
- .getString(eq(WORK_PROFILE_CONFIRM_PIN), any()))
- .thenReturn("WORK PIN");
-
String confirmCredentialString = Utils.getConfirmCredentialStringForUser(mContext,
USER_ID, LockPatternUtils.CREDENTIAL_TYPE_PIN);
- assertThat(confirmCredentialString).isEqualTo("WORK PIN");
+ assertNull(confirmCredentialString);
}
@Test
- public void getConfirmCredentialStringForUser_workPattern_shouldReturnCorrectString() {
+ public void getConfirmCredentialStringForUser_workPattern_shouldReturnNull() {
setUpForConfirmCredentialString(true /* isEffectiveUserManagedProfile */);
- when(mDevicePolicyResourcesManager
- .getString(eq(WORK_PROFILE_CONFIRM_PATTERN), any()))
- .thenReturn("WORK PATTERN");
-
String confirmCredentialString = Utils.getConfirmCredentialStringForUser(mContext,
USER_ID, LockPatternUtils.CREDENTIAL_TYPE_PATTERN);
- assertThat(confirmCredentialString).isEqualTo("WORK PATTERN");
+ assertNull(confirmCredentialString);
}
@Test
- public void getConfirmCredentialStringForUser_workPassword_shouldReturnCorrectString() {
+ public void getConfirmCredentialStringForUser_workPassword_shouldReturnNull() {
setUpForConfirmCredentialString(true /* isEffectiveUserManagedProfile */);
- when(mDevicePolicyResourcesManager
- .getString(eq(WORK_PROFILE_CONFIRM_PASSWORD), any()))
- .thenReturn("WORK PASSWORD");
-
String confirmCredentialString = Utils.getConfirmCredentialStringForUser(mContext,
USER_ID, LockPatternUtils.CREDENTIAL_TYPE_PASSWORD);
- assertThat(confirmCredentialString).isEqualTo("WORK PASSWORD");
+ assertNull(confirmCredentialString);
}
@Test
@@ -454,7 +437,5 @@
when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mMockUserManager);
when(mMockUserManager.getCredentialOwnerProfile(USER_ID)).thenReturn(USER_ID);
when(mMockUserManager.isManagedProfile(USER_ID)).thenReturn(isEffectiveUserManagedProfile);
- when(mContext.getSystemService(DevicePolicyManager.class)).thenReturn(mDevicePolicyManager);
- when(mDevicePolicyManager.getResources()).thenReturn(mDevicePolicyResourcesManager);
}
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java
index 2f6ab9f..de8ae60 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityDetailsSettingsFragmentTest.java
@@ -43,6 +43,7 @@
import com.google.common.collect.ImmutableList;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -78,6 +79,7 @@
}
@Test
+ @Ignore
public void onCreate_afterSuccessfullyLaunch_shouldBeFinished() {
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
@@ -90,6 +92,7 @@
}
@Test
+ @Ignore
public void onCreate_hasValidExtraComponentName_launchExpectedFragment() {
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
@@ -103,6 +106,7 @@
}
@Test
+ @Ignore
public void onCreate_hasInvalidExtraComponentName_launchAccessibilitySettings() {
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_COMPONENT_NAME, PACKAGE_NAME + "/.service");
@@ -116,6 +120,7 @@
}
@Test
+ @Ignore
public void onCreate_hasNoExtraComponentName_launchAccessibilitySettings() {
mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment(),
new Intent());
@@ -127,6 +132,7 @@
}
@Test
+ @Ignore
public void onCreate_extraComponentNameIsDisallowed_launchAccessibilitySettings() {
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_COMPONENT_NAME, COMPONENT_NAME);
@@ -144,6 +150,7 @@
}
@Test
+ @Ignore
public void onCreate_magnificationComponentName_launchMagnificationFragment() {
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
@@ -158,6 +165,7 @@
}
@Test
+ @Ignore
public void onCreate_accessibilityButton_launchAccessibilityButtonFragment() {
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_COMPONENT_NAME,
@@ -172,6 +180,7 @@
}
@Test
+ @Ignore
public void onCreate_hearingAidsComponentName_launchAccessibilityHearingAidsFragment() {
FeatureFlagUtils.setEnabled(mContext,
FeatureFlagUtils.SETTINGS_ACCESSIBILITY_HEARING_AID_PAGE, true);
@@ -189,6 +198,7 @@
}
@Test
+ @Ignore
public void getMetricsCategory_returnsCorrectCategory() {
mFragmentController = FragmentController.of(new AccessibilityDetailsSettingsFragment());
AccessibilityDetailsSettingsFragment fragment = mFragmentController.create().get();
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceControllerTest.java
index 95c4b77..111f634 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceControllerTest.java
@@ -117,7 +117,7 @@
mPreference.onBindViewHolder(mPreferenceViewHolder);
final TextView learnMoreView = (TextView) mPreferenceViewHolder
- .findViewById(com.android.settingslib.R.id.settingslib_learn_more);
+ .findViewById(com.android.settingslib.widget.R.id.settingslib_learn_more);
assertThat(learnMoreView.getContentDescription()).isNull();
assertThat(learnMoreView.getVisibility()).isEqualTo(View.GONE);
assertThat(mPreference.isLinkEnabled()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
index 202fa8b..5d3557f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityGestureNavigationTutorialTest.java
@@ -50,9 +50,11 @@
import org.mockito.junit.MockitoRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
/** Tests for {@link AccessibilityGestureNavigationTutorial}. */
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public final class AccessibilityGestureNavigationTutorialTest {
@Rule
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java
index 8174541..63243f2 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest.java
@@ -53,6 +53,7 @@
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowApplication;
@@ -60,6 +61,7 @@
* Tests for {@link AccessibilityQuickSettingsPrimarySwitchPreferenceController}.
*/
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class AccessibilityQuickSettingsPrimarySwitchPreferenceControllerTest {
private static final String PLACEHOLDER_PACKAGE_NAME = "com.placeholder.example";
@@ -110,7 +112,7 @@
mPreference.setTitle(TEST_TITLE);
LayoutInflater inflater = LayoutInflater.from(mContext);
mHolder = PreferenceViewHolder.createInstanceForTests(inflater.inflate(
- com.android.settingslib.R.layout.preference_two_target, null));
+ com.android.settingslib.widget.R.layout.preference_two_target, null));
LinearLayout mWidgetView = mHolder.itemView.findViewById(android.R.id.widget_frame);
inflater.inflate(R.layout.preference_widget_primary_switch, mWidgetView, true);
mPreference.onBindViewHolder(mHolder);
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardTest.java
index ea2852f..78c8880 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardTest.java
@@ -58,6 +58,7 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
@@ -66,6 +67,9 @@
* Tests for {@link AccessibilitySettingsForSetupWizard}.
*/
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AccessibilitySettingsForSetupWizardTest {
private static final ComponentName TEST_SCREEN_READER_COMPONENT_NAME = new ComponentName(
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
index 30b8302..8e0cfc1 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
@@ -64,6 +64,7 @@
import com.android.settingslib.search.SearchIndexableRaw;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -84,7 +85,11 @@
/** Test for {@link AccessibilitySettings}. */
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothUtils.class, ShadowBluetoothAdapter.class})
+@Config(shadows = {
+ ShadowBluetoothUtils.class,
+ ShadowBluetoothAdapter.class,
+ ShadowFragment.class,
+})
public class AccessibilitySettingsTest {
private static final String PACKAGE_NAME = "com.android.test";
private static final String CLASS_NAME = PACKAGE_NAME + ".test_a11y_service";
@@ -141,6 +146,7 @@
}
@Test
+ @Ignore
public void getNonIndexableKeys_existInXmlLayout() {
final List<String> niks = AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER
.getNonIndexableKeys(mContext);
@@ -151,6 +157,7 @@
}
@Test
+ @Ignore
public void getRawDataToIndex_isNull() {
final List<SearchIndexableRaw> indexableRawList =
AccessibilitySettings.SEARCH_INDEX_DATA_PROVIDER.getRawDataToIndex(mContext, true);
@@ -159,6 +166,7 @@
}
@Test
+ @Ignore
public void getServiceSummary_serviceCrash_showsStopped() {
mServiceInfo.crashed = true;
@@ -170,6 +178,7 @@
}
@Test
+ @Ignore
public void getServiceSummary_invisibleToggle_shortcutEnabled_showsOnSummary() {
setInvisibleToggleFragmentType(mServiceInfo);
doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
@@ -185,6 +194,7 @@
}
@Test
+ @Ignore
public void getServiceSummary_invisibleToggle_shortcutDisabled_showsOffSummary() {
setInvisibleToggleFragmentType(mServiceInfo);
setShortcutEnabled(mServiceInfo.getComponentName(), false);
@@ -200,7 +210,8 @@
}
@Test
- public void getServiceSummary_enableServiceShortcutOnWithEmptyDescription_showsServiceEnabled() {
+ @Ignore
+ public void getServiceSummary_enableServiceShortcutOn_showsServiceEnabledShortcutOn() {
doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
setShortcutEnabled(mServiceInfo.getComponentName(), true);
@@ -212,7 +223,8 @@
}
@Test
- public void getServiceSummary_enableServiceShortcutOffWithEmptyDescription_showsServiceEnabled() {
+ @Ignore
+ public void getServiceSummary_enableServiceShortcutOff_showsServiceEnabledShortcutOff() {
doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
setShortcutEnabled(mServiceInfo.getComponentName(), false);
@@ -224,7 +236,8 @@
}
@Test
- public void getServiceSummary_disableServiceShortcutOffWithEmptyDescription_showsServiceDisabled() {
+ @Ignore
+ public void getServiceSummary_disableServiceShortcutOff_showsDisabledShortcutOff() {
doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
setShortcutEnabled(mServiceInfo.getComponentName(), false);
@@ -236,7 +249,8 @@
}
@Test
- public void getServiceSummary_disableServiceShortcutOnWithEmptyDescription_showsServiceDisabled() {
+ @Ignore
+ public void getServiceSummary_disableServiceShortcutOn_showsDisabledShortcutOn() {
doReturn(EMPTY_STRING).when(mServiceInfo).loadSummary(any());
setShortcutEnabled(mServiceInfo.getComponentName(), true);
@@ -248,6 +262,7 @@
}
@Test
+ @Ignore
public void getServiceSummary_enableServiceShortcutOffAndHasSummary_showsEnabledSummary() {
setShortcutEnabled(mServiceInfo.getComponentName(), false);
doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
@@ -262,6 +277,7 @@
}
@Test
+ @Ignore
public void getServiceSummary_enableServiceShortcutOnAndHasSummary_showsEnabledSummary() {
doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
setShortcutEnabled(mServiceInfo.getComponentName(), true);
@@ -276,6 +292,7 @@
}
@Test
+ @Ignore
public void getServiceSummary_disableServiceShortcutOnAndHasSummary_showsDisabledSummary() {
doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
setShortcutEnabled(mServiceInfo.getComponentName(), true);
@@ -290,6 +307,7 @@
}
@Test
+ @Ignore
public void getServiceSummary_disableServiceShortcutOffAndHasSummary_showsDisabledSummary() {
setShortcutEnabled(mServiceInfo.getComponentName(), false);
doReturn(DEFAULT_SUMMARY).when(mServiceInfo).loadSummary(any());
@@ -304,6 +322,7 @@
}
@Test
+ @Ignore
public void getServiceDescription_serviceCrash_showsStopped() {
mServiceInfo.crashed = true;
@@ -315,6 +334,7 @@
}
@Test
+ @Ignore
public void getServiceDescription_haveDescription_showsDescription() {
doReturn(DEFAULT_DESCRIPTION).when(mServiceInfo).loadDescription(any());
@@ -325,6 +345,7 @@
}
@Test
+ @Ignore
@Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
public void onCreate_haveRegisterToSpecificUrisAndActions() {
mFragment.onAttach(mContext);
@@ -343,6 +364,7 @@
}
@Test
+ @Ignore
@Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
public void onDestroy_unregisterObserverAndReceiver() {
setupFragment();
@@ -357,6 +379,7 @@
}
@Test
+ @Ignore
@Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
public void onContentChanged_updatePreferenceInForeground_preferenceUpdated() {
setupFragment();
@@ -373,6 +396,7 @@
}
@Test
+ @Ignore
@Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
public void onContentChanged_updatePreferenceInBackground_preferenceUpdated() {
setupFragment();
@@ -393,6 +417,7 @@
}
@Test
+ @Ignore
@Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
public void testAccessibilityMenuInSystem_IncludedInInteractionControl() {
mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
@@ -408,6 +433,7 @@
}
@Test
+ @Ignore
@Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
public void testAccessibilityMenuInSystem_NoPrefWhenNotInstalled() {
mShadowAccessibilityManager.setInstalledAccessibilityServiceList(List.of());
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
index 15374d6..179c647 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceFragmentTest.java
@@ -62,6 +62,9 @@
/** Tests for {@link AccessibilityShortcutPreferenceFragment} */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AccessibilityShortcutPreferenceFragmentTest {
private static final String PLACEHOLDER_PACKAGE_NAME = "com.placeholder.example";
diff --git a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
index 93f1a7b..ce2a571 100644
--- a/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/BalanceSeekBarTest.java
@@ -31,13 +31,19 @@
import android.util.AttributeSet;
import android.widget.SeekBar;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowSystemSettings.class,
+})
public class BalanceSeekBarTest {
// Fix the maximum process value to 200 for testing the BalanceSeekBar.
// It affects the SeekBar value of center(100) and snapThreshold(200 * SNAP_TO_PERCENTAGE).
diff --git a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
index 98da926..0f32f31 100644
--- a/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/FlashNotificationsPreviewPreferenceControllerTest.java
@@ -131,7 +131,7 @@
@Test
public void testHandlePreferenceTreeClick_invalidPreference() {
mController.handlePreferenceTreeClick(mock(Preference.class));
- verify(mContext, never()).sendBroadcast(any());
+ verify(mContext, never()).sendBroadcastAsUser(any(), any());
}
@Test
@@ -139,7 +139,7 @@
mController.handlePreferenceTreeClick(mPreference);
ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- verify(mContext).sendBroadcast(captor.capture());
+ verify(mContext).sendBroadcastAsUser(captor.capture(), any());
Intent captured = captor.getValue();
assertThat(captured.getAction()).isEqualTo(ACTION_FLASH_NOTIFICATION_START_PREVIEW);
@@ -150,7 +150,7 @@
mController.handlePreferenceTreeClick(mPreference);
ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- verify(mContext).sendBroadcast(captor.capture());
+ verify(mContext).sendBroadcastAsUser(captor.capture(), any());
Intent captured = captor.getValue();
assertThat(captured.getIntExtra(EXTRA_FLASH_NOTIFICATION_PREVIEW_TYPE, TYPE_LONG_PREVIEW))
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceControllerTest.java
index 15bb38d..254b569 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingAidCompatibilityPreferenceControllerTest.java
@@ -46,9 +46,13 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
/** Tests for {@link HearingAidCompatibilityPreferenceControllerTest}. */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowAudioManager.class,
+})
public class HearingAidCompatibilityPreferenceControllerTest {
@Rule
@@ -115,7 +119,7 @@
assertThat(Settings.System.getInt(mContext.getContentResolver(),
Settings.System.HEARING_AID, HAC_DISABLED)).isEqualTo(HAC_ENABLED);
- verify(mAudioManager).setParameters("HACSetting=ON");
+ verify(mAudioManager).setParameters("HACSetting=ON;");
}
@Test
@@ -124,7 +128,7 @@
assertThat(Settings.System.getInt(mContext.getContentResolver(),
Settings.System.HEARING_AID, HAC_DISABLED)).isEqualTo(HAC_DISABLED);
- verify(mAudioManager).setParameters("HACSetting=OFF");
+ verify(mAudioManager).setParameters("HACSetting=OFF;");
}
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingAidDialogFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingAidDialogFragmentTest.java
index d55a948..7a0853f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HearingAidDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingAidDialogFragmentTest.java
@@ -45,10 +45,15 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
/** Tests for {@link HearingAidDialogFragment}. */
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowAlertDialogCompat.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+ ShadowAlertDialogCompat.class,
+})
public class HearingAidDialogFragmentTest {
@Rule
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingAidPairingDialogFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingAidPairingDialogFragmentTest.java
index d1c803e..a16f15f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HearingAidPairingDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingAidPairingDialogFragmentTest.java
@@ -43,7 +43,6 @@
import com.android.settings.bluetooth.BluetoothPairingDetail;
import com.android.settings.bluetooth.HearingAidPairingDialogFragment;
import com.android.settings.bluetooth.Utils;
-import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.testutils.shadow.ShadowBluetoothUtils;
import com.android.settings.utils.ActivityControllerWrapper;
@@ -62,12 +61,18 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadow.api.Shadow;
/** Tests for {@link HearingAidPairingDialogFragment}. */
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAlertDialogCompat.class, ShadowBluetoothAdapter.class,
- ShadowBluetoothUtils.class})
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowAlertDialogCompat.class,
+ com.android.settings.testutils.shadow.ShadowBluetoothAdapter.class,
+ com.android.settings.testutils.shadow.ShadowBluetoothUtils.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class HearingAidPairingDialogFragmentTest {
@Rule
diff --git a/tests/robotests/src/com/android/settings/accessibility/HearingAidUtilsTest.java b/tests/robotests/src/com/android/settings/accessibility/HearingAidUtilsTest.java
index 56ab082..eefeb60 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HearingAidUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/HearingAidUtilsTest.java
@@ -19,6 +19,7 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
@@ -59,8 +60,11 @@
/** Tests for {@link HearingAidUtils}. */
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAlertDialogCompat.class, ShadowBluetoothAdapter.class,
- ShadowBluetoothUtils.class})
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowAlertDialogCompat.class,
+ com.android.settings.testutils.shadow.ShadowBluetoothAdapter.class,
+ com.android.settings.testutils.shadow.ShadowBluetoothUtils.class,
+})
public class HearingAidUtilsTest {
@Rule
@@ -89,6 +93,7 @@
setupEnvironment();
final FragmentActivity mActivity = (FragmentActivity) ActivityControllerWrapper.setup(
Robolectric.buildActivity(FragmentActivity.class)).get();
+ shadowMainLooper().idle();
mFragmentManager = mActivity.getSupportFragmentManager();
ShadowAlertDialogCompat.reset();
when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_DEVICE_ADDRESS);
@@ -100,6 +105,7 @@
HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+ shadowMainLooper().idle();
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNull();
}
@@ -112,6 +118,7 @@
HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+ shadowMainLooper().idle();
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNull();
}
@@ -125,6 +132,7 @@
HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+ shadowMainLooper().idle();
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNull();
}
@@ -139,6 +147,7 @@
HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+ shadowMainLooper().idle();
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNull();
}
@@ -155,6 +164,7 @@
HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+ shadowMainLooper().idle();
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNull();
}
@@ -171,6 +181,7 @@
HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+ shadowMainLooper().idle();
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog.isShowing()).isTrue();
}
@@ -185,6 +196,7 @@
HearingAidUtils.launchHearingAidPairingDialog(mFragmentManager, mCachedBluetoothDevice);
+ shadowMainLooper().idle();
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog.isShowing()).isTrue();
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/LockScreenRotationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/LockScreenRotationPreferenceControllerTest.java
index f908b8a..c98ad3d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/LockScreenRotationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/LockScreenRotationPreferenceControllerTest.java
@@ -37,6 +37,9 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+})
public class LockScreenRotationPreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java
index 66ce02b..87cd544 100644
--- a/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/PreviewSizeSeekBarControllerTest.java
@@ -53,6 +53,7 @@
import org.mockito.Spy;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowApplication;
@@ -60,6 +61,7 @@
* Tests for {@link PreviewSizeSeekBarController}.
*/
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowInteractionJankMonitor.class})
public class PreviewSizeSeekBarControllerTest {
private static final String FONT_SIZE_KEY = "font_size";
diff --git a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
index 4c06319..04b48c0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationColorDialogFragmentTest.java
@@ -45,6 +45,7 @@
import com.android.settings.testutils.FakeTimer;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
@@ -83,17 +84,20 @@
}
@Test
+ @Ignore
public void test_assertShow() {
assertThat(mAlertDialog.isShowing()).isTrue();
}
@Test
+ @Ignore
public void clickNeutral_assertShow() {
performClickOnDialog(BUTTON_NEUTRAL);
assertThat(mAlertDialog.isShowing()).isTrue();
}
@Test
+ @Ignore
public void clickNeutral_assertStartPreview() {
performClickOnDialog(BUTTON_NEUTRAL);
getTimerFromFragment().runOneTask();
@@ -102,6 +106,7 @@
}
@Test
+ @Ignore
public void clickNeutral_flushAllScheduledTasks_assertStopPreview() {
performClickOnDialog(BUTTON_NEUTRAL);
getTimerFromFragment().runAllTasks();
@@ -110,18 +115,21 @@
}
@Test
+ @Ignore
public void clickNegative_assertNotShow() {
performClickOnDialog(BUTTON_NEGATIVE);
assertThat(mAlertDialog.isShowing()).isFalse();
}
@Test
+ @Ignore
public void clickPositive_assertNotShow() {
performClickOnDialog(BUTTON_POSITIVE);
assertThat(mAlertDialog.isShowing()).isFalse();
}
@Test
+ @Ignore
public void clickNeutralAndPause_assertStopPreview() {
performClickOnDialog(BUTTON_NEUTRAL);
getTimerFromFragment().runOneTask();
@@ -131,6 +139,7 @@
}
@Test
+ @Ignore
public void clickNeutralAndClickNegative_assertStopPreview() {
performClickOnDialog(BUTTON_NEUTRAL);
getTimerFromFragment().runOneTask();
@@ -140,6 +149,7 @@
}
@Test
+ @Ignore
public void clickNeutralAndClickPositive_assertStopPreview() {
performClickOnDialog(BUTTON_NEUTRAL);
getTimerFromFragment().runOneTask();
@@ -149,6 +159,7 @@
}
@Test
+ @Ignore
public void clickNeutralAndClickColor_assertStartPreview() {
performClickOnDialog(BUTTON_NEUTRAL);
getTimerFromFragment().runOneTask();
@@ -166,6 +177,7 @@
}
@Test
+ @Ignore
public void clickColorAndClickNegative_assertColor() {
checkColorButton(AZURE);
performClickOnDialog(BUTTON_NEGATIVE);
@@ -175,6 +187,7 @@
}
@Test
+ @Ignore
public void clickColorAndClickPositive_assertColor() {
checkColorButton(BLUE);
performClickOnDialog(BUTTON_POSITIVE);
diff --git a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
index 8b26245..8160fab 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ScreenFlashNotificationPreferenceControllerTest.java
@@ -65,6 +65,7 @@
ScreenFlashNotificationPreferenceControllerTest
.ShadowScreenFlashNotificationColorDialogFragment.class,
ShadowFlashNotificationsUtils.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
})
public class ScreenFlashNotificationPreferenceControllerTest {
private static final String PREFERENCE_KEY = "preference_key";
diff --git a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentTest.java
index 50a33f3..1d5370f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/TextReadingPreferenceFragmentTest.java
@@ -52,6 +52,8 @@
import org.mockito.junit.MockitoRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowToast;
import java.util.ArrayList;
@@ -60,6 +62,10 @@
/** Tests for {@link TextReadingPreferenceFragment}. */
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class TextReadingPreferenceFragmentTest {
@Rule
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index 2909ea7..de305a6 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -62,11 +62,16 @@
import org.mockito.Spy;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowApplication;
/** Tests for {@link ToggleFeaturePreferenceFragment} */
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+ ShadowFragment.class,
+})
public class ToggleFeaturePreferenceFragmentTest {
private static final String PLACEHOLDER_PACKAGE_NAME = "com.placeholder.example";
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java
index aa622f5..fe316ea 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest.java
@@ -56,7 +56,10 @@
/** Tests for {@link ToggleScreenMagnificationPreferenceFragmentForSetupWizard}. */
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowSettingsPreferenceFragment.class})
+@Config(shadows = {
+ ShadowSettingsPreferenceFragment.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ToggleScreenMagnificationPreferenceFragmentForSetupWizardTest {
private final Context mContext = ApplicationProvider.getApplicationContext();
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
index fb1b8b9..72e9b54 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
@@ -57,6 +57,7 @@
import com.google.common.truth.Correspondence;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -72,9 +73,13 @@
import java.util.List;
/** Tests for {@link ToggleScreenMagnificationPreferenceFragment}. */
-@Config(shadows = {ShadowUserManager.class, ShadowStorageManager.class,
- ShadowSettings.ShadowSecure.class})
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowUserManager.class,
+ ShadowStorageManager.class,
+ ShadowSettings.ShadowSecure.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ToggleScreenMagnificationPreferenceFragmentTest {
private static final String PLACEHOLDER_PACKAGE_NAME = "com.mock.example";
@@ -125,6 +130,7 @@
}
@Test
+ @Ignore
public void onResume_defaultStateForFollowingTyping_switchPreferenceShouldReturnTrue() {
setKeyFollowTypingEnabled(true);
@@ -138,6 +144,7 @@
}
@Test
+ @Ignore
public void onResume_disableFollowingTyping_switchPreferenceShouldReturnFalse() {
setKeyFollowTypingEnabled(false);
@@ -151,6 +158,7 @@
}
@Test
+ @Ignore
public void onResume_haveRegisterToSpecificUris() {
ShadowContentResolver shadowContentResolver = Shadows.shadowOf(
mContext.getContentResolver());
@@ -179,6 +187,7 @@
}
@Test
+ @Ignore
public void hasValueInSettings_putValue_hasValue() {
setMagnificationTripleTapEnabled(/* enabled= */ true);
@@ -187,6 +196,7 @@
}
@Test
+ @Ignore
public void optInAllValuesToSettings_optInValue_haveMatchString() {
int shortcutTypes = UserShortcutType.SOFTWARE | UserShortcutType.TRIPLETAP;
@@ -200,6 +210,7 @@
}
@Test
+ @Ignore
public void optInAllValuesToSettings_existOtherValue_optInValue_haveMatchString() {
putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, PLACEHOLDER_COMPONENT_NAME.flattenToString());
@@ -211,6 +222,7 @@
}
@Test
+ @Ignore
public void optInAllValuesToSettings_software_sizeValueIsNull_putLargeSizeValue() {
ShadowSettings.ShadowSecure.reset();
@@ -224,6 +236,7 @@
}
@Test
+ @Ignore
public void optInAllValuesToSettings_software_sizeValueIsNotNull_sizeValueIsNotChanged() {
for (int size : new int[] {FloatingMenuSizePreferenceController.Size.LARGE,
FloatingMenuSizePreferenceController.Size.SMALL}) {
@@ -242,6 +255,7 @@
}
@Test
+ @Ignore
public void optInAllValuesToSettings_hardware_sizeValueIsNotChanged() {
for (int size : new int[] {FloatingMenuSizePreferenceController.Size.UNKNOWN,
FloatingMenuSizePreferenceController.Size.LARGE,
@@ -260,6 +274,7 @@
}
@Test
+ @Ignore
public void optInAllValuesToSettings_tripletap_sizeValueIsNotChanged() {
for (int size : new int[] {FloatingMenuSizePreferenceController.Size.UNKNOWN,
FloatingMenuSizePreferenceController.Size.LARGE,
@@ -278,6 +293,7 @@
}
@Test
+ @Ignore
public void optOutAllValuesToSettings_optOutValue_emptyString() {
putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
putStringIntoSettings(HARDWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
@@ -294,6 +310,7 @@
}
@Test
+ @Ignore
public void optOutValueFromSettings_existOtherValue_optOutValue_haveMatchString() {
putStringIntoSettings(SOFTWARE_SHORTCUT_KEY,
PLACEHOLDER_COMPONENT_NAME.flattenToString() + ":" + MAGNIFICATION_CONTROLLER_NAME);
@@ -311,6 +328,7 @@
}
@Test
+ @Ignore
public void updateShortcutPreferenceData_assignDefaultValueToVariable() {
mFragController.create(R.id.main_content, /* bundle= */ null).start().resume();
@@ -323,6 +341,7 @@
}
@Test
+ @Ignore
public void updateShortcutPreferenceData_hasValueInSettings_assignToVariable() {
putStringIntoSettings(SOFTWARE_SHORTCUT_KEY, MAGNIFICATION_CONTROLLER_NAME);
setMagnificationTripleTapEnabled(/* enabled= */ true);
@@ -336,6 +355,7 @@
}
@Test
+ @Ignore
public void updateShortcutPreferenceData_hasValueInSharedPreference_assignToVariable() {
final PreferredShortcut tripleTapShortcut = new PreferredShortcut(
MAGNIFICATION_CONTROLLER_NAME, UserShortcutType.TRIPLETAP);
@@ -350,6 +370,7 @@
}
@Test
+ @Ignore
public void setupMagnificationEditShortcutDialog_shortcutPreferenceOff_checkboxIsEmptyValue() {
ToggleScreenMagnificationPreferenceFragment fragment =
mFragController.create(R.id.main_content, /* bundle= */
@@ -365,6 +386,7 @@
}
@Test
+ @Ignore
public void setupMagnificationEditShortcutDialog_shortcutPreferenceOn_checkboxIsSavedValue() {
ToggleScreenMagnificationPreferenceFragment fragment =
mFragController.create(R.id.main_content, /* bundle= */
@@ -385,6 +407,7 @@
}
@Test
+ @Ignore
public void restoreValueFromSavedInstanceState_assignToVariable() {
final Bundle fragmentState = createFragmentSavedInstanceState(
UserShortcutType.HARDWARE | UserShortcutType.TRIPLETAP);
@@ -406,6 +429,7 @@
}
@Test
+ @Ignore
public void onCreateView_magnificationAreaNotSupported_settingsPreferenceIsNull() {
setWindowMagnificationSupported(
/* magnificationAreaSupported= */ false,
@@ -417,6 +441,7 @@
}
@Test
+ @Ignore
public void onCreateView_windowMagnificationNotSupported_settingsPreferenceIsNull() {
setWindowMagnificationSupported(
/* magnificationAreaSupported= */ true,
@@ -428,6 +453,7 @@
}
@Test
+ @Ignore
public void onCreateView_setDialogDelegateAndAddTheControllerToLifeCycleObserver() {
Correspondence instanceOf = Correspondence.transforming(
observer -> (observer instanceof MagnificationModePreferenceController),
@@ -445,6 +471,7 @@
}
@Test
+ @Ignore
public void onCreateDialog_setDialogDelegate_invokeDialogDelegate() {
ToggleScreenMagnificationPreferenceFragment fragment =
mFragController.create(
@@ -461,6 +488,7 @@
}
@Test
+ @Ignore
public void getMetricsCategory_returnsCorrectCategory() {
ToggleScreenMagnificationPreferenceFragment fragment =
mFragController.create(
@@ -471,6 +499,7 @@
}
@Test
+ @Ignore
public void getHelpResource_returnsCorrectHelpResource() {
ToggleScreenMagnificationPreferenceFragment fragment =
mFragController.create(
@@ -480,6 +509,7 @@
}
@Test
+ @Ignore
public void onProcessArguments_defaultArgumentUnavailable_shouldSetDefaultArguments() {
ToggleScreenMagnificationPreferenceFragment fragment =
mFragController.create(
@@ -494,7 +524,8 @@
}
@Test
- public void getSummary_magnificationEnabled_returnShortcutOn() {
+ @Ignore
+ public void getSummary_magnificationEnabled_returnShortcutOnWithSummary() {
setMagnificationTripleTapEnabled(true);
assertThat(
@@ -504,7 +535,8 @@
}
@Test
- public void getSummary_magnificationDisabled_returnShortcutOff() {
+ @Ignore
+ public void getSummary_magnificationDisabled_returnShortcutOffWithSummary() {
setMagnificationTripleTapEnabled(false);
assertThat(
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizardTest.java
index 77e5b1f..fa3fc23 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizardTest.java
@@ -51,9 +51,13 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
/** Tests for {@link ToggleScreenReaderPreferenceFragmentForSetupWizard}. */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ToggleScreenReaderPreferenceFragmentForSetupWizardTest {
private static final String TEST_TITLE = "test_title";
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest.java
index 8878064..ed426f9 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest.java
@@ -51,9 +51,13 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
/** Tests for {@link ToggleSelectToSpeakPreferenceFragmentForSetupWizard}. */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ToggleSelectToSpeakPreferenceFragmentForSetupWizardTest {
private static final String TEST_TITLE = "test_title";
diff --git a/tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java
index 72aabab..2c59354 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ViewAllBluetoothDevicesPreferenceControllerTest.java
@@ -42,9 +42,13 @@
import org.mockito.junit.MockitoRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
/** Tests for {@link ViewAllBluetoothDevicesPreferenceController}. */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ViewAllBluetoothDevicesPreferenceControllerTest {
@Rule
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
index cccca9c..d696ebb 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
@@ -63,7 +63,12 @@
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAccountManager.class, ShadowUserManager.class})
+@Config(shadows = {
+ ShadowAccountManager.class,
+ ShadowUserManager.class,
+ com.android.settings.testutils.shadow.ShadowDashboardFragment.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AccountDetailDashboardFragmentTest {
private static final String METADATA_CATEGORY = "com.android.settings.category";
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountSyncSettingsTest.java b/tests/robotests/src/com/android/settings/accounts/AccountSyncSettingsTest.java
index bdf1290..3bdfec2 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountSyncSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountSyncSettingsTest.java
@@ -41,7 +41,10 @@
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowContentResolver.class})
+@Config(shadows = {
+ ShadowContentResolver.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AccountSyncSettingsTest {
private Context mContext;
private AccountSyncSettings mAccountSyncSettings;
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountTypePreferenceLoaderTest.java b/tests/robotests/src/com/android/settings/accounts/AccountTypePreferenceLoaderTest.java
index 405f6b3..f5c588f 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountTypePreferenceLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountTypePreferenceLoaderTest.java
@@ -52,6 +52,9 @@
import org.robolectric.shadows.ShadowApplication;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AccountTypePreferenceLoaderTest {
@Mock(answer = RETURNS_DEEP_STUBS)
diff --git a/tests/robotests/src/com/android/settings/accounts/CrossProfileCalendarPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/CrossProfileCalendarPreferenceControllerTest.java
index b50fa5e..ca4fc59 100644
--- a/tests/robotests/src/com/android/settings/accounts/CrossProfileCalendarPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/CrossProfileCalendarPreferenceControllerTest.java
@@ -26,34 +26,31 @@
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import static org.robolectric.RuntimeEnvironment.application;
-import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.os.UserHandle;
import android.provider.Settings;
-import android.util.ArraySet;
+import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settingslib.RestrictedSwitchPreference;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowDevicePolicyManager;
+import org.robolectric.annotation.Config;
-import java.util.Arrays;
import java.util.Collections;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowDevicePolicyManager.class,
+})
public class CrossProfileCalendarPreferenceControllerTest {
private static final String PREF_KEY = "cross_profile_calendar";
@@ -76,7 +73,7 @@
mController = new CrossProfileCalendarPreferenceController(mContext, PREF_KEY);
mController.setManagedUser(mManagedUser);
mPreference = spy(new RestrictedSwitchPreference(mContext));
- dpm = Shadows.shadowOf(application.getSystemService(DevicePolicyManager.class));
+ dpm = ShadowDevicePolicyManager.getShadow();
when(mManagedUser.getIdentifier()).thenReturn(MANAGED_USER_ID);
doReturn(mContext).when(mContext).createPackageContextAsUser(
diff --git a/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java b/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java
index 2698efa..81c44df 100644
--- a/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/ManagedProfileQuietModeEnablerTest.java
@@ -43,11 +43,13 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
import java.util.Collections;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class ManagedProfileQuietModeEnablerTest {
private static final int MANAGED_USER_ID = 10;
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java
index 6eb5abb..8d8f0c1 100644
--- a/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/RemoveAccountPreferenceControllerTest.java
@@ -35,13 +35,10 @@
import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException;
import android.app.Activity;
-import android.content.ComponentName;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.UserHandle;
-import android.os.UserManager;
-import android.widget.Button;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
@@ -57,11 +54,11 @@
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.utils.ActivityControllerWrapper;
+import com.android.settings.widget.RestrictedButton;
import com.android.settingslib.widget.LayoutPreference;
import org.junit.After;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -74,13 +71,12 @@
import org.robolectric.shadows.ShadowApplication;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {
ShadowUserManager.class,
- ShadowDevicePolicyManager.class
+ ShadowDevicePolicyManager.class,
+ ShadowFragment.class,
})
public class RemoveAccountPreferenceControllerTest {
@@ -129,7 +125,7 @@
@Test
public void displayPreference_shouldAddClickListener() {
when(mScreen.findPreference(KEY_REMOVE_ACCOUNT)).thenReturn(mPreference);
- final Button button = mock(Button.class);
+ final RestrictedButton button = mock(RestrictedButton.class);
when(mPreference.findViewById(R.id.button)).thenReturn(button);
mController.displayPreference(mScreen);
@@ -147,32 +143,6 @@
eq(TAG_REMOVE_ACCOUNT_DIALOG));
}
- @Ignore
- @Test
- public void onClick_modifyAccountsIsDisallowed_shouldNotStartConfirmDialog() {
- when(mFragment.isAdded()).thenReturn(true);
-
- final int userId = UserHandle.myUserId();
- mController.init(new Account("test", "test"), UserHandle.of(userId));
-
- List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
- enforcingUsers.add(new UserManager.EnforcingUser(userId,
- UserManager.RESTRICTION_SOURCE_DEVICE_OWNER));
- ComponentName componentName = new ComponentName("test", "test");
- // Ensure that RestrictedLockUtils.checkIfRestrictionEnforced doesn't return null.
- ShadowUserManager.getShadow().setUserRestrictionSources(
- UserManager.DISALLOW_MODIFY_ACCOUNTS,
- UserHandle.of(userId),
- enforcingUsers);
- ShadowDevicePolicyManager.getShadow().setDeviceOwnerComponentOnAnyUser(componentName);
-
- mController.onClick(null);
-
- verify(mFragmentTransaction, never()).add(
- any(RemoveAccountPreferenceController.ConfirmRemoveAccountDialog.class),
- eq(TAG_REMOVE_ACCOUNT_DIALOG));
- }
-
@Test
@Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class,
ShadowFragment.class})
diff --git a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java
index 71c532c..8740662 100644
--- a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsCounterTest.java
@@ -45,12 +45,14 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import java.util.Arrays;
import java.util.Collections;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public final class AppWithAdminGrantedPermissionsCounterTest {
private final String APP_1 = "app1";
diff --git a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsListerTest.java b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsListerTest.java
index 9a4978b..f08a9db 100644
--- a/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsListerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppWithAdminGrantedPermissionsListerTest.java
@@ -42,6 +42,7 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import java.util.Arrays;
@@ -49,6 +50,7 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public final class AppWithAdminGrantedPermissionsListerTest {
private final String APP_1 = "app1";
diff --git a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
index 7044389..4eb623d 100644
--- a/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/applications/ApplicationFeatureProviderImplTest.java
@@ -50,6 +50,7 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@@ -62,6 +63,7 @@
* Tests for {@link ApplicationFeatureProviderImpl}.
*/
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public final class ApplicationFeatureProviderImplTest {
private final int MAIN_USER_ID = 0;
diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
index 2c1fab8..cd9cdd6 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppCounterTest.java
@@ -45,6 +45,7 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
@@ -53,6 +54,7 @@
import java.util.Set;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public final class InstalledAppCounterTest {
private final String APP_1 = "app1";
diff --git a/tests/robotests/src/com/android/settings/applications/InstalledAppListerTest.java b/tests/robotests/src/com/android/settings/applications/InstalledAppListerTest.java
index 602d678..1287d13 100644
--- a/tests/robotests/src/com/android/settings/applications/InstalledAppListerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/InstalledAppListerTest.java
@@ -43,6 +43,7 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import java.util.Arrays;
@@ -52,6 +53,7 @@
import java.util.Set;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public final class InstalledAppListerTest {
private final String APP_1 = "app1";
diff --git a/tests/robotests/src/com/android/settings/applications/OpenSupportedLinksTest.java b/tests/robotests/src/com/android/settings/applications/OpenSupportedLinksTest.java
index 7712ae8..355b5db 100644
--- a/tests/robotests/src/com/android/settings/applications/OpenSupportedLinksTest.java
+++ b/tests/robotests/src/com/android/settings/applications/OpenSupportedLinksTest.java
@@ -49,9 +49,14 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+ ShadowUtils.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class OpenSupportedLinksTest {
private static final String TEST_FOOTER_TITLE = "FooterTitle";
private static final String TEST_DOMAIN_LINK = "aaa.bbb.ccc";
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppBatteryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppBatteryPreferenceControllerTest.java
index 6f0aec9..5ca7415 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppBatteryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppBatteryPreferenceControllerTest.java
@@ -56,6 +56,9 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AppBatteryPreferenceControllerTest {
private static final int TARGET_UID = 111;
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
index b12c8db..46eac83 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
@@ -51,7 +51,10 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowSettingsLibUtils.class)
+@Config(shadows = {
+ ShadowSettingsLibUtils.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AppHeaderViewPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java
index ecf98a7..87e4a8f 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoDashboardFragmentTest.java
@@ -76,6 +76,9 @@
import java.util.Set;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public final class AppInfoDashboardFragmentTest {
private static final String PACKAGE_NAME = "test_package_name";
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java
index 71ba753..c14bcb5 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppInfoPreferenceControllerBaseTest.java
@@ -46,8 +46,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AppInfoPreferenceControllerBaseTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
index e433dd3..e948b7e 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppMemoryPreferenceControllerTest.java
@@ -49,7 +49,10 @@
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class})
+@Config(shadows = {
+ ShadowUserManager.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AppMemoryPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppNotificationPreferenceControllerTest.java
index 3b366ca..f6ee7ce 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppNotificationPreferenceControllerTest.java
@@ -35,8 +35,8 @@
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
-import com.android.settings.notification.app.AppNotificationSettings;
import com.android.settings.notification.NotificationBackend;
+import com.android.settings.notification.app.AppNotificationSettings;
import com.android.settingslib.applications.ApplicationsState;
import org.junit.Before;
@@ -46,9 +46,13 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AppNotificationPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppPermissionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppPermissionPreferenceControllerTest.java
index 41ff9ed..b610d8c 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppPermissionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppPermissionPreferenceControllerTest.java
@@ -44,11 +44,15 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AppPermissionPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragmentTest.java
index 805cdd2..d035a64 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonDialogFragmentTest.java
@@ -44,8 +44,10 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = ShadowAlertDialogCompat.class)
public class InstantAppButtonDialogFragmentTest {
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java
index a4277dd..9d6332e 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/InstantAppButtonsPreferenceControllerTest.java
@@ -61,9 +61,13 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class InstantAppButtonsPreferenceControllerTest {
private static final String TEST_INSTALLER_PACKAGE_NAME = "com.installer";
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java
index 2a63f53..fdf7c0d 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragmentTest.java
@@ -42,11 +42,15 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class DefaultAppPickerFragmentTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java
index 8fcdaa2..259163e 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultAutofillPickerTest.java
@@ -58,7 +58,10 @@
import java.util.Arrays;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowSecureSettings.class)
+@Config(shadows = {
+ ShadowSecureSettings.class,
+ ShadowFragment.class,
+})
public class DefaultAutofillPickerTest {
private static final String MAIN_APP_KEY = "main.foo.bar/foo.bar.Baz";
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
index 0622948..d3ae4e3 100644
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/manageapplications/ManageApplicationsTest.java
@@ -76,8 +76,12 @@
import java.util.ArrayList;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class, ShadowAppUtils.class,
- ShadowInteractionJankMonitor.class})
+@Config(shadows = {
+ ShadowUserManager.class,
+ ShadowAppUtils.class,
+ ShadowInteractionJankMonitor.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ManageApplicationsTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesControllerTest.java
index 730a3cc..eef7f7c 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesControllerTest.java
@@ -31,8 +31,12 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowUserManager.class,
+})
public class InteractAcrossProfilesControllerTest {
private static final int PERSONAL_PROFILE_ID = 0;
private static final int WORK_PROFILE_ID = 10;
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetailsTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetailsTest.java
index edd85e4..61230b8 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetailsTest.java
@@ -23,22 +23,32 @@
import android.content.Context;
import android.content.PermissionChecker;
import android.content.pm.CrossProfileApps;
-import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.os.UserManager;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowApplicationPackageManager;
+import com.android.settings.testutils.shadow.ShadowCrossProfileApps;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settingslib.testutils.shadow.ShadowPermissionChecker;
import com.google.common.collect.ImmutableList;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.shadows.ShadowPermissionChecker;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowApplicationPackageManager.class,
+ ShadowCrossProfileApps.class,
+ ShadowUserManager.class,
+ ShadowPermissionChecker.class,
+})
public class InteractAcrossProfilesDetailsTest {
private static final int PERSONAL_PROFILE_ID = 0;
@@ -48,23 +58,34 @@
"android.permission.INTERACT_ACROSS_PROFILES";
private final Context mContext = ApplicationProvider.getApplicationContext();
- private final PackageManager mPackageManager = mContext.getPackageManager();
- private final UserManager mUserManager = mContext.getSystemService(UserManager.class);
- private final CrossProfileApps mCrossProfileApps = mContext.getSystemService(
- CrossProfileApps.class);
+ private ShadowUserManager mShadowUserManager;
+ private ShadowCrossProfileApps mShadowCrossProfileApps;
+ private ShadowApplicationPackageManager mShadowPackageManager;
+
+ @Before
+ public void setUp() {
+ mShadowUserManager = (ShadowUserManager) shadowOf(
+ mContext.getSystemService(UserManager.class)
+ );
+ mShadowCrossProfileApps = (ShadowCrossProfileApps) shadowOf(
+ mContext.getSystemService(CrossProfileApps.class)
+ );
+ mShadowPackageManager =
+ (ShadowApplicationPackageManager) shadowOf(mContext.getPackageManager());
+ }
@Test
public void getPreferenceSummary_appOpAllowed_returnsAllowed() {
- shadowOf(mUserManager).addUser(
+ mShadowUserManager.addUser(
PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
- shadowOf(mUserManager).addProfile(
+ mShadowUserManager.addProfile(
PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
"work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
PERSONAL_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
WORK_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
- shadowOf(mCrossProfileApps).addCrossProfilePackage(
+ mShadowCrossProfileApps.addCrossProfilePackage(
CROSS_PROFILE_PACKAGE_NAME);
ShadowPermissionChecker.setResult(
CROSS_PROFILE_PACKAGE_NAME,
@@ -78,16 +99,16 @@
@Test
public void getPreferenceSummary_appOpNotAllowed_returnsNotAllowed() {
- shadowOf(mUserManager).addUser(
+ mShadowUserManager.addUser(
PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
- shadowOf(mUserManager).addProfile(
+ mShadowUserManager.addProfile(
PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
"work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
PERSONAL_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
WORK_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
- shadowOf(mCrossProfileApps).addCrossProfilePackage(
+ mShadowCrossProfileApps.addCrossProfilePackage(
CROSS_PROFILE_PACKAGE_NAME);
ShadowPermissionChecker.setResult(
CROSS_PROFILE_PACKAGE_NAME,
@@ -101,9 +122,9 @@
@Test
public void getPreferenceSummary_noWorkProfile_returnsNotAllowed() {
- shadowOf(mUserManager).addUser(
+ mShadowUserManager.addUser(
PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
PERSONAL_PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
assertThat(InteractAcrossProfilesDetails.getPreferenceSummary(
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesPreferenceControllerTest.java
index 8479035..5c55c76 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesPreferenceControllerTest.java
@@ -21,20 +21,28 @@
import static org.robolectric.Shadows.shadowOf;
import android.content.Context;
+import android.content.pm.CrossProfileApps;
import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.core.BasePreferenceController;
+import com.android.settings.testutils.shadow.ShadowApplicationPackageManager;
+import com.android.settings.testutils.shadow.ShadowCrossProfileApps;
import com.google.common.collect.ImmutableList;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowApplicationPackageManager.class,
+ ShadowCrossProfileApps.class,
+})
public class InteractAcrossProfilesPreferenceControllerTest {
private static final String CROSS_PROFILE_PACKAGE_NAME = "crossProfilePackage";
@@ -44,16 +52,27 @@
private static final int PROFILE_ID = 0;
private final Context mContext = ApplicationProvider.getApplicationContext();
- private final PackageManager mPackageManager = mContext.getPackageManager();
+ private ShadowApplicationPackageManager mShadowPackageManager;
private final InteractAcrossProfilesDetailsPreferenceController mController =
new InteractAcrossProfilesDetailsPreferenceController(mContext, "test_key");
+ @Before
+ public void setUp() {
+ mShadowPackageManager = (ShadowApplicationPackageManager) shadowOf(
+ mContext.getPackageManager()
+ );
+ }
+
@Test
public void getAvailabilityStatus_requestedCrossProfilePermission_returnsAvailable() {
mController.setPackageName(CROSS_PROFILE_PACKAGE_NAME);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
PROFILE_ID, ImmutableList.of(CROSS_PROFILE_PACKAGE_NAME));
- PackageInfo packageInfo = shadowOf(mPackageManager).getInternalMutablePackageInfo(
+ ShadowCrossProfileApps shadowCrossProfileApps = (ShadowCrossProfileApps) shadowOf(
+ mContext.getSystemService(CrossProfileApps.class)
+ );
+ shadowCrossProfileApps.addCrossProfilePackage(CROSS_PROFILE_PACKAGE_NAME);
+ PackageInfo packageInfo = mShadowPackageManager.getInternalMutablePackageInfo(
CROSS_PROFILE_PACKAGE_NAME);
packageInfo.requestedPermissions = new String[]{
INTERACT_ACROSS_PROFILES_PERMISSION};
@@ -65,8 +84,12 @@
@Test
public void getAvailabilityStatus_notRequestedCrossProfilePermission_returnsDisabled() {
mController.setPackageName(NOT_CROSS_PROFILE_PACKAGE_NAME);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
PROFILE_ID, ImmutableList.of(NOT_CROSS_PROFILE_PACKAGE_NAME));
+ ShadowCrossProfileApps shadowCrossProfileApps = (ShadowCrossProfileApps) shadowOf(
+ mContext.getSystemService(CrossProfileApps.class)
+ );
+ shadowCrossProfileApps.addCrossProfilePackage(NOT_CROSS_PROFILE_PACKAGE_NAME);
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.DISABLED_FOR_USER);
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettingsTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettingsTest.java
index 029fb28..436ed92 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesSettingsTest.java
@@ -34,17 +34,28 @@
import androidx.test.core.app.ApplicationProvider;
+import com.android.settings.testutils.shadow.ShadowApplicationPackageManager;
+import com.android.settings.testutils.shadow.ShadowCrossProfileApps;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settingslib.testutils.shadow.ShadowPermissionChecker;
+
import com.google.common.collect.ImmutableList;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.shadows.ShadowPermissionChecker;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowProcess;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowUserManager.class,
+ ShadowApplicationPackageManager.class,
+ ShadowCrossProfileApps.class,
+})
public class InteractAcrossProfilesSettingsTest {
private static final int PERSONAL_PROFILE_ID = 0;
@@ -70,16 +81,33 @@
private final CrossProfileApps mCrossProfileApps =
mContext.getSystemService(CrossProfileApps.class);
+ private ShadowApplicationPackageManager mShadowPackageManager;
+ private ShadowUserManager mShadowUserManager;
+ private ShadowCrossProfileApps mShadowCrossProfileApps;
+
+ @Before
+ public void setUp() {
+ mShadowUserManager = (ShadowUserManager) shadowOf(
+ mContext.getSystemService(UserManager.class)
+ );
+ mShadowCrossProfileApps = (ShadowCrossProfileApps) shadowOf(
+ mContext.getSystemService(CrossProfileApps.class)
+ );
+ mShadowPackageManager = (ShadowApplicationPackageManager) shadowOf(
+ mContext.getPackageManager()
+ );
+ }
+
@Test
public void collectConfigurableApps_fromPersonal_returnsCombinedPackages() {
- shadowOf(mUserManager).addUser(
+ mShadowUserManager.addUser(
PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
- shadowOf(mUserManager).addProfile(
+ mShadowUserManager.addProfile(
PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
"work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
PERSONAL_PROFILE_ID, PERSONAL_PROFILE_INSTALLED_PACKAGES);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
WORK_PROFILE_ID, WORK_PROFILE_INSTALLED_PACKAGES);
installCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
installCrossProfilePackage(WORK_CROSS_PROFILE_PACKAGE);
@@ -97,15 +125,15 @@
@Test
public void collectConfigurableApps_fromWork_returnsCombinedPackages() {
- shadowOf(mUserManager).addUser(
+ mShadowUserManager.addUser(
PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
- shadowOf(mUserManager).addProfile(
+ mShadowUserManager.addProfile(
PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
"work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
ShadowProcess.setUid(WORK_UID);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
PERSONAL_PROFILE_ID, PERSONAL_PROFILE_INSTALLED_PACKAGES);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
WORK_PROFILE_ID, WORK_PROFILE_INSTALLED_PACKAGES);
installCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
installCrossProfilePackage(WORK_CROSS_PROFILE_PACKAGE);
@@ -123,9 +151,9 @@
@Test
public void collectConfigurableApps_onlyOneProfile_returnsEmpty() {
- shadowOf(mUserManager).addUser(
+ mShadowUserManager.addUser(
PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
PERSONAL_PROFILE_ID, PERSONAL_PROFILE_INSTALLED_PACKAGES);
installCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
@@ -138,18 +166,18 @@
@Test
public void getNumberOfEnabledApps_returnsNumberOfEnabledApps() {
- shadowOf(mUserManager).addUser(
+ mShadowUserManager.addUser(
PERSONAL_PROFILE_ID, "personal-profile"/* name */, 0/* flags */);
- shadowOf(mUserManager).addProfile(
+ mShadowUserManager.addProfile(
PERSONAL_PROFILE_ID, WORK_PROFILE_ID,
"work-profile"/* profileName */, UserInfo.FLAG_MANAGED_PROFILE);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
PERSONAL_PROFILE_ID, PERSONAL_PROFILE_INSTALLED_PACKAGES);
- shadowOf(mPackageManager).setInstalledPackagesForUserId(
+ mShadowPackageManager.setInstalledPackagesForUserId(
WORK_PROFILE_ID, WORK_PROFILE_INSTALLED_PACKAGES);
installCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
installCrossProfilePackage(WORK_CROSS_PROFILE_PACKAGE);
- shadowOf(mCrossProfileApps).addCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
+ mShadowCrossProfileApps.addCrossProfilePackage(PERSONAL_CROSS_PROFILE_PACKAGE);
ShadowPermissionChecker.setResult(
PERSONAL_CROSS_PROFILE_PACKAGE,
INTERACT_ACROSS_PROFILES_PERMISSION,
@@ -166,7 +194,7 @@
}
private void installCrossProfilePackage(String packageName) {
- PackageInfo personalPackageInfo = shadowOf(mPackageManager).getInternalMutablePackageInfo(
+ PackageInfo personalPackageInfo = mShadowPackageManager.getInternalMutablePackageInfo(
packageName);
personalPackageInfo.requestedPermissions = new String[]{
INTERACT_ACROSS_PROFILES_PERMISSION};
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/EnabledVrListenersControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/EnabledVrListenersControllerTest.java
index 91a78da..8c4df32 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/EnabledVrListenersControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/EnabledVrListenersControllerTest.java
@@ -34,6 +34,9 @@
import org.robolectric.shadows.ShadowActivityManager;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowActivityManager.class,
+})
public class EnabledVrListenersControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerScreenPreferenceControllerTest.java
index a312823..cf4e334 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerScreenPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/vrlistener/VrListenerScreenPreferenceControllerTest.java
@@ -23,6 +23,8 @@
import android.content.Context;
+import com.android.settings.testutils.shadow.ShadowActivityManager;
+
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
@@ -31,9 +33,11 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowActivityManager.class,
+})
public class VrListenerScreenPreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
index 8febbc6..bf112a6 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessControllerTest.java
@@ -27,6 +27,7 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowActivityManager;
import com.android.settings.testutils.shadow.ShadowNotificationManager;
import org.junit.Before;
@@ -36,9 +37,11 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowActivityManager.class,
+})
public class ZenAccessControllerTest {
private static final String TEST_PKG = "com.test.package";
diff --git a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java
index afda8d5..bdbd863 100644
--- a/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java
+++ b/tests/robotests/src/com/android/settings/applications/specialaccess/zenaccess/ZenAccessSettingObserverMixinTest.java
@@ -29,6 +29,7 @@
import androidx.lifecycle.LifecycleOwner;
+import com.android.settings.testutils.shadow.ShadowActivityManager;
import com.android.settingslib.core.lifecycle.Lifecycle;
import org.junit.Before;
@@ -38,10 +39,15 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+ ShadowActivityManager.class,
+})
public class ZenAccessSettingObserverMixinTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java
new file mode 100644
index 0000000..5f56fa7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.biometrics.face;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.hardware.face.FaceManager;
+
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.biometrics.face.FaceSettingsRemoveButtonPreferenceController.ConfirmRemoveDialog;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settingslib.widget.LayoutPreference;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class})
+public class FaceSettingsRemoveButtonPreferenceControllerTest {
+ @Rule
+ public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+ private static final String TEST_PREF_KEY = "baz";
+
+ @Mock
+ private FaceManager mFaceManager;
+ @Mock
+ private PackageManager mPackageManager;
+ private SettingsActivity mActivity;
+ private Context mContext;
+ private FaceSettingsRemoveButtonPreferenceController mController;
+ private LayoutPreference mPreference;
+
+ @Before
+ public void setUp() {
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true);
+ ShadowApplication.getInstance().setSystemService(Context.FACE_SERVICE, mFaceManager);
+
+ mPreference = new LayoutPreference(mContext, R.layout.face_remove_button);
+ mController = new FaceSettingsRemoveButtonPreferenceController(mContext, TEST_PREF_KEY);
+
+ mActivity = spy(Robolectric.buildActivity(SettingsActivity.class).create().get());
+ mController.setActivity(mActivity);
+ }
+
+ @Test
+ public void testRotationConfirmRemoveDialog() {
+ // mController calls onClick(), the dialog is created.
+ mController.updateState(mPreference);
+ assertThat(mController.mRemoving).isFalse();
+
+ mController.onClick(
+ mPreference.findViewById(R.id.security_settings_face_settings_remove_button));
+
+ ConfirmRemoveDialog removeDialog =
+ (ConfirmRemoveDialog) mActivity.getSupportFragmentManager()
+ .findFragmentByTag(ConfirmRemoveDialog.class.getName());
+ assertThat(removeDialog).isNotNull();
+ assertThat(mController.mRemoving).isTrue();
+
+
+ // Simulate rotation, a new controller mController2 is created and updateState() is called.
+ // Since the dialog hasn't been dismissed, so mController2.mRemoving should be true
+ FaceSettingsRemoveButtonPreferenceController controller2 =
+ new FaceSettingsRemoveButtonPreferenceController(mContext, TEST_PREF_KEY);
+ controller2.setActivity(mActivity);
+ assertThat(controller2.mRemoving).isFalse();
+ controller2.updateState(mPreference);
+ assertThat(controller2.mRemoving).isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
index 006c699..fa0cd2b 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
@@ -78,6 +78,7 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.android.controller.ActivityController;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
@@ -85,6 +86,7 @@
import java.util.concurrent.atomic.AtomicReference;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class FingerprintEnrollEnrollingTest {
private static final String ENROLL_PROGRESS_COLOR_LIGHT = "#699FF3";
private static final String ENROLL_PROGRESS_COLOR_DARK = "#7DA7F1";
@@ -610,9 +612,10 @@
mContext = spy(RuntimeEnvironment.application);
mActivity = spy(FingerprintEnrollEnrolling.class);
- when(mContext.getDisplay()).thenReturn(mMockDisplay);
+ doReturn(mMockDisplay).when(mContext).getDisplay();
when(mMockDisplay.getRotation()).thenReturn(Surface.ROTATION_0);
+ doReturn(mMockDisplay).when(mActivity).getDisplay();
doReturn(true).when(mActivity).shouldShowLottie();
doReturn(mFingerprintManager).when(mActivity).getSystemService(FingerprintManager.class);
doReturn(mVibrator).when(mActivity).getSystemService(Vibrator.class);
@@ -642,6 +645,7 @@
}
private void createActivity() {
+ System.setProperty("robolectric.createActivityContexts", "true");
final Bundle savedInstanceState = new Bundle();
savedInstanceState.putInt(KEY_STATE_PREVIOUS_ROTATION, Surface.ROTATION_90);
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensorTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensorTest.java
index f6b6b2b..d5500ad 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensorTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensorTest.java
@@ -45,8 +45,10 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowUtils.class, ShadowAlertDialogCompat.class})
public class SetupFingerprintEnrollFindSensorTest {
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsControllerTestBase.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsControllerTestBase.java
index 12ea9b2..8ba0b44 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsControllerTestBase.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsControllerTestBase.java
@@ -38,8 +38,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public abstract class BluetoothDetailsControllerTestBase {
protected Context mContext;
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java
index 8be8b18..fcfe84b 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDetailsHeaderControllerTest.java
@@ -70,8 +70,7 @@
when(mBluetoothManager.getCachedDeviceManager()).thenReturn(mCachedDeviceManager);
when(mCachedDeviceManager.getSubDeviceSummary(mCachedDevice)).thenReturn("abc");
mController =
- new BluetoothDetailsHeaderController(mContext, mFragment, mCachedDevice, mLifecycle,
- mBluetoothManager);
+ new BluetoothDetailsHeaderController(mContext, mFragment, mCachedDevice, mLifecycle);
mPreference = new LayoutPreference(
mContext, com.android.settingslib.widget.R.layout.settings_entity_header);
mPreference.setKey(mController.getPreferenceKey());
@@ -104,7 +103,7 @@
verify(mHeaderController).setIconContentDescription(any(String.class));
verify(mHeaderController).setSummary(any(String.class));
verify(mHeaderController).setSecondSummary(any(String.class));
- verify(mHeaderController).done(mActivity, true);
+ verify(mHeaderController).done(true);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
index 939bd10..89e682c 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
@@ -62,10 +62,12 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.fakes.RoboMenu;
-import org.robolectric.shadows.ShadowUserManager;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUserManager.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowUserManager.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class BluetoothDeviceDetailsFragmentTest {
private static final String TEST_ADDRESS = "55:66:77:88:99:AA";
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBaseTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBaseTest.java
index 7c598e0..40f7895 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBaseTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDevicePairingDetailBaseTest.java
@@ -54,7 +54,10 @@
/** Tests for {@link BluetoothDevicePairingDetailBase}. */
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
+@Config(shadows = {
+ ShadowBluetoothAdapter.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class BluetoothDevicePairingDetailBaseTest {
@Rule
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java
index f93c61e..6fd1d98 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceRenamePreferenceControllerTest.java
@@ -47,7 +47,10 @@
import org.robolectric.shadow.api.Shadow;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
+@Config(shadows = {
+ ShadowBluetoothAdapter.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class BluetoothDeviceRenamePreferenceControllerTest {
private static final String DEVICE_NAME = "Nightshade";
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragmentTest.java
index b029f92..046a90c 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothFindBroadcastsFragmentTest.java
@@ -50,8 +50,12 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class BluetoothFindBroadcastsFragmentTest {
private static final String TEST_ADDRESS = "55:66:77:88:99:AA";
diff --git a/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.kt b/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.kt
index 5a21aff..0f1ad4b 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.kt
+++ b/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.kt
@@ -56,7 +56,10 @@
import org.mockito.Mockito.`when` as whenever
@RunWith(RobolectricTestRunner::class)
-@Config(shadows = [ShadowBluetoothAdapter::class])
+@Config(shadows = [
+ ShadowBluetoothAdapter::class,
+ com.android.settings.testutils.shadow.ShadowFragment::class,
+])
class DeviceListPreferenceFragmentTest {
@get:Rule
val mockito: MockitoRule = MockitoJUnit.rule()
diff --git a/tests/robotests/src/com/android/settings/bugreporthandler/BugReportHandlerPickerTest.java b/tests/robotests/src/com/android/settings/bugreporthandler/BugReportHandlerPickerTest.java
index a3fdee6..48318df 100644
--- a/tests/robotests/src/com/android/settings/bugreporthandler/BugReportHandlerPickerTest.java
+++ b/tests/robotests/src/com/android/settings/bugreporthandler/BugReportHandlerPickerTest.java
@@ -50,12 +50,16 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;
import java.util.Collections;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class BugReportHandlerPickerTest {
private static final String PACKAGE_NAME = "com.example.test";
private static final int USER_ID = 0;
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupControllerTest.java
index 0c3443e..17ab557 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/AvailableMediaDeviceGroupControllerTest.java
@@ -26,6 +26,7 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
@@ -69,8 +70,12 @@
/** Tests for {@link AvailableMediaDeviceGroupController}. */
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAudioManager.class, ShadowBluetoothAdapter.class,
- ShadowBluetoothUtils.class})
+@Config(shadows = {
+ ShadowAudioManager.class,
+ ShadowBluetoothAdapter.class,
+ ShadowBluetoothUtils.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AvailableMediaDeviceGroupControllerTest {
private static final String TEST_DEVICE_ADDRESS = "00:A1:A1:A1:A1:A1";
@@ -257,7 +262,7 @@
mAvailableMediaDeviceGroupController.onActiveDeviceChanged(mCachedBluetoothDevice,
BluetoothProfile.HEARING_AID);
-
+ shadowMainLooper().idle();
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog.isShowing()).isTrue();
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiverTest.java
index ccaefb2..03279ee 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiverTest.java
@@ -95,4 +95,32 @@
verifyNoMoreInteractions(mListener);
}
+
+ @Test
+ public void onReceive_usbDeviceStateStylus_invokeCallback() {
+ when(mFeatureFactory.mStylusFeatureProvider.isUsbFirmwareUpdateEnabled(any()))
+ .thenReturn(true);
+ final UsbDevice usbDevice = mock(UsbDevice.class);
+ final Intent intent = new Intent();
+ intent.setAction(UsbManager.ACTION_USB_STATE);
+ intent.putExtra(UsbManager.EXTRA_DEVICE, usbDevice);
+
+ mReceiver.onReceive(mContext, intent);
+
+ verify(mListener).onUsbStylusConnectionChanged(usbDevice, false);
+ }
+
+ @Test
+ public void onReceive_usbDeviceStateNotStylus_doesNotInvokeCallback() {
+ when(mFeatureFactory.mStylusFeatureProvider.isUsbFirmwareUpdateEnabled(any()))
+ .thenReturn(false);
+ final UsbDevice usbDevice = mock(UsbDevice.class);
+ final Intent intent = new Intent();
+ intent.setAction(UsbManager.ACTION_USB_STATE);
+ intent.putExtra(UsbManager.EXTRA_DEVICE, usbDevice);
+
+ mReceiver.onReceive(mContext, intent);
+
+ verifyNoMoreInteractions(mListener);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleControllerTest.java
index 8c8431d..9e24387 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleControllerTest.java
@@ -49,8 +49,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class UsbDetailsDataRoleControllerTest {
private UsbDetailsDataRoleController mDetailsDataRoleController;
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
index 37efbd6..42c994a 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java
@@ -58,6 +58,9 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class UsbDetailsFunctionsControllerTest {
private UsbDetailsFunctionsController mDetailsFunctionsController;
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
index 2b0ac7f..43bf657 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
@@ -52,7 +52,10 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowEntityHeaderController.class)
+@Config(shadows = {
+ ShadowEntityHeaderController.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class UsbDetailsHeaderControllerTest {
private UsbDetailsHeaderController mDetailsHeaderController;
@@ -111,6 +114,6 @@
DrawableTestHelper.assertDrawableResId(t, R.drawable.ic_usb);
return true;
}));
- verify(mHeaderController).done(mActivity, true);
+ verify(mHeaderController).done(true);
}
}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleControllerTest.java
index aa62741..e793336 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleControllerTest.java
@@ -52,8 +52,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class UsbDetailsPowerRoleControllerTest {
private UsbDetailsPowerRoleController mDetailsPowerRoleController;
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpControllerTest.java
index 477b592..7cf3ecc 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsTranscodeMtpControllerTest.java
@@ -45,6 +45,9 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class UsbDetailsTranscodeMtpControllerTest {
private static final String TRANSCODE_MTP_SYS_PROP_KEY = "sys.fuse.transcode_mtp";
diff --git a/tests/robotests/src/com/android/settings/core/CategoryMixinTest.java b/tests/robotests/src/com/android/settings/core/CategoryMixinTest.java
index a0ae9f7..d8f4a90 100644
--- a/tests/robotests/src/com/android/settings/core/CategoryMixinTest.java
+++ b/tests/robotests/src/com/android/settings/core/CategoryMixinTest.java
@@ -32,7 +32,6 @@
import com.android.settings.core.CategoryMixin.CategoryListener;
import com.android.settings.utils.ActivityControllerWrapper;
-import com.android.settingslib.R;
import org.junit.Before;
import org.junit.Test;
@@ -89,7 +88,7 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setTheme(R.style.Theme_AppCompat);
+ setTheme(androidx.appcompat.R.style.Theme_AppCompat);
mCategoryMixin = new CategoryMixin(this);
getLifecycle().addObserver(mCategoryMixin);
}
diff --git a/tests/robotests/src/com/android/settings/core/InstrumentedPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/core/InstrumentedPreferenceFragmentTest.java
index 763cf15..dc173e5 100644
--- a/tests/robotests/src/com/android/settings/core/InstrumentedPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/core/InstrumentedPreferenceFragmentTest.java
@@ -38,9 +38,13 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class InstrumentedPreferenceFragmentTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
index b68bcec..bfc8ea6 100644
--- a/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
+++ b/tests/robotests/src/com/android/settings/core/SubSettingLauncherTest.java
@@ -45,8 +45,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class SubSettingLauncherTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
index 1e19325..b595d06 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/ProfileSelectFragmentTest.java
@@ -50,7 +50,10 @@
import java.util.Set;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class})
+@Config(shadows = {
+ ShadowUserManager.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ProfileSelectFragmentTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/dashboard/profileselector/UserAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/profileselector/UserAdapterTest.java
index aa7e30a..2fb5e03 100644
--- a/tests/robotests/src/com/android/settings/dashboard/profileselector/UserAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/profileselector/UserAdapterTest.java
@@ -32,7 +32,7 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.internal.widget.RecyclerView;
-import com.android.settingslib.R;
+import com.android.settings.R;
import com.google.android.collect.Lists;
diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java
index ad41638..0b182b8 100644
--- a/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsagePreferenceTest.java
@@ -91,7 +91,7 @@
mPreference = new AppDataUsagePreference(RuntimeEnvironment.application, mAppItem,
50 /* percent */, mUidDetailProvider);
final View view = LayoutInflater.from(RuntimeEnvironment.application).inflate(
- com.android.settingslib.R.layout.preference_app, null);
+ com.android.settingslib.widget.R.layout.preference_app, null);
final PreferenceViewHolder preferenceViewHolder =
PreferenceViewHolder.createInstanceForTests(view);
final ProgressBar progressBar = (ProgressBar) preferenceViewHolder.findViewById(
diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
index 9f95712..fa61a33 100644
--- a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
@@ -100,7 +100,6 @@
MockitoAnnotations.initMocks(this);
ShadowEntityHeaderController.setUseMock(mHeaderController);
- when(mHeaderController.setRecyclerView(any(), any())).thenReturn(mHeaderController);
when(mHeaderController.setUid(anyInt())).thenReturn(mHeaderController);
}
diff --git a/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java
index cef5928..6067324 100644
--- a/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java
@@ -59,6 +59,9 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class BillingCycleSettingsTest {
private static final int LIMIT_BYTES = 123;
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
index 71d5d7e..3f41c3f 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
@@ -40,16 +40,11 @@
import android.util.RecurrenceRule;
import androidx.fragment.app.FragmentActivity;
-import androidx.preference.PreferenceFragmentCompat;
-import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.NetworkPolicyEditor;
-import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.net.DataUsageController;
import org.junit.After;
@@ -88,20 +83,14 @@
@Mock
private DataUsageSummaryPreference mSummaryPreference;
@Mock
- private NetworkPolicyEditor mPolicyEditor;
- @Mock
private NetworkTemplate mNetworkTemplate;
@Mock
private SubscriptionInfo mSubscriptionInfo;
@Mock
private SubscriptionPlan mSubscriptionPlan;
- @Mock
- private Lifecycle mLifecycle;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private EntityHeaderController mHeaderController;
@Mock
- private PreferenceFragmentCompat mPreferenceFragment;
- @Mock
private TelephonyManager mTelephonyManager;
@Mock
private PackageManager mPm;
@@ -146,9 +135,7 @@
mDataUsageController,
mDataInfoController,
mNetworkTemplate,
- mPolicyEditor,
- R.string.cell_data_template,
- mActivity, null, null, null, mDefaultSubscriptionId));
+ mActivity, mDefaultSubscriptionId));
doReturn(null).when(mController).getSubscriptionInfo(
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
doReturn(null).when(mController).getSubscriptionPlans(
@@ -366,27 +353,6 @@
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
- @Test
- public void testMobileData_entityHeaderSet() {
- final RecyclerView recyclerView = new RecyclerView(mActivity);
-
- mController = spy(new DataUsageSummaryPreferenceController(
- mDataUsageController,
- mDataInfoController,
- mNetworkTemplate,
- mPolicyEditor,
- R.string.cell_data_template,
- mActivity, mLifecycle, mHeaderController, mPreferenceFragment,
- mDefaultSubscriptionId));
-
- when(mPreferenceFragment.getListView()).thenReturn(recyclerView);
-
- mController.onStart();
-
- verify(mHeaderController)
- .setRecyclerView(any(RecyclerView.class), any(Lifecycle.class));
- }
-
private DataUsageController.DataUsageInfo createTestDataUsageInfo(long now) {
DataUsageController.DataUsageInfo info = new DataUsageController.DataUsageInfo();
info.carrier = CARRIER_NAME;
diff --git a/tests/robotests/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceControllerTest.java
index 711f6d7..a8ac29f 100644
--- a/tests/robotests/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/WifiDataUsageSummaryPreferenceControllerTest.java
@@ -24,13 +24,11 @@
import static org.mockito.Mockito.spy;
import android.content.Context;
-import android.net.NetworkPolicyManager;
import android.telephony.TelephonyManager;
import androidx.fragment.app.FragmentActivity;
import androidx.test.core.app.ApplicationProvider;
-import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.net.DataUsageController;
import org.junit.Before;
@@ -56,12 +54,8 @@
@Mock
FragmentActivity mActivity;
@Mock
- Lifecycle mLifecycle;
- @Mock
TelephonyManager mTelephonyManager;
@Mock
- NetworkPolicyManager mNetworkPolicyManager;
- @Mock
DataUsageSummaryPreference mSummaryPreference;
@Mock
DataUsageController mDataUsageController;
@@ -75,13 +69,10 @@
public void setUp() {
doReturn(mContext.getResources()).when(mActivity).getResources();
doReturn(mTelephonyManager).when(mActivity).getSystemService(TelephonyManager.class);
- doReturn(mNetworkPolicyManager).when(mActivity)
- .getSystemService(NetworkPolicyManager.class);
doNothing().when(mSummaryPreference).setWifiMode(anyBoolean(), anyString(), anyBoolean());
doReturn(mDataUsageInfo).when(mDataUsageController).getDataUsageInfo(any());
- mController = spy(new WifiDataUsageSummaryPreferenceController(mActivity, mLifecycle, null,
- mAllNetworkKeys));
+ mController = spy(new WifiDataUsageSummaryPreferenceController(mActivity, mAllNetworkKeys));
doReturn(mDataUsageController).when(mController).createDataUsageController(any());
}
diff --git a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
index 76ab289..ce9c701 100644
--- a/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/DatePreferenceControllerTest.java
@@ -20,6 +20,7 @@
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -43,11 +44,15 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import java.util.Calendar;
import java.util.GregorianCalendar;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class DatePreferenceControllerTest {
@Mock
@@ -65,6 +70,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application);
when(mContext.getSystemService(TimeDetector.class)).thenReturn(mTimeDetector);
when(mContext.getSystemService(TimeManager.class)).thenReturn(mTimeManager);
mPreference = new RestrictedPreference(RuntimeEnvironment.application);
diff --git a/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
index baef01c..cd89c0c 100644
--- a/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/LocationTimeZoneDetectionPreferenceControllerTest.java
@@ -55,8 +55,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class LocationTimeZoneDetectionPreferenceControllerTest {
@Mock
private TimeManager mTimeManager;
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
index 270b874..eb56fd1 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
@@ -36,8 +36,10 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class TimeChangeListenerMixinTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
index 26b529d..460f6f9 100644
--- a/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/DesktopModePreferenceControllerTest.java
@@ -45,8 +45,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class DesktopModePreferenceControllerTest {
private static final String ENG_BUILD_TYPE = "eng";
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
index 7db7141..fca338d 100644
--- a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDashboardFragmentTest.java
@@ -35,6 +35,7 @@
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settingslib.development.AbstractEnableAdbPreferenceController;
import com.android.settingslib.development.DevelopmentSettingsEnabler;
@@ -51,14 +52,17 @@
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowUserManager;
import org.robolectric.shadows.androidx.fragment.FragmentController;
import org.robolectric.util.ReflectionHelpers;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class, ShadowAlertDialogCompat.class})
+@Config(shadows = {
+ ShadowAlertDialogCompat.class,
+ ShadowUserManager.class,
+ ShadowUserManager.class,
+})
public class DevelopmentSettingsDashboardFragmentTest {
private Switch mSwitch;
diff --git a/tests/robotests/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceControllerTest.java
index 8e62521..97acdf6 100644
--- a/tests/robotests/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/EnableVerboseVendorLoggingPreferenceControllerTest.java
@@ -36,10 +36,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
import java.lang.reflect.Field;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public final class EnableVerboseVendorLoggingPreferenceControllerTest {
@Mock
private SwitchPreference mPreference;
diff --git a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
index 695a291..bd005b3 100644
--- a/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/FreeformWindowsPreferenceControllerTest.java
@@ -44,8 +44,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class FreeformWindowsPreferenceControllerTest {
private static final String ENG_BUILD_TYPE = "eng";
diff --git a/tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java
index c762349..4f89f02 100644
--- a/tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/OemUnlockPreferenceControllerTest.java
@@ -49,8 +49,12 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class OemUnlockPreferenceControllerTest {
private static final String OEM_UNLOCK_SUPPORTED_KEY = "ro.oem_unlock_supported";
diff --git a/tests/robotests/src/com/android/settings/development/OverlayCategoryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/OverlayCategoryPreferenceControllerTest.java
index b2e8013..12f70a4 100644
--- a/tests/robotests/src/com/android/settings/development/OverlayCategoryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/OverlayCategoryPreferenceControllerTest.java
@@ -31,6 +31,9 @@
import android.content.pm.PackageManager;
import android.os.RemoteException;
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceScreen;
+
import com.android.settings.R;
import org.junit.Before;
@@ -40,16 +43,15 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.shadows.ShadowToast;
import java.util.ArrayList;
import java.util.Arrays;
-import androidx.preference.ListPreference;
-import androidx.preference.PreferenceScreen;
-
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class OverlayCategoryPreferenceControllerTest {
private static final OverlayInfo ONE_DISABLED = createFakeOverlay("overlay.one", false, 1);
diff --git a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerTest.java b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerTest.java
index 9210b87..a338de3 100644
--- a/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/graphicsdriver/GraphicsDriverEnableAngleAsSystemDriverControllerTest.java
@@ -47,9 +47,13 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowSystemProperties;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class GraphicsDriverEnableAngleAsSystemDriverControllerTest {
private static final String TAG = "GraphicsDriverEnableAngleAsSystemDriverControllerTest";
@Mock private PreferenceScreen mScreen;
diff --git a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
index 9ab67c2..c7df289 100644
--- a/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
+++ b/tests/robotests/src/com/android/settings/development/qstile/DevelopmentTilesTest.java
@@ -27,6 +27,7 @@
import android.os.UserManager;
import android.service.quicksettings.Tile;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import org.junit.Before;
@@ -37,10 +38,13 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowUserManager;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowUserManager.class,
+})
public class DevelopmentTilesTest {
@Mock
@@ -54,7 +58,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mService = spy(Robolectric.setupService(DevelopmentTiles.ShowLayout.class));
- final ShadowUserManager um = Shadows.shadowOf(
+ final ShadowUserManager um = Shadow.extract(
RuntimeEnvironment.application.getSystemService(UserManager.class));
um.setIsAdminUser(true);
doReturn(mTile).when(mService).getQsTile();
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java
index 9cb1d56..4704475 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java
@@ -31,9 +31,11 @@
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = ShadowStorageManager.class)
public class PrivateVolumeUnmountTest {
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
index 35e044c..9129906 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/MainlineModuleVersionPreferenceControllerTest.java
@@ -184,7 +184,7 @@
final MainlineModuleVersionPreferenceController controller =
new MainlineModuleVersionPreferenceController(mContext, "key");
- assertThat(controller.getSummary()).isEqualTo("May 01, 2019");
+ assertThat(controller.getSummary()).isEqualTo("May 1, 2019");
}
@Test
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java
index 6699b34..96324fa 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceControllerTest.java
@@ -54,8 +54,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ImeiInfoPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
index e697786..5db0243 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
@@ -67,6 +67,9 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class StorageItemPreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java
index 5611e93..2bcf060 100644
--- a/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java
@@ -50,6 +50,9 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+})
public class AutoRotatePreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
index 673771d..1076d15 100644
--- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
@@ -21,6 +21,7 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -85,7 +86,7 @@
ShadowApplication.getInstance().setSystemService(POWER_SERVICE,
mPowerManager);
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
- when(mContext.getDisplay()).thenReturn(mDisplay);
+ doReturn(mDisplay).when(mContext).getDisplay();
mController = spy(new BrightnessLevelPreferenceController(mContext, null));
}
diff --git a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
index 009ac53..c33bd21 100644
--- a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
@@ -57,10 +57,14 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ScreenTimeoutSettingsTest {
private static final String[] TIMEOUT_ENTRIES = new String[]{"15 secs", "30 secs"};
private static final String[] TIMEOUT_VALUES = new String[]{"15000", "30000"};
diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java
index 4596364..63395d1 100644
--- a/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java
@@ -42,6 +42,7 @@
import com.android.settings.testutils.shadow.ShadowDeviceStateRotationLockSettingsManager;
import com.android.settings.testutils.shadow.ShadowRotationPolicy;
import com.android.settings.testutils.shadow.ShadowSensorPrivacyManager;
+import com.android.settings.testutils.shadow.ShadowSystemSettings;
import com.android.settingslib.devicestate.DeviceStateRotationLockSettingsManager;
import org.junit.Before;
@@ -56,7 +57,7 @@
import org.robolectric.shadow.api.Shadow;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowSensorPrivacyManager.class)
+@Config(shadows = {ShadowSensorPrivacyManager.class, ShadowSystemSettings.class})
public class SmartAutoRotateControllerTest {
private static final String PACKAGE_NAME = "package_name";
diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
index 800dc5e..01bb338 100644
--- a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
@@ -63,6 +63,7 @@
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
ShadowDeviceStateRotationLockSettingsManager.class,
ShadowRotationPolicy.class
})
diff --git a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java
index f41352b..56946c3 100644
--- a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java
@@ -45,10 +45,14 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import java.util.Locale;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowDateFormat.class,
+})
public class DarkModeActivationPreferenceControllerTest {
private DarkModeActivationPreferenceController mController;
private String mPreferenceKey = "key";
diff --git a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeCustomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeCustomPreferenceControllerTest.java
index 8ac6257..710e640 100644
--- a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeCustomPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeCustomPreferenceControllerTest.java
@@ -40,8 +40,12 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowDateFormat.class,
+})
public class DarkModeCustomPreferenceControllerTest {
private DarkModeCustomPreferenceController mController;
@Mock
diff --git a/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java
index b1e2c0c..1a16d04 100644
--- a/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsListPreferenceControllerTest.java
@@ -53,12 +53,14 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import java.util.Arrays;
import java.util.Collections;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class EnterpriseSetDefaultAppsListPreferenceControllerTest {
private static final int USER_ID = 0;
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index 5e9fb73..5827498 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -30,6 +30,7 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
import android.app.AppOpsManager;
import android.app.backup.BackupManager;
@@ -46,7 +47,6 @@
import androidx.fragment.app.FragmentActivity;
import androidx.loader.app.LoaderManager;
-import androidx.recyclerview.widget.RecyclerView;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
@@ -59,7 +59,6 @@
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
-import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.widget.FooterPreference;
import com.android.settingslib.widget.LayoutPreference;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
@@ -78,10 +77,12 @@
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
-import java.util.concurrent.TimeUnit;
-
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowEntityHeaderController.class, ShadowActivityManager.class})
+@Config(shadows = {
+ ShadowEntityHeaderController.class,
+ ShadowActivityManager.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class AdvancedPowerUsageDetailTest {
private static final String APP_LABEL = "app label";
private static final String SUMMARY = "summary";
@@ -156,8 +157,6 @@
ShadowEntityHeaderController.setUseMock(mEntityHeaderController);
doReturn(mEntityHeaderController).when(mEntityHeaderController)
- .setRecyclerView(nullable(RecyclerView.class), nullable(Lifecycle.class));
- doReturn(mEntityHeaderController).when(mEntityHeaderController)
.setButtonActions(anyInt(), anyInt());
doReturn(mEntityHeaderController).when(mEntityHeaderController)
.setIcon(nullable(Drawable.class));
@@ -768,7 +767,7 @@
mFragment.onRadioButtonClicked(mOptimizePreference);
mFragment.onPause();
- TimeUnit.SECONDS.sleep(100);
+ shadowMainLooper().idle();
verify(mMetricsFeatureProvider)
.action(
SettingsEnums.OPEN_APP_BATTERY_USAGE,
@@ -792,7 +791,7 @@
mFragment.onRadioButtonClicked(mOptimizePreference);
mFragment.onPause();
- TimeUnit.SECONDS.sleep(100);
+ shadowMainLooper().idle();
verifyNoInteractions(mMetricsFeatureProvider);
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
index 4b097bb..04d5dbf 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
@@ -23,7 +23,6 @@
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
-import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.hardware.usb.UsbManager;
@@ -34,8 +33,6 @@
import android.os.PowerManager;
import android.text.TextUtils;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
@@ -47,7 +44,6 @@
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.widget.UsageProgressBarPreference;
import org.junit.After;
@@ -73,10 +69,6 @@
private static final String BATTERY_STATUS = "Charging";
@Mock
- private Activity mActivity;
- @Mock
- private PreferenceFragmentCompat mPreferenceFragment;
- @Mock
private PreferenceScreen mPreferenceScreen;
@Mock
private BatteryInfo mBatteryInfo;
@@ -97,15 +89,11 @@
private Context mContext;
private ShadowPowerManager mShadowPowerManager;
private Intent mBatteryIntent;
- private LifecycleOwner mLifecycleOwner;
- private Lifecycle mLifecycle;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mLifecycleOwner = () -> mLifecycle;
- mLifecycle = new Lifecycle(mLifecycleOwner);
mContext = spy(RuntimeEnvironment.application);
when(mContext.getSystemService(UsbManager.class)).thenReturn(mUsbManager);
ShadowEntityHeaderController.setUseMock(mEntityHeaderController);
@@ -124,10 +112,6 @@
mShadowPowerManager = Shadows.shadowOf(mContext.getSystemService(PowerManager.class));
mController = spy(new BatteryHeaderPreferenceController(mContext, PREF_KEY));
- mLifecycle.addObserver(mController);
- mController.setActivity(mActivity);
- mController.setFragment(mPreferenceFragment);
- mController.setLifecycle(mLifecycle);
mController.mBatteryUsageProgressBarPref = mBatteryUsageProgressBarPref;
mController.mBatteryStatusFeatureProvider = mBatteryStatusFeatureProvider;
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java
index 7cb57a3..c858902 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettingsTest.java
@@ -31,8 +31,12 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class BatterySaverSettingsTest {
BatterySaverSettings mFragment;
@Mock
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoaderTest.java
deleted file mode 100644
index 4b250a3..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoaderTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batteryusage;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.UserManager;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public final class AppUsageDataLoaderTest {
- private Context mContext;
- @Mock
- private ContentResolver mMockContentResolver;
- @Mock
- private UserManager mUserManager;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mContext).when(mContext).getApplicationContext();
- doReturn(mMockContentResolver).when(mContext).getContentResolver();
- doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
- doReturn(new Intent()).when(mContext).registerReceiver(any(), any());
- }
-
- @Test
- public void loadAppUsageData_withData_insertFakeDataIntoProvider() {
- final List<AppUsageEvent> AppUsageEventList = new ArrayList<>();
- final AppUsageEvent appUsageEvent = AppUsageEvent.newBuilder().setUid(0).build();
- AppUsageEventList.add(appUsageEvent);
- AppUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
- AppUsageDataLoader.sFakeUsageEventsListSupplier = () -> AppUsageEventList;
-
- AppUsageDataLoader.loadAppUsageData(mContext);
-
- verify(mMockContentResolver).bulkInsert(any(), any());
- verify(mMockContentResolver).notifyChange(any(), any());
- }
-
- @Test
- public void loadAppUsageData_nullAppUsageEvents_notInsertDataIntoProvider() {
- AppUsageDataLoader.sFakeAppUsageEventsSupplier = () -> null;
-
- AppUsageDataLoader.loadAppUsageData(mContext);
-
- verifyNoMoreInteractions(mMockContentResolver);
- }
-
- @Test
- public void loadAppUsageData_nullUsageEventsList_notInsertDataIntoProvider() {
- AppUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
- AppUsageDataLoader.sFakeUsageEventsListSupplier = () -> null;
-
- AppUsageDataLoader.loadAppUsageData(mContext);
-
- verifyNoMoreInteractions(mMockContentResolver);
- }
-
- @Test
- public void loadAppUsageData_emptyUsageEventsList_notInsertDataIntoProvider() {
- AppUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
- AppUsageDataLoader.sFakeUsageEventsListSupplier = () -> new ArrayList<>();
-
- AppUsageDataLoader.loadAppUsageData(mContext);
-
- verifyNoMoreInteractions(mMockContentResolver);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
index e1c193c..786a529 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
@@ -16,6 +16,8 @@
package com.android.settings.fuelgauge.batteryusage;
+import static com.android.settings.fuelgauge.batteryusage.BatteryChartViewModel.SELECTED_INDEX_ALL;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyFloat;
@@ -30,7 +32,6 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
@@ -39,11 +40,13 @@
import android.os.LocaleList;
import android.os.UserManager;
import android.text.format.DateUtils;
+import android.util.ArrayMap;
import android.view.View;
import android.view.ViewPropertyAnimator;
import android.widget.LinearLayout;
import com.android.settings.SettingsActivity;
+import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
@@ -54,7 +57,6 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
-import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -112,6 +114,7 @@
mBatteryChartPreferenceController.mPrefContext = mContext;
mBatteryChartPreferenceController.mDailyChartView = mDailyChartView;
mBatteryChartPreferenceController.mHourlyChartView = mHourlyChartView;
+ BatteryDiffEntry.clearCache();
// Adds fake testing data.
BatteryDiffEntry.sResourceCache.put(
"fakeBatteryDiffEntryKey",
@@ -144,7 +147,7 @@
reset(mHourlyChartView);
setupHourlyChartViewAnimationMock();
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
verify(mDailyChartView, atLeastOnce()).setVisibility(View.GONE);
// Ignore fast refresh ui from the data processor callback.
@@ -176,16 +179,18 @@
BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS,
mBatteryChartPreferenceController.mDailyChartLabelTextGenerator);
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(60));
+ mBatteryChartPreferenceController.onBatteryUsageMapUpdate(getEmptyBatteryUsageMap());
verify(mDailyChartView, atLeastOnce()).setVisibility(View.VISIBLE);
verify(mViewPropertyAnimator, atLeastOnce()).alpha(0f);
- verify(mDailyChartView).setViewModel(expectedDailyViewModel);
+ verify(mDailyChartView, atLeastOnce()).setViewModel(expectedDailyViewModel);
reset(mDailyChartView);
reset(mHourlyChartView);
setupHourlyChartViewAnimationMock();
doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams();
+ doReturn(View.GONE).when(mHourlyChartView).getVisibility();
mBatteryChartPreferenceController.mDailyChartIndex = 0;
mBatteryChartPreferenceController.refreshUi();
verify(mDailyChartView).setVisibility(View.VISIBLE);
@@ -245,8 +250,7 @@
setupHourlyChartViewAnimationMock();
doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams();
mBatteryChartPreferenceController.mDailyChartIndex = 2;
- mBatteryChartPreferenceController.mHourlyChartIndex =
- BatteryChartViewModel.SELECTED_INDEX_ALL;
+ mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
mBatteryChartPreferenceController.refreshUi();
verify(mDailyChartView).setVisibility(View.VISIBLE);
verify(mViewPropertyAnimator, atLeastOnce()).alpha(1f);
@@ -272,13 +276,15 @@
@Test
public void refreshUi_normalCase_returnTrue() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
+ mBatteryChartPreferenceController.onBatteryUsageMapUpdate(getEmptyBatteryUsageMap());
assertThat(mBatteryChartPreferenceController.refreshUi()).isTrue();
}
@Test
public void refreshUi_batteryIndexedMapIsNull_returnTrue() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(null);
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(null);
+ mBatteryChartPreferenceController.onBatteryUsageMapUpdate(getEmptyBatteryUsageMap());
assertThat(mBatteryChartPreferenceController.refreshUi()).isTrue();
}
@@ -296,38 +302,34 @@
@Test
public void selectedSlotText_selectAllDaysAllHours_returnNull() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60));
- mBatteryChartPreferenceController.mDailyChartIndex =
- BatteryChartViewModel.SELECTED_INDEX_ALL;
- mBatteryChartPreferenceController.mHourlyChartIndex =
- BatteryChartViewModel.SELECTED_INDEX_ALL;
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(60));
+ mBatteryChartPreferenceController.mDailyChartIndex = SELECTED_INDEX_ALL;
+ mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(null);
}
@Test
public void selectedSlotText_onlyOneDayDataSelectAllHours_returnNull() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
mBatteryChartPreferenceController.mDailyChartIndex = 0;
- mBatteryChartPreferenceController.mHourlyChartIndex =
- BatteryChartViewModel.SELECTED_INDEX_ALL;
+ mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(null);
}
@Test
public void selectedSlotText_selectADayAllHours_onlyDayText() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(60));
mBatteryChartPreferenceController.mDailyChartIndex = 1;
- mBatteryChartPreferenceController.mHourlyChartIndex =
- BatteryChartViewModel.SELECTED_INDEX_ALL;
+ mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo("Sunday");
}
@Test
public void selectedSlotText_onlyOneDayDataSelectAnHour_onlyHourText() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
mBatteryChartPreferenceController.mDailyChartIndex = 0;
mBatteryChartPreferenceController.mHourlyChartIndex = 2;
@@ -337,7 +339,7 @@
@Test
public void selectedSlotText_SelectADayAnHour_dayAndHourText() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(60));
mBatteryChartPreferenceController.mDailyChartIndex = 1;
mBatteryChartPreferenceController.mHourlyChartIndex = 8;
@@ -347,7 +349,7 @@
@Test
public void selectedSlotText_selectFirstSlot_withMinuteText() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
mBatteryChartPreferenceController.mDailyChartIndex = 0;
mBatteryChartPreferenceController.mHourlyChartIndex = 0;
@@ -357,7 +359,7 @@
@Test
public void selectedSlotText_selectLastSlot_withNowText() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
mBatteryChartPreferenceController.mDailyChartIndex = 0;
mBatteryChartPreferenceController.mHourlyChartIndex = 3;
@@ -367,7 +369,7 @@
@Test
public void selectedSlotText_selectOnlySlot_withMinuteAndNowText() {
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(1));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(1));
mBatteryChartPreferenceController.mDailyChartIndex = 0;
mBatteryChartPreferenceController.mHourlyChartIndex = 0;
@@ -388,7 +390,7 @@
mBatteryChartPreferenceController.mHourlyChartIndex = -1;
mBatteryChartPreferenceController.onCreate(bundle);
- mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(25));
+ mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(25));
assertThat(mBatteryChartPreferenceController.mDailyChartIndex)
.isEqualTo(expectedDailyIndex);
@@ -398,9 +400,7 @@
@Test
public void getTotalHours_getExpectedResult() {
- Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = createBatteryHistoryMap(60);
- BatteryLevelData batteryLevelData =
- DataProcessManager.getBatteryLevelData(mContext, null, batteryHistoryMap, null);
+ BatteryLevelData batteryLevelData = createBatteryLevelData(60);
final int totalHour = BatteryChartPreferenceController.getTotalHours(batteryLevelData);
@@ -408,42 +408,82 @@
assertThat(totalHour).isEqualTo(59);
}
+ @Test
+ public void getHighestScoreAnomalyEvent_withEmptyOrNullList_getNull() {
+ assertThat(mBatteryChartPreferenceController.getHighestScoreAnomalyEvent(null))
+ .isEqualTo(null);
+ assertThat(mBatteryChartPreferenceController.getHighestScoreAnomalyEvent(
+ BatteryTestUtils.createEmptyPowerAnomalyEventList()))
+ .isEqualTo(null);
+ }
+
+ @Test
+ public void getHighestScoreAnomalyEvent_withoutDismissed_getHighestScoreEvent() {
+ final PowerAnomalyEventList eventList =
+ BatteryTestUtils.createNonEmptyPowerAnomalyEventList();
+
+ final PowerAnomalyEvent highestScoreEvent =
+ mBatteryChartPreferenceController.getHighestScoreAnomalyEvent(eventList);
+
+ assertThat(highestScoreEvent)
+ .isEqualTo(BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent());
+ }
+
+ @Test
+ public void getHighestScoreAnomalyEvent_withBrightnessDismissed_getScreenTimeout() {
+ final PowerAnomalyEventList eventList =
+ BatteryTestUtils.createNonEmptyPowerAnomalyEventList();
+ DatabaseUtils.removeDismissedPowerAnomalyKeys(mContext);
+ DatabaseUtils.setDismissedPowerAnomalyKeys(mContext, PowerAnomalyKey.KEY_BRIGHTNESS.name());
+
+ final PowerAnomalyEvent highestScoreEvent =
+ mBatteryChartPreferenceController.getHighestScoreAnomalyEvent(eventList);
+
+ assertThat(highestScoreEvent)
+ .isEqualTo(BatteryTestUtils.createScreenTimeoutAnomalyEvent());
+ }
+
+ @Test
+ public void getHighestScoreAnomalyEvent_withAllDismissed_getNull() {
+ final PowerAnomalyEventList eventList =
+ BatteryTestUtils.createNonEmptyPowerAnomalyEventList();
+ DatabaseUtils.removeDismissedPowerAnomalyKeys(mContext);
+ for (PowerAnomalyKey key : PowerAnomalyKey.values()) {
+ DatabaseUtils.setDismissedPowerAnomalyKeys(mContext, key.name());
+ }
+
+ final PowerAnomalyEvent highestScoreEvent =
+ mBatteryChartPreferenceController.getHighestScoreAnomalyEvent(eventList);
+
+ assertThat(highestScoreEvent).isEqualTo(null);
+ }
+
+
private static Long generateTimestamp(int index) {
// "2021-04-23 07:00:00 UTC" + index hours
return 1619247600000L + index * DateUtils.HOUR_IN_MILLIS;
}
- private static Map<Long, Map<String, BatteryHistEntry>> createBatteryHistoryMap(
- int numOfHours) {
- final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
- for (int index = 0; index < numOfHours; index++) {
- final ContentValues values = new ContentValues();
- final DeviceBatteryState deviceBatteryState =
- DeviceBatteryState
- .newBuilder()
- .setBatteryLevel(100 - index)
- .build();
- final BatteryInformation batteryInformation =
- BatteryInformation
- .newBuilder()
- .setDeviceBatteryState(deviceBatteryState)
- .setConsumePower(100 - index)
- .build();
- values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
- ConvertUtils.convertBatteryInformationToString(batteryInformation));
- values.put(BatteryHistEntry.KEY_PACKAGE_NAME, "package" + index);
- final BatteryHistEntry entry = new BatteryHistEntry(values);
- final Map<String, BatteryHistEntry> entryMap = new HashMap<>();
- entryMap.put("fake_entry_key" + index, entry);
- long timestamp = generateTimestamp(index);
+ private static BatteryLevelData createBatteryLevelData(int numOfHours) {
+ Map<Long, Integer> batteryLevelMap = new ArrayMap<>();
+ for (int index = 0; index < numOfHours; index += 2) {
+ final Integer level = 100 - index;
+ Long timestamp = generateTimestamp(index);
if (index == 0) {
timestamp += DateUtils.MINUTE_IN_MILLIS;
+ index--;
}
- batteryHistoryMap.put(timestamp, entryMap);
+ batteryLevelMap.put(timestamp, level);
}
- DataProcessor.sTestCurrentTimeMillis =
- generateTimestamp(numOfHours - 1) + DateUtils.MINUTE_IN_MILLIS * 2;
- return batteryHistoryMap;
+ long current = generateTimestamp(numOfHours - 1) + DateUtils.MINUTE_IN_MILLIS * 2;
+ batteryLevelMap.put(current, 66);
+ DataProcessor.sTestCurrentTimeMillis = current;
+ return new BatteryLevelData(batteryLevelMap);
+ }
+
+ private static Map<Integer, Map<Integer, BatteryDiffData>> getEmptyBatteryUsageMap() {
+ return Map.of(SELECTED_INDEX_ALL, Map.of(SELECTED_INDEX_ALL, new BatteryDiffData(
+ null, 0, 0, 0, 0, 0, List.of(), List.of(), Set.of(), Set.of(), false)));
}
private BatteryChartPreferenceController createController() {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
index 27539a5..d4bae29 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
@@ -147,6 +147,14 @@
/*foregroundUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L, isHidden);
return new BatteryDiffEntry(
context,
+ batteryHistEntry.mUid,
+ batteryHistEntry.mUserId,
+ batteryHistEntry.getKey(),
+ batteryHistEntry.mIsHidden,
+ batteryHistEntry.mDrainType,
+ batteryHistEntry.mPackageName,
+ batteryHistEntry.mAppLabel,
+ batteryHistEntry.mConsumerType,
/*foregroundUsageTimeInMs=*/ 0,
/*backgroundUsageTimeInMs=*/ 0,
/*screenOnTimeInMs=*/ 0,
@@ -154,8 +162,7 @@
/*foregroundUsageConsumePower=*/ 0,
/*foregroundServiceUsageConsumePower=*/ 0,
/*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0,
- batteryHistEntry);
+ /*cachedUsageConsumePower=*/ 0);
}
private static BatteryHistEntry createBatteryHistEntry(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
index 655f1e4..9bb4b73 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
@@ -95,6 +95,14 @@
final BatteryDiffEntry entry =
new BatteryDiffEntry(
mContext,
+ /*uid=*/ 0,
+ /*userId=*/ 0,
+ /*key=*/ "key",
+ /*isHidden=*/ false,
+ /*componentId=*/ -1,
+ /*legacyPackageName=*/ null,
+ /*legacyLabel=*/ null,
+ /*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
/*foregroundUsageTimeInMs=*/ 10001L,
/*backgroundUsageTimeInMs=*/ 20002L,
/*screenOnTimeInMs=*/ 30003L,
@@ -102,8 +110,7 @@
/*foregroundUsageConsumePower=*/ 10.0,
/*foregroundServiceUsageConsumePower=*/ 10.0,
/*backgroundUsageConsumePower=*/ 1.0,
- /*cachedUsageConsumePower=*/ 1.0,
- /*batteryHistEntry=*/ null);
+ /*cachedUsageConsumePower=*/ 1.0);
entry.setTotalConsumePower(100.0);
assertThat(entry.getPercentage()).isEqualTo(22.0);
@@ -114,6 +121,14 @@
final BatteryDiffEntry entry =
new BatteryDiffEntry(
mContext,
+ /*uid=*/ 0,
+ /*userId=*/ 0,
+ /*key=*/ "key",
+ /*isHidden=*/ false,
+ /*componentId=*/ -1,
+ /*legacyPackageName=*/ null,
+ /*legacyLabel=*/ null,
+ /*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
/*foregroundUsageTimeInMs=*/ 10001L,
/*backgroundUsageTimeInMs=*/ 20002L,
/*screenOnTimeInMs=*/ 30003L,
@@ -121,8 +136,7 @@
/*foregroundUsageConsumePower=*/ 10.0,
/*foregroundServiceUsageConsumePower=*/ 10.0,
/*backgroundUsageConsumePower=*/ 1.0,
- /*cachedUsageConsumePower=*/ 1.0,
- /*batteryHistEntry=*/ null);
+ /*cachedUsageConsumePower=*/ 1.0);
entry.setTotalConsumePower(0);
assertThat(entry.getPercentage()).isEqualTo(0);
@@ -133,7 +147,24 @@
final List<BatteryDiffEntry> entryList = new ArrayList<>();
// Generates fake testing data.
BatteryDiffEntry systemAppsBatteryDiffEntry =
- new BatteryDiffEntry.SystemAppsBatteryDiffEntry(mContext);
+ new BatteryDiffEntry(
+ mContext,
+ /*uid=*/ 0,
+ /*userId=*/ 0,
+ /*key=*/ BatteryDiffEntry.SYSTEM_APPS_KEY,
+ /*isHidden=*/ false,
+ /*componentId=*/ -1,
+ /*legacyPackageName=*/ null,
+ /*legacyLabel=*/ BatteryDiffEntry.SYSTEM_APPS_KEY,
+ /*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+ /*foregroundUsageTimeInMs=*/ 0,
+ /*backgroundUsageTimeInMs=*/ 0,
+ /*screenOnTimeInMs=*/ 0,
+ /*consumePower=*/ 0,
+ /*foregroundUsageConsumePower=*/ 0,
+ /*foregroundServiceUsageConsumePower=*/ 0,
+ /*backgroundUsageConsumePower=*/ 0,
+ /*cachedUsageConsumePower=*/ 0);
systemAppsBatteryDiffEntry.mConsumePower = 16;
systemAppsBatteryDiffEntry.setTotalConsumePower(100);
entryList.add(systemAppsBatteryDiffEntry);
@@ -448,17 +479,16 @@
private BatteryDiffEntry createBatteryDiffEntry(
int consumerType, long uid, boolean isHidden) {
- final ContentValues values = getContentValuesWithType(consumerType);
- final BatteryInformation batteryInformation =
- BatteryInformation
- .newBuilder()
- .setIsHidden(isHidden)
- .build();
- values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
- ConvertUtils.convertBatteryInformationToString(batteryInformation));
- values.put(BatteryHistEntry.KEY_UID, uid);
return new BatteryDiffEntry(
mContext,
+ /*uid=*/ uid,
+ /*userId=*/ 0,
+ /*key=*/ "key",
+ /*isHidden=*/ isHidden,
+ /*componentId=*/ -1,
+ /*legacyPackageName=*/ null,
+ /*legacyLabel=*/ null,
+ /*consumerType*/ consumerType,
/*foregroundUsageTimeInMs=*/ 0,
/*backgroundUsageTimeInMs=*/ 0,
/*screenOnTimeInMs=*/ 0,
@@ -466,14 +496,21 @@
/*foregroundUsageConsumePower=*/ 0,
/*foregroundServiceUsageConsumePower=*/ 0,
/*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0,
- new BatteryHistEntry(values));
+ /*cachedUsageConsumePower=*/ 0);
}
private BatteryDiffEntry createBatteryDiffEntry(
double consumePower, BatteryHistEntry batteryHistEntry) {
final BatteryDiffEntry entry = new BatteryDiffEntry(
mContext,
+ batteryHistEntry.mUid,
+ batteryHistEntry.mUserId,
+ batteryHistEntry.getKey(),
+ batteryHistEntry.mIsHidden,
+ batteryHistEntry.mDrainType,
+ batteryHistEntry.mPackageName,
+ batteryHistEntry.mAppLabel,
+ batteryHistEntry.mConsumerType,
/*foregroundUsageTimeInMs=*/ 0,
/*backgroundUsageTimeInMs=*/ 0,
/*screenOnTimeInMs=*/ 0,
@@ -481,8 +518,7 @@
/*foregroundUsageConsumePower=*/ 0,
/*foregroundServiceUsageConsumePower=*/ 0,
/*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0,
- batteryHistEntry);
+ /*cachedUsageConsumePower=*/ 0);
entry.setTotalConsumePower(100.0);
return entry;
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java
index 9667760..609f2fc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java
@@ -15,6 +15,10 @@
*/
package com.android.settings.fuelgauge.batteryusage;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isSystemConsumer;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isUidConsumer;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isUserConsumer;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.when;
@@ -147,32 +151,32 @@
@Test
public void testIsAppEntry_returnExpectedResult() {
- assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).isAppEntry())
- .isFalse();
- assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).isAppEntry())
- .isFalse();
- assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).isAppEntry())
- .isTrue();
+ assertThat(isUidConsumer(
+ createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).mConsumerType)).isFalse();
+ assertThat(isUidConsumer(
+ createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType)).isFalse();
+ assertThat(isUidConsumer(
+ createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType)).isTrue();
}
@Test
public void testIsUserEntry_returnExpectedResult() {
- assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).isUserEntry())
- .isFalse();
- assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).isUserEntry())
- .isTrue();
- assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).isUserEntry())
- .isFalse();
+ assertThat(isUserConsumer(
+ createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).mConsumerType)).isFalse();
+ assertThat(isUserConsumer(
+ createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType)).isTrue();
+ assertThat(isUserConsumer(
+ createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType)).isFalse();
}
@Test
public void testIsSystemEntry_returnExpectedResult() {
- assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).isSystemEntry())
- .isTrue();
- assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).isSystemEntry())
- .isFalse();
- assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).isSystemEntry())
- .isFalse();
+ assertThat(isSystemConsumer(
+ createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).mConsumerType)).isTrue();
+ assertThat(isSystemConsumer(
+ createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType)).isFalse();
+ assertThat(isSystemConsumer(
+ createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType)).isFalse();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java
index e14ead5..9155c66 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java
@@ -27,7 +27,6 @@
import androidx.preference.PreferenceViewHolder;
import com.android.settings.R;
-import com.android.settings.fuelgauge.BatteryInfo;
import org.junit.Before;
import org.junit.Test;
@@ -42,8 +41,6 @@
@Mock
private PreferenceViewHolder mViewHolder;
@Mock
- private BatteryInfo mBatteryInfo;
- @Mock
private TextView mTextView;
@Mock
private BatteryChartView mDailyChartView;
@@ -59,7 +56,6 @@
LayoutInflater.from(context).inflate(R.layout.battery_chart_graph, null);
mBatteryHistoryPreference = new BatteryHistoryPreference(context, null);
- mBatteryHistoryPreference.mBatteryInfo = mBatteryInfo;
mViewHolder = spy(PreferenceViewHolder.createInstanceForTests(itemView));
when(mViewHolder.findViewById(R.id.daily_battery_chart)).thenReturn(mDailyChartView);
when(mViewHolder.findViewById(R.id.hourly_battery_chart)).thenReturn(mHourlyChartView);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java
new file mode 100644
index 0000000..13d60bb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java
@@ -0,0 +1,214 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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 org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+
+@RunWith(RobolectricTestRunner.class)
+public class BatteryLevelDataTest {
+
+ @Before
+ public void setUp() {
+ TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
+ }
+
+ @Test
+ public void getDailyTimestamps_allDataInOneHour_returnExpectedList() {
+ // Timezone GMT+8
+ final List<Long> timestamps = List.of(
+ 1640970006000L, // 2022-01-01 01:00:06
+ 1640973608000L // 2022-01-01 01:00:08
+ );
+
+ final List<Long> expectedTimestamps = List.of(
+ 1640970006000L, // 2022-01-01 01:00:06
+ 1640973608000L // 2022-01-01 01:00:08
+ );
+ assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+ }
+
+ @Test
+ public void getDailyTimestamps_OneHourDataPerDay_returnExpectedList() {
+ // Timezone GMT+8
+ final List<Long> timestamps = List.of(
+ 1641049200000L, // 2022-01-01 23:00:00
+ 1641052800000L, // 2022-01-02 00:00:00
+ 1641056400000L // 2022-01-02 01:00:00
+ );
+
+ final List<Long> expectedTimestamps = List.of(
+ 1641049200000L, // 2022-01-01 23:00:00
+ 1641052800000L, // 2022-01-02 00:00:00
+ 1641056400000L // 2022-01-02 01:00:00
+ );
+ assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+ }
+
+ @Test
+ public void getDailyTimestamps_OneDayData_returnExpectedList() {
+ // Timezone GMT+8
+ final List<Long> timestamps = List.of(
+ 1640966400000L, // 2022-01-01 00:00:00
+ 1640970000000L, // 2022-01-01 01:00:00
+ 1640973600000L, // 2022-01-01 02:00:00
+ 1640977200000L, // 2022-01-01 03:00:00
+ 1640980800000L // 2022-01-01 04:00:00
+ );
+
+ final List<Long> expectedTimestamps = List.of(
+ 1640966400000L, // 2022-01-01 00:00:00
+ 1640980800000L // 2022-01-01 04:00:00
+ );
+ assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+ }
+
+ @Test
+ public void getDailyTimestamps_MultipleDaysData_returnExpectedList() {
+ // Timezone GMT+8
+ final List<Long> timestamps = List.of(
+ 1641045600000L, // 2022-01-01 22:00:00
+ 1641060000000L, // 2022-01-02 02:00:00
+ 1641160800000L, // 2022-01-03 06:00:00
+ 1641232800000L // 2022-01-04 02:00:00
+ );
+
+ final List<Long> expectedTimestamps = List.of(
+ 1641045600000L, // 2022-01-01 22:00:00
+ 1641052800000L, // 2022-01-02 00:00:00
+ 1641139200000L, // 2022-01-03 00:00:00
+ 1641225600000L, // 2022-01-04 00:00:00
+ 1641232800000L // 2022-01-04 02:00:00
+ );
+ assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+ }
+
+ @Test
+ public void getDailyTimestamps_FirstDayOneHourData_returnExpectedList() {
+ // Timezone GMT+8
+ final List<Long> timestamps = List.of(
+ 1641049200000L, // 2022-01-01 23:00:00
+ 1641060000000L, // 2022-01-02 02:00:00
+ 1641160800000L, // 2022-01-03 06:00:00
+ 1641254400000L // 2022-01-04 08:00:00
+ );
+
+ final List<Long> expectedTimestamps = List.of(
+ 1641049200000L, // 2022-01-01 23:00:00
+ 1641052800000L, // 2022-01-02 00:00:00
+ 1641139200000L, // 2022-01-03 00:00:00
+ 1641225600000L, // 2022-01-04 00:00:00
+ 1641254400000L // 2022-01-04 08:00:00
+ );
+ assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+ }
+
+ @Test
+ public void getDailyTimestamps_LastDayNoData_returnExpectedList() {
+ // Timezone GMT+8
+ final List<Long> timestamps = List.of(
+ 1640988000000L, // 2022-01-01 06:00:00
+ 1641060000000L, // 2022-01-02 02:00:00
+ 1641160800000L, // 2022-01-03 06:00:00
+ 1641225600000L // 2022-01-04 00:00:00
+ );
+
+ final List<Long> expectedTimestamps = List.of(
+ 1640988000000L, // 2022-01-01 06:00:00
+ 1641052800000L, // 2022-01-02 00:00:00
+ 1641139200000L, // 2022-01-03 00:00:00
+ 1641225600000L // 2022-01-04 00:00:00
+ );
+ assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+ }
+
+ @Test
+ public void getDailyTimestamps_LastDayOneHourData_returnExpectedList() {
+ // Timezone GMT+8
+ final List<Long> timestamps = List.of(
+ 1640988000000L, // 2022-01-01 06:00:00
+ 1641060000000L, // 2022-01-02 02:00:00
+ 1641160800000L, // 2022-01-03 06:00:00
+ 1641229200000L // 2022-01-04 01:00:00
+ );
+
+ final List<Long> expectedTimestamps = List.of(
+ 1640988000000L, // 2022-01-01 06:00:00
+ 1641052800000L, // 2022-01-02 00:00:00
+ 1641139200000L, // 2022-01-03 00:00:00
+ 1641225600000L, // 2022-01-04 00:00:00
+ 1641229200000L // 2022-01-04 01:00:00
+ );
+ assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+ }
+
+ @Test
+ public void combine_normalFlow_returnExpectedResult() {
+ final BatteryLevelData batteryLevelData =
+ new BatteryLevelData(Map.of(1691596800000L, 90, 1691604000000L, 80));
+ final List<BatteryEvent> batteryLevelRecordEvents = List.of(
+ BatteryEvent.newBuilder().setTimestamp(1691586000166L).setBatteryLevel(100)
+ .setType(BatteryEventType.FULL_CHARGED).build(),
+ BatteryEvent.newBuilder().setTimestamp(1691589600000L).setBatteryLevel(98)
+ .setType(BatteryEventType.EVEN_HOUR).build());
+
+ BatteryLevelData result =
+ BatteryLevelData.combine(batteryLevelData, batteryLevelRecordEvents);
+
+ assertThat(result.getDailyBatteryLevels().getTimestamps())
+ .isEqualTo(List.of(1691586000166L, 1691596800000L, 1691604000000L));
+ assertThat(result.getDailyBatteryLevels().getLevels())
+ .isEqualTo(List.of(100, 90, 80));
+ assertThat(result.getHourlyBatteryLevelsPerDay())
+ .hasSize(2);
+ assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getTimestamps())
+ .isEqualTo(List.of(1691586000166L, 1691589600000L, 1691596800000L));
+ assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getLevels())
+ .isEqualTo(List.of(100, 98, 90));
+ assertThat(result.getHourlyBatteryLevelsPerDay().get(1).getTimestamps())
+ .isEqualTo(List.of(1691596800000L, 1691604000000L));
+ assertThat(result.getHourlyBatteryLevelsPerDay().get(1).getLevels())
+ .isEqualTo(List.of(90, 80));
+ }
+
+ @Test
+ public void combine_existingBatteryLevelDataIsNull_returnExpectedResult() {
+ final List<BatteryEvent> batteryLevelRecordEvents = List.of(
+ BatteryEvent.newBuilder().setTimestamp(1691586000166L).setBatteryLevel(100)
+ .setType(BatteryEventType.FULL_CHARGED).build(),
+ BatteryEvent.newBuilder().setTimestamp(1691589600000L).setBatteryLevel(98)
+ .setType(BatteryEventType.EVEN_HOUR).build());
+
+ BatteryLevelData result =
+ BatteryLevelData.combine(null, batteryLevelRecordEvents);
+
+ assertThat(result.getHourlyBatteryLevelsPerDay())
+ .hasSize(1);
+ assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getTimestamps())
+ .isEqualTo(List.of(1691586000166L, 1691589600000L));
+ assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getLevels())
+ .isEqualTo(List.of(100, 98));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
index ed2b315..ac67dfd 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
@@ -29,11 +29,11 @@
import android.content.Intent;
import android.view.View;
+import com.android.settings.DisplaySettings;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
-import com.android.settings.display.AutoBrightnessSettings;
-import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.testutils.BatteryTestUtils;
+import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import org.junit.Before;
@@ -49,21 +49,21 @@
public final class BatteryTipsCardPreferenceTest {
private Context mContext;
+ private FakeFeatureFactory mFeatureFactory;
private BatteryTipsCardPreference mBatteryTipsCardPreference;
private BatteryTipsController mBatteryTipsController;
+
@Mock
private View mFakeView;
- @Mock
- private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
+ mFeatureFactory = FakeFeatureFactory.setupForTest();
mBatteryTipsCardPreference = new BatteryTipsCardPreference(mContext, /*attrs=*/ null);
mBatteryTipsController = new BatteryTipsController(mContext);
mBatteryTipsController.mCardPreference = mBatteryTipsCardPreference;
- mBatteryTipsController.mPowerUsageFeatureProvider = mPowerUsageFeatureProvider;
}
@Test
@@ -72,22 +72,45 @@
R.layout.battery_tips_card);
}
@Test
- public void onClick_actionBtn_getAdaptiveBrightnessLauncher() {
+ public void onClick_mainBtn_getAdaptiveBrightnessLauncher() {
final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
PowerAnomalyEvent adaptiveBrightnessAnomaly =
BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent();
- when(mPowerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
+ when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
when(mFakeView.getId()).thenReturn(R.id.main_button);
doNothing().when(mContext).startActivity(captor.capture());
mBatteryTipsController.handleBatteryTipsCardUpdated(adaptiveBrightnessAnomaly);
mBatteryTipsCardPreference.onClick(mFakeView);
+ assertThat(mBatteryTipsCardPreference.isVisible()).isEqualTo(false);
verify(mContext).startActivity(any(Intent.class));
final Intent intent = captor.getValue();
assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
- .isEqualTo(AutoBrightnessSettings.class.getName());
+ .isEqualTo(DisplaySettings.class.getName());
assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, -1))
- .isEqualTo(SettingsEnums.SETTINGS_AUTO_BRIGHTNESS);
+ .isEqualTo(SettingsEnums.DISPLAY);
+ verify(mFeatureFactory.metricsFeatureProvider).action(
+ mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_ACCEPT, "BrightnessAnomaly");
+ }
+
+ @Test
+ public void onClick_dismissBtn_cardDismissAndLogged() {
+ PowerAnomalyEvent screenTimeoutAnomaly =
+ BatteryTestUtils.createScreenTimeoutAnomalyEvent();
+ DatabaseUtils.removeDismissedPowerAnomalyKeys(mContext);
+ when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
+ when(mFakeView.getId()).thenReturn(R.id.dismiss_button);
+
+ mBatteryTipsController.handleBatteryTipsCardUpdated(screenTimeoutAnomaly);
+ mBatteryTipsCardPreference.onClick(mFakeView);
+
+ assertThat(mBatteryTipsCardPreference.isVisible()).isEqualTo(false);
+ assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext).size())
+ .isEqualTo(1);
+ assertThat(DatabaseUtils.getDismissedPowerAnomalyKeys(mContext))
+ .contains(PowerAnomalyKey.KEY_SCREEN_TIMEOUT.name());
+ verify(mFeatureFactory.metricsFeatureProvider).action(
+ mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_DISMISS, "ScreenTimeoutAnomaly");
}
}
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 0c9a0b0..e1ba84e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
@@ -16,19 +16,18 @@
package com.android.settings.fuelgauge.batteryusage;
-import static com.google.common.truth.Truth.assertThat;
-
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Resources;
import android.os.LocaleList;
-import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.testutils.BatteryTestUtils;
+import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
import org.junit.Test;
@@ -45,14 +44,12 @@
public final class BatteryTipsControllerTest {
private Context mContext;
+ private FakeFeatureFactory mFeatureFactory;
private BatteryTipsController mBatteryTipsController;
@Mock
private BatteryTipsCardPreference mBatteryTipsCardPreference;
- @Mock
- private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
-
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
@@ -63,24 +60,9 @@
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.mPowerUsageFeatureProvider = mPowerUsageFeatureProvider;
- }
-
- @Test
- public void parsePowerAnomalyKey_preDefinedKeys_returnTrue() {
- final String[] keys = {"adaptive_brightness", "screen_timeout"};
- for (int index = 0; index < keys.length; index++) {
- assertThat(mBatteryTipsController.getPowerAnomalyEventIndex(keys[index]))
- .isEqualTo(index);
- }
- }
-
- @Test
- public void parsePowerAnomalyKey_unknownKey_returnTrue() {
- final String key = "unknown_key_for_test";
- assertThat(mBatteryTipsController.getPowerAnomalyEventIndex(key)).isEqualTo(-1);
}
@Test
@@ -93,10 +75,11 @@
@Test
public void handleBatteryTipsCardUpdated_adaptiveBrightnessAnomaly_showAnomaly() {
PowerAnomalyEvent event = BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent();
- when(mPowerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
+ when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
mBatteryTipsController.handleBatteryTipsCardUpdated(event);
+ verify(mBatteryTipsCardPreference).setAnomalyEventId("BrightnessAnomaly");
// Check pre-defined string
verify(mBatteryTipsCardPreference).setTitle(
"Turn on adaptive brightness to extend battery life");
@@ -104,26 +87,32 @@
verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
// Check proto info
verify(mBatteryTipsCardPreference).setMainButtonLauncherInfo(
- "com.android.settings.display.AutoBrightnessSettings",
- 1381);
+ "com.android.settings.DisplaySettings",
+ 46, "auto_brightness_entry");
verify(mBatteryTipsCardPreference).setVisible(true);
+ verify(mFeatureFactory.metricsFeatureProvider).action(
+ mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "BrightnessAnomaly");
}
@Test
public void handleBatteryTipsCardUpdated_screenTimeoutAnomaly_showAnomaly() {
PowerAnomalyEvent event = BatteryTestUtils.createScreenTimeoutAnomalyEvent();
- when(mPowerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
+ when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
mBatteryTipsController.handleBatteryTipsCardUpdated(event);
+ verify(mBatteryTipsCardPreference).setAnomalyEventId("ScreenTimeoutAnomaly");
verify(mBatteryTipsCardPreference).setTitle("Reduce screen timeout to extend battery life");
verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
verify(mBatteryTipsCardPreference).setMainButtonLauncherInfo(
"com.android.settings.display.ScreenTimeoutSettings",
- 1852);
+ 1852, "60000");
verify(mBatteryTipsCardPreference).setVisible(true);
+ verify(mFeatureFactory.metricsFeatureProvider).action(
+ mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "ScreenTimeoutAnomaly");
}
+
@Test
public void handleBatteryTipsCardUpdated_screenTimeoutAnomalyHasTitle_showAnomaly() {
PowerAnomalyEvent event = BatteryTestUtils.createScreenTimeoutAnomalyEvent();
@@ -134,16 +123,19 @@
.setTitleString(testTitle)
.build())
.build();
- when(mPowerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
+ when(mFeatureFactory.powerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
mBatteryTipsController.handleBatteryTipsCardUpdated(event);
+ verify(mBatteryTipsCardPreference).setAnomalyEventId("ScreenTimeoutAnomaly");
verify(mBatteryTipsCardPreference).setTitle(testTitle);
verify(mBatteryTipsCardPreference).setMainButtonLabel("View Settings");
verify(mBatteryTipsCardPreference).setDismissButtonLabel("Got it");
verify(mBatteryTipsCardPreference).setMainButtonLauncherInfo(
"com.android.settings.display.ScreenTimeoutSettings",
- 1852);
+ 1852, "60000");
verify(mBatteryTipsCardPreference).setVisible(true);
+ verify(mFeatureFactory.metricsFeatureProvider).action(
+ mContext, SettingsEnums.ACTION_BATTERY_TIPS_CARD_SHOW, "ScreenTimeoutAnomaly");
}
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
index 3a9ce2b..d89c06b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
@@ -96,6 +96,14 @@
mBatteryUsageBreakdownController.mAppListPreferenceGroup = mAppListPreferenceGroup;
mBatteryDiffEntry = new BatteryDiffEntry(
mContext,
+ /*uid=*/ 0L,
+ /*userId=*/ 0L,
+ /*key=*/ "key",
+ /*isHidden=*/ false,
+ /*componentId=*/ -1,
+ /*legacyPackageName=*/ null,
+ /*legacyLabel=*/ null,
+ /*consumerType=*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
/*foregroundUsageTimeInMs=*/ 1,
/*backgroundUsageTimeInMs=*/ 2,
/*screenOnTimeInMs=*/ 0,
@@ -103,13 +111,14 @@
/*foregroundUsageConsumePower=*/ 0,
/*foregroundServiceUsageConsumePower=*/ 1,
/*backgroundUsageConsumePower=*/ 2,
- /*cachedUsageConsumePower=*/ 0,
- mBatteryHistEntry);
+ /*cachedUsageConsumePower=*/ 0);
mBatteryDiffEntry = spy(mBatteryDiffEntry);
mBatteryUsageBreakdownController.mBatteryDiffData =
- new BatteryDiffData(mContext, /* screenOnTime= */ 0L,
- Arrays.asList(mBatteryDiffEntry), Arrays.asList(), Set.of(), Set.of(),
- /* isAccumulated= */ false);
+ new BatteryDiffData(mContext, /* startTimestamp= */ 0L, /* endTimestamp= */ 0L,
+ /* startBatteryLevel= */ 0, /* endBatteryLevel= */ 0,
+ /* screenOnTime= */ 0L, Arrays.asList(mBatteryDiffEntry), Arrays.asList(),
+ Set.of(), Set.of(), /* isAccumulated= */ false);
+ BatteryDiffEntry.clearCache();
// Adds fake testing data.
BatteryDiffEntry.sResourceCache.put(
"fakeBatteryDiffEntryKey",
@@ -140,7 +149,7 @@
doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
- doReturn(PREF_KEY).when(mBatteryHistEntry).getKey();
+ doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
doReturn(null).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
doReturn(false).when(mBatteryDiffEntry).validForRestriction();
@@ -168,7 +177,7 @@
doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
- doReturn(PREF_KEY).when(mBatteryHistEntry).getKey();
+ doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
doReturn(mPowerGaugePreference).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
mBatteryUsageBreakdownController.addAllPreferences();
@@ -197,7 +206,7 @@
public void removeAndCacheAllUnusedPreferences_keepPref_KeepAllPreference() {
doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
doReturn(mPowerGaugePreference).when(mAppListPreferenceGroup).getPreference(0);
- doReturn(PREF_KEY).when(mBatteryHistEntry).getKey();
+ doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
doReturn(PREF_KEY).when(mPowerGaugePreference).getKey();
doReturn(mPowerGaugePreference).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
// Ensures the testing data is correct.
@@ -222,7 +231,7 @@
@Test
public void handlePreferenceTreeClick_forAppEntry_returnTrue() {
- doReturn(false).when(mBatteryHistEntry).isAppEntry();
+ mBatteryDiffEntry.mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
doReturn(mBatteryDiffEntry).when(mPowerGaugePreference).getBatteryDiffEntry();
assertThat(mBatteryUsageBreakdownController.handlePreferenceTreeClick(
@@ -238,7 +247,7 @@
@Test
public void handlePreferenceTreeClick_forSystemEntry_returnTrue() {
- doReturn(true).when(mBatteryHistEntry).isAppEntry();
+ mBatteryDiffEntry.mConsumerType = ConvertUtils.CONSUMER_TYPE_UID_BATTERY;
doReturn(mBatteryDiffEntry).when(mPowerGaugePreference).getBatteryDiffEntry();
assertThat(mBatteryUsageBreakdownController.handlePreferenceTreeClick(
@@ -394,10 +403,23 @@
contentValues.put(BatteryHistEntry.KEY_USER_ID, Integer.valueOf(1001));
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(contentValues);
return new BatteryDiffEntry(
- mContext, foregroundUsageTimeInMs, backgroundUsageTimeInMs, screenOnTimeInMs,
- /*consumePower=*/ 0, /*foregroundUsageConsumePower=*/ 0,
- /*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0, batteryHistEntry);
+ mContext,
+ batteryHistEntry.mUid,
+ batteryHistEntry.mUserId,
+ batteryHistEntry.getKey(),
+ batteryHistEntry.mIsHidden,
+ batteryHistEntry.mDrainType,
+ batteryHistEntry.mPackageName,
+ batteryHistEntry.mAppLabel,
+ batteryHistEntry.mConsumerType,
+ foregroundUsageTimeInMs,
+ backgroundUsageTimeInMs,
+ screenOnTimeInMs,
+ /*consumePower=*/ 0,
+ /*foregroundUsageConsumePower=*/ 0,
+ /*foregroundServiceUsageConsumePower=*/ 0,
+ /*backgroundUsageConsumePower=*/ 0,
+ /*cachedUsageConsumePower=*/ 0);
}
private BatteryUsageBreakdownController createController() {
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 05a6f2b..999a921 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
@@ -20,11 +20,9 @@
import static org.junit.Assert.assertThrows;
-import android.app.Application;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
-import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
@@ -34,6 +32,7 @@
import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
import com.android.settings.fuelgauge.batteryusage.db.BatteryState;
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
import com.android.settings.testutils.BatteryTestUtils;
import com.android.settings.testutils.FakeClock;
@@ -41,12 +40,10 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.Shadows;
import java.time.Duration;
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/** Tests for {@link BatteryUsageContentProvider}. */
@@ -127,10 +124,28 @@
}
@Test
+ public void query_getLastFullChargeTimestamp_returnsExpectedResult() throws Exception {
+ mProvider.onCreate();
+ ContentValues values = new ContentValues();
+ values.put(BatteryEventEntity.KEY_TIMESTAMP, 10001L);
+ values.put(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE,
+ BatteryEventType.FULL_CHARGED.getNumber());
+ values.put(BatteryEventEntity.KEY_BATTERY_LEVEL, 100);
+ mProvider.insert(DatabaseUtils.BATTERY_EVENT_URI, values);
+
+ final Cursor cursor = getCursorOfLastFullChargeTimestamp();
+
+ assertThat(cursor.getCount()).isEqualTo(1);
+ cursor.moveToFirst();
+ final long lastFullChargeTimestamp = cursor.getLong(0);
+ assertThat(lastFullChargeTimestamp).isEqualTo(10001L);
+ }
+
+ @Test
public void query_batteryState_returnsExpectedResult() throws Exception {
mProvider.onCreate();
final Duration currentTime = Duration.ofHours(52);
- final long expiredTimeCutoff = currentTime.toMillis() - 3;
+ final long expiredTimeCutoff = currentTime.toMillis() - 8;
final Cursor cursor = insertBatteryState(currentTime, Long.toString(expiredTimeCutoff));
@@ -150,19 +165,13 @@
final String actualPackageName3 = cursor.getString(packageNameIndex);
assertThat(actualPackageName3).isEqualTo(PACKAGE_NAME3);
cursor.close();
- // Verifies the broadcast intent.
- TimeUnit.SECONDS.sleep(1);
- final List<Intent> intents = Shadows.shadowOf((Application) mContext).getBroadcastIntents();
- assertThat(intents).hasSize(1);
- assertThat(intents.get(0).getAction()).isEqualTo(
- BootBroadcastReceiver.ACTION_PERIODIC_JOB_RECHECK);
}
@Test
public void query_batteryStateTimestamp_returnsExpectedResult() throws Exception {
mProvider.onCreate();
final Duration currentTime = Duration.ofHours(52);
- final long expiredTimeCutoff = currentTime.toMillis() - 1;
+ final long expiredTimeCutoff = currentTime.toMillis() - 2;
final Cursor cursor = insertBatteryState(currentTime, Long.toString(expiredTimeCutoff));
@@ -178,12 +187,25 @@
final String actualPackageName2 = cursor.getString(packageNameIndex);
assertThat(actualPackageName2).isEqualTo(PACKAGE_NAME3);
cursor.close();
- // Verifies the broadcast intent.
- TimeUnit.SECONDS.sleep(1);
- final List<Intent> intents = Shadows.shadowOf((Application) mContext).getBroadcastIntents();
- assertThat(intents).hasSize(1);
- assertThat(intents.get(0).getAction()).isEqualTo(
- BootBroadcastReceiver.ACTION_PERIODIC_JOB_RECHECK);
+ }
+
+ @Test
+ public void query_getBatteryStateLatestTimestamp_returnsExpectedResult() throws Exception {
+ mProvider.onCreate();
+ final Duration currentTime = Duration.ofHours(52);
+ insertBatteryState(currentTime, Long.toString(currentTime.toMillis()));
+
+ final Cursor cursor1 = getCursorOfBatteryStateLatestTimestamp(currentTime.toMillis() - 5);
+ assertThat(cursor1.getCount()).isEqualTo(1);
+ cursor1.moveToFirst();
+ final long latestTimestamp1 = cursor1.getLong(0);
+ assertThat(latestTimestamp1).isEqualTo(currentTime.toMillis() - 6);
+
+ final Cursor cursor2 = getCursorOfBatteryStateLatestTimestamp(currentTime.toMillis() - 2);
+ assertThat(cursor2.getCount()).isEqualTo(1);
+ cursor2.moveToFirst();
+ final long latestTimestamp2 = cursor2.getLong(0);
+ assertThat(latestTimestamp2).isEqualTo(currentTime.toMillis() - 2);
}
@Test
@@ -355,7 +377,7 @@
}
@Test
- public void insert_batteryEvent_returnsExpectedResult() {
+ public void insertAndQuery_batteryEvent_returnsExpectedResult() {
mProvider.onCreate();
ContentValues values = new ContentValues();
values.put(BatteryEventEntity.KEY_TIMESTAMP, 10001L);
@@ -366,7 +388,7 @@
final Uri uri = mProvider.insert(DatabaseUtils.BATTERY_EVENT_URI, values);
assertThat(uri).isEqualTo(DatabaseUtils.BATTERY_EVENT_URI);
- // Verifies the AppUsageEventEntity content.
+ // Verifies the BatteryEventEntity content.
final List<BatteryEventEntity> entities =
BatteryStateDatabase.getInstance(mContext).batteryEventDao().getAll();
assertThat(entities).hasSize(1);
@@ -374,6 +396,50 @@
assertThat(entities.get(0).batteryEventType).isEqualTo(
BatteryEventType.POWER_CONNECTED.getNumber());
assertThat(entities.get(0).batteryLevel).isEqualTo(66);
+
+ final Cursor cursor1 = getCursorOfBatteryEvents(
+ 0L, List.of(BatteryEventType.POWER_CONNECTED.getNumber()));
+ assertThat(cursor1.getCount()).isEqualTo(1);
+ cursor1.moveToFirst();
+ assertThat(cursor1.getLong(cursor1.getColumnIndex(BatteryEventEntity.KEY_TIMESTAMP)))
+ .isEqualTo(10001L);
+ assertThat(
+ cursor1.getInt(cursor1.getColumnIndex(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE)))
+ .isEqualTo(BatteryEventType.POWER_CONNECTED.getNumber());
+ assertThat(cursor1.getInt(cursor1.getColumnIndex(BatteryEventEntity.KEY_BATTERY_LEVEL)))
+ .isEqualTo(66);
+
+ final Cursor cursor2 = getCursorOfBatteryEvents(
+ 0L, List.of(BatteryEventType.POWER_DISCONNECTED.getNumber()));
+ assertThat(cursor2.getCount()).isEqualTo(0);
+ }
+
+ @Test
+ public void insertAndQuery_batteryUsageSlot_returnsExpectedResult() {
+ mProvider.onCreate();
+ ContentValues values = new ContentValues();
+ values.put(BatteryUsageSlotEntity.KEY_TIMESTAMP, 10001L);
+ values.put(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT, "TEST_STRING");
+
+ final Uri uri = mProvider.insert(DatabaseUtils.BATTERY_USAGE_SLOT_URI, values);
+ // Verifies the BatteryUsageSlotEntity content.
+ assertThat(uri).isEqualTo(DatabaseUtils.BATTERY_USAGE_SLOT_URI);
+ final List<BatteryUsageSlotEntity> entities =
+ BatteryStateDatabase.getInstance(mContext).batteryUsageSlotDao().getAll();
+ assertThat(entities).hasSize(1);
+ assertThat(entities.get(0).timestamp).isEqualTo(10001L);
+ assertThat(entities.get(0).batteryUsageSlot).isEqualTo("TEST_STRING");
+
+ final Cursor cursor1 = getCursorOfBatteryUsageSlots(10001L);
+ assertThat(cursor1.getCount()).isEqualTo(1);
+ cursor1.moveToFirst();
+ assertThat(cursor1.getLong(cursor1.getColumnIndex(BatteryUsageSlotEntity.KEY_TIMESTAMP)))
+ .isEqualTo(10001L);
+ assertThat(cursor1.getString(cursor1.getColumnIndex(
+ BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT))).isEqualTo("TEST_STRING");
+
+ final Cursor cursor2 = getCursorOfBatteryUsageSlots(10002L);
+ assertThat(cursor2.getCount()).isEqualTo(0);
}
@Test
@@ -404,10 +470,10 @@
final long currentTimestamp = currentTime.toMillis();
// Inserts some valid testing data.
BatteryTestUtils.insertDataToBatteryStateTable(
- mContext, currentTimestamp - 2, PACKAGE_NAME1,
+ mContext, currentTimestamp - 6, PACKAGE_NAME1,
/*isFullChargeStart=*/ true);
BatteryTestUtils.insertDataToBatteryStateTable(
- mContext, currentTimestamp - 1, PACKAGE_NAME2);
+ mContext, currentTimestamp - 2, PACKAGE_NAME2);
BatteryTestUtils.insertDataToBatteryStateTable(
mContext, currentTimestamp, PACKAGE_NAME3);
@@ -420,17 +486,35 @@
DatabaseUtils.QUERY_KEY_TIMESTAMP, queryTimestamp)
.build();
- final Cursor cursor =
- mProvider.query(
- batteryStateQueryContentUri,
- /*strings=*/ null,
- /*s=*/ null,
- /*strings1=*/ null,
- /*s1=*/ null);
+ final Cursor cursor = query(batteryStateQueryContentUri);
return cursor;
}
+ private Cursor getCursorOfLastFullChargeTimestamp() {
+ final Uri lastFullChargeTimestampContentUri =
+ new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(DatabaseUtils.AUTHORITY)
+ .appendPath(DatabaseUtils.LAST_FULL_CHARGE_TIMESTAMP_PATH)
+ .build();
+
+ return query(lastFullChargeTimestampContentUri);
+ }
+
+ private Cursor getCursorOfBatteryStateLatestTimestamp(final long queryTimestamp) {
+ final Uri batteryStateLatestTimestampUri =
+ new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(DatabaseUtils.AUTHORITY)
+ .appendPath(DatabaseUtils.BATTERY_STATE_LATEST_TIMESTAMP_PATH)
+ .appendQueryParameter(
+ DatabaseUtils.QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+ .build();
+
+ return query(batteryStateLatestTimestampUri);
+ }
+
private void insertAppUsageEvent() {
mProvider.onCreate();
// Inserts some valid testing data.
@@ -452,12 +536,7 @@
DatabaseUtils.QUERY_KEY_USERID, Long.toString(userId))
.build();
- return mProvider.query(
- appUsageLatestTimestampQueryContentUri,
- /*strings=*/ null,
- /*s=*/ null,
- /*strings1=*/ null,
- /*s1=*/ null);
+ return query(appUsageLatestTimestampQueryContentUri);
}
private Cursor getCursorOfAppUsage(final List<Long> userIds, final long queryTimestamp) {
@@ -474,7 +553,43 @@
.appendQueryParameter(DatabaseUtils.QUERY_KEY_USERID, queryUserIdString)
.build();
+ return query(appUsageEventUri);
+ }
+
+ private Cursor getCursorOfBatteryEvents(
+ final long queryTimestamp, final List<Integer> batteryEventTypes) {
+ final String batteryEventTypesString = batteryEventTypes.stream()
+ .map(type -> String.valueOf(type))
+ .collect(Collectors.joining(","));
+ final Uri batteryEventUri =
+ new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(DatabaseUtils.AUTHORITY)
+ .appendPath(DatabaseUtils.BATTERY_EVENT_TABLE)
+ .appendQueryParameter(
+ DatabaseUtils.QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+ .appendQueryParameter(
+ DatabaseUtils.QUERY_BATTERY_EVENT_TYPE, batteryEventTypesString)
+ .build();
+
+ return query(batteryEventUri);
+ }
+
+ private Cursor getCursorOfBatteryUsageSlots(final long queryTimestamp) {
+ final Uri batteryUsageSlotUri =
+ new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(DatabaseUtils.AUTHORITY)
+ .appendPath(DatabaseUtils.BATTERY_USAGE_SLOT_TABLE)
+ .appendQueryParameter(
+ DatabaseUtils.QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+ .build();
+
+ return query(batteryUsageSlotUri);
+ }
+
+ private Cursor query(Uri uri) {
return mProvider.query(
- appUsageEventUri, /*strings=*/ null, /*s=*/ null, /*strings1=*/ null, /*s1=*/ null);
+ uri, /*strings=*/ null, /*s=*/ null, /*strings1=*/ null, /*s1=*/ null);
}
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java
index 9aeff79..f3965fd 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java
@@ -22,6 +22,7 @@
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import android.content.ContentResolver;
@@ -31,6 +32,7 @@
import android.os.BatteryStatsManager;
import android.os.BatteryUsageStats;
import android.os.BatteryUsageStatsQuery;
+import android.os.UserManager;
import org.junit.Before;
import org.junit.Test;
@@ -43,6 +45,7 @@
import org.robolectric.RuntimeEnvironment;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
@@ -56,6 +59,8 @@
@Mock
private PackageManager mPackageManager;
@Mock
+ private UserManager mUserManager;
+ @Mock
private BatteryUsageStats mBatteryUsageStats;
@Mock
private BatteryEntry mMockBatteryEntry;
@@ -70,6 +75,7 @@
doReturn(mBatteryStatsManager).when(mContext).getSystemService(
Context.BATTERY_STATS_SERVICE);
doReturn(mPackageManager).when(mContext).getPackageManager();
+ doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
doReturn(mMockContentResolver).when(mContext).getContentResolver();
doReturn(new Intent()).when(mContext).registerReceiver(any(), any());
}
@@ -82,7 +88,7 @@
.thenReturn(mBatteryUsageStats);
BatteryUsageDataLoader.sFakeBatteryEntryListSupplier = () -> batteryEntryList;
- BatteryUsageDataLoader.loadUsageData(mContext, /*isFullChargeStart=*/ false);
+ BatteryUsageDataLoader.loadBatteryStatsData(mContext, /*isFullChargeStart=*/ false);
final int queryFlags = mStatsQueryCaptor.getValue().getFlags();
assertThat(queryFlags
@@ -97,7 +103,7 @@
.thenReturn(mBatteryUsageStats);
BatteryUsageDataLoader.sFakeBatteryEntryListSupplier = () -> null;
- BatteryUsageDataLoader.loadUsageData(mContext, /*isFullChargeStart=*/ false);
+ BatteryUsageDataLoader.loadBatteryStatsData(mContext, /*isFullChargeStart=*/ false);
verify(mMockContentResolver).insert(any(), any());
}
@@ -108,8 +114,51 @@
.thenReturn(mBatteryUsageStats);
BatteryUsageDataLoader.sFakeBatteryEntryListSupplier = () -> new ArrayList<>();
- BatteryUsageDataLoader.loadUsageData(mContext, /*isFullChargeStart=*/ false);
+ BatteryUsageDataLoader.loadBatteryStatsData(mContext, /*isFullChargeStart=*/ false);
verify(mMockContentResolver).insert(any(), any());
}
+
+ @Test
+ public void loadAppUsageData_withData_insertFakeDataIntoProvider() {
+ final List<AppUsageEvent> AppUsageEventList = new ArrayList<>();
+ final AppUsageEvent appUsageEvent = AppUsageEvent.newBuilder().setUid(0).build();
+ AppUsageEventList.add(appUsageEvent);
+ BatteryUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
+ BatteryUsageDataLoader.sFakeUsageEventsListSupplier = () -> AppUsageEventList;
+
+ BatteryUsageDataLoader.loadAppUsageData(mContext);
+
+ verify(mMockContentResolver).bulkInsert(any(), any());
+ verify(mMockContentResolver).notifyChange(any(), any());
+ }
+
+ @Test
+ public void loadAppUsageData_nullAppUsageEvents_notInsertDataIntoProvider() {
+ BatteryUsageDataLoader.sFakeAppUsageEventsSupplier = () -> null;
+
+ BatteryUsageDataLoader.loadAppUsageData(mContext);
+
+ verifyNoMoreInteractions(mMockContentResolver);
+ }
+
+ @Test
+ public void loadAppUsageData_nullUsageEventsList_notInsertDataIntoProvider() {
+ BatteryUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
+ BatteryUsageDataLoader.sFakeUsageEventsListSupplier = () -> null;
+
+ BatteryUsageDataLoader.loadAppUsageData(mContext);
+
+ verifyNoMoreInteractions(mMockContentResolver);
+ }
+
+ @Test
+ public void loadAppUsageData_emptyUsageEventsList_notInsertDataIntoProvider() {
+ BatteryUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
+ BatteryUsageDataLoader.sFakeUsageEventsListSupplier = () -> new ArrayList<>();
+
+ BatteryUsageDataLoader.loadAppUsageData(mContext);
+
+ verifyNoMoreInteractions(mMockContentResolver);
+ }
}
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 e9108bc..f06dc63 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
@@ -39,6 +39,7 @@
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
import org.junit.Before;
import org.junit.Test;
@@ -48,7 +49,10 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import java.util.List;
import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
import java.util.TimeZone;
@RunWith(RobolectricTestRunner.class)
@@ -213,6 +217,22 @@
}
@Test
+ public void convertBatteryUsageSlotToContentValues_normalCase_returnsExpectedContentValues() {
+ final BatteryUsageSlot batteryUsageSlot =
+ BatteryUsageSlot.newBuilder()
+ .setStartTimestamp(10001L)
+ .setEndTimestamp(30003L)
+ .setStartBatteryLevel(88)
+ .setEndBatteryLevel(66)
+ .setScreenOnTime(123L)
+ .build();
+ final ContentValues values =
+ ConvertUtils.convertBatteryUsageSlotToContentValues(batteryUsageSlot);
+ assertThat(values.getAsLong(BatteryUsageSlotEntity.KEY_TIMESTAMP)).isEqualTo(10001L);
+ assertThat(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT).isNotEmpty();
+ }
+
+ @Test
public void convertToBatteryHistEntry_returnsExpectedResult() {
final int expectedType = 3;
when(mMockBatteryEntry.getUid()).thenReturn(1001);
@@ -363,7 +383,7 @@
}
@Test
- public void convertToAppUsageEventFromCursor_returnExpectedResult() {
+ public void convertToAppUsageEvent_returnExpectedResult() {
final MatrixCursor cursor = new MatrixCursor(
new String[]{
AppUsageEventEntity.KEY_UID,
@@ -384,7 +404,7 @@
100001L});
cursor.moveToFirst();
- final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEventFromCursor(cursor);
+ final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEvent(cursor);
assertThat(appUsageEvent.getUid()).isEqualTo(101L);
assertThat(appUsageEvent.getUserId()).isEqualTo(1001L);
@@ -396,7 +416,7 @@
}
@Test
- public void convertToAppUsageEventFromCursor_emptyInstanceIdAndRootName_returnExpectedResult() {
+ public void convertToAppUsageEvent_emptyInstanceIdAndRootName_returnExpectedResult() {
final MatrixCursor cursor = new MatrixCursor(
new String[]{
AppUsageEventEntity.KEY_UID,
@@ -413,7 +433,7 @@
AppUsageEventType.DEVICE_SHUTDOWN.getNumber()});
cursor.moveToFirst();
- final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEventFromCursor(cursor);
+ final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEvent(cursor);
assertThat(appUsageEvent.getUid()).isEqualTo(101L);
assertThat(appUsageEvent.getUserId()).isEqualTo(1001L);
@@ -434,6 +454,42 @@
}
@Test
+ public void convertToBatteryEventList_normalCase_returnsExpectedResult() {
+ final BatteryLevelData batteryLevelData = new BatteryLevelData(Map.of(
+ 1691589600000L, 98, 1691596800000L, 90, 1691596812345L, 80));
+
+ final List<BatteryEvent> batteryEventList =
+ ConvertUtils.convertToBatteryEventList(batteryLevelData);
+
+ assertThat(batteryEventList).hasSize(2);
+ assertThat(batteryEventList.get(0).getTimestamp()).isEqualTo(1691589600000L);
+ assertThat(batteryEventList.get(0).getType()).isEqualTo(BatteryEventType.EVEN_HOUR);
+ assertThat(batteryEventList.get(0).getBatteryLevel()).isEqualTo(98);
+ assertThat(batteryEventList.get(1).getTimestamp()).isEqualTo(1691596800000L);
+ assertThat(batteryEventList.get(1).getType()).isEqualTo(BatteryEventType.EVEN_HOUR);
+ assertThat(batteryEventList.get(1).getBatteryLevel()).isEqualTo(90);
+ }
+
+ @Test
+ public void convertToBatteryUsageSlotList_normalCase_returnsExpectedResult() {
+ BatteryDiffData batteryDiffData1 = new BatteryDiffData(
+ mContext, 11L, 12L, 13, 14, 15, List.of(), List.of(), Set.of(), Set.of(), false);
+ BatteryDiffData batteryDiffData2 = new BatteryDiffData(
+ mContext, 21L, 22L, 23, 24, 25, List.of(), List.of(), Set.of(), Set.of(), false);
+ BatteryDiffData batteryDiffData3 = new BatteryDiffData(
+ mContext, 31L, 32L, 33, 34, 35, List.of(), List.of(), Set.of(), Set.of(), false);
+ final Map<Long, BatteryDiffData> batteryDiffDataMap = Map.of(
+ 11L, batteryDiffData1, 21L, batteryDiffData2, 31L, batteryDiffData3);
+
+ final List<BatteryUsageSlot> batteryUsageSlotList =
+ ConvertUtils.convertToBatteryUsageSlotList(batteryDiffDataMap);
+
+ assertThat(batteryUsageSlotList).hasSize(3);
+ assertThat(batteryUsageSlotList.stream().map((s) -> s.getScreenOnTime()).sorted().toList())
+ .isEqualTo(List.of(15L, 25L, 35L));
+ }
+
+ @Test
public void getLocale_nullContext_returnDefaultLocale() {
assertThat(ConvertUtils.getLocale(/*context=*/ null))
.isEqualTo(Locale.getDefault());
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
index b610cfb..d5909b2 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
@@ -30,8 +30,12 @@
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
+import android.database.Cursor;
import android.database.MatrixCursor;
import android.os.BatteryManager;
+import android.os.BatteryStatsManager;
+import android.os.BatteryUsageStats;
+import android.os.BatteryUsageStatsQuery;
import android.os.Parcel;
import android.os.RemoteException;
import android.os.UserManager;
@@ -39,19 +43,24 @@
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.function.Supplier;
@RunWith(RobolectricTestRunner.class)
public final class DataProcessManagerTest {
@@ -65,7 +74,13 @@
@Mock
private UserManager mUserManager;
@Mock
+ private BatteryStatsManager mBatteryStatsManager;
+ @Mock
+ private BatteryUsageStats mBatteryUsageStats;
+ @Mock
private Intent mIntent;
+ @Captor
+ private ArgumentCaptor<BatteryUsageStatsQuery> mBatteryUsageStatsQueryCaptor;
@Before
public void setUp() {
@@ -77,25 +92,37 @@
doReturn(mUserManager)
.when(mContext)
.getSystemService(UserManager.class);
+ doReturn(mBatteryStatsManager).when(mContext).getSystemService(
+ Context.BATTERY_STATS_SERVICE);
+ doReturn(mBatteryUsageStats).when(
+ mBatteryStatsManager).getBatteryUsageStats(mBatteryUsageStatsQueryCaptor.capture());
doReturn(mIntent).when(mContext).registerReceiver(any(), any());
doReturn(100).when(mIntent).getIntExtra(eq(BatteryManager.EXTRA_SCALE), anyInt());
doReturn(66).when(mIntent).getIntExtra(eq(BatteryManager.EXTRA_LEVEL), anyInt());
mDataProcessManager = new DataProcessManager(
mContext, /*handler=*/ null, /*rawStartTimestamp=*/ 0L,
- /*callbackFunction=*/ null, /*hourlyBatteryLevelsPerDay=*/ new ArrayList<>(),
+ /*lastFullChargeTimestamp=*/ 0L, /*callbackFunction=*/ null,
+ /*hourlyBatteryLevelsPerDay=*/ new ArrayList<>(),
/*batteryHistoryMap=*/ new HashMap<>());
}
+ @After
+ public void cleanUp() {
+ DatabaseUtils.sFakeSupplier = null;
+ DataProcessManager.sFakeBatteryHistoryMap = null;
+ }
+
@Test
+ @LooperMode(LooperMode.Mode.LEGACY)
public void constructor_noLevelData() {
final DataProcessManager dataProcessManager =
new DataProcessManager(mContext, /*handler=*/ null, /*callbackFunction=*/ null);
assertThat(dataProcessManager.getShowScreenOnTime()).isFalse();
- assertThat(dataProcessManager.getShowBatteryLevel()).isFalse();
}
@Test
+ @LooperMode(LooperMode.Mode.LEGACY)
public void start_loadEmptyDatabaseAppUsageData() {
final MatrixCursor cursor = new MatrixCursor(
new String[]{
@@ -116,22 +143,25 @@
}
@Test
+ @LooperMode(LooperMode.Mode.LEGACY)
public void start_loadExpectedAppUsageData() throws RemoteException {
final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
new ArrayList<>();
final String packageName = "package";
// Adds the day 1 data.
final List<Long> timestamps1 = List.of(2L, 3L, 4L);
- final List<Integer> levels1 = List.of(100, 100, 100);
+ final Map<Long, Integer> batteryLevelMap1 =
+ Map.of(timestamps1.get(0), 100, timestamps1.get(1), 100, timestamps1.get(2), 100);
hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps1, levels1));
+ new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap1, timestamps1));
// Adds the day 2 data.
hourlyBatteryLevelsPerDay.add(null);
// Adds the day 3 data.
final List<Long> timestamps2 = List.of(5L, 6L);
- final List<Integer> levels2 = List.of(100, 100);
+ final Map<Long, Integer> batteryLevelMap2 =
+ Map.of(timestamps2.get(0), 100, timestamps2.get(1), 100);
hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps2, levels2));
+ new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap2, timestamps2));
// Fake current usage data.
final UsageEvents.Event event1 =
getUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED, /*timestamp=*/ 1, packageName);
@@ -171,10 +201,18 @@
cursor.addRow(new Object[] {
AppUsageEventType.ACTIVITY_STOPPED.getNumber(), /*timestamp=*/ 6, /*userId=*/ 1,
/*instanceId=*/ 2, packageName});
- DatabaseUtils.sFakeSupplier = () -> cursor;
+ DatabaseUtils.sFakeSupplier = new Supplier<>() {
+ private int mTimes = 0;
+ @Override
+ public Cursor get() {
+ mTimes++;
+ return mTimes <= 2 ? null : cursor;
+ }
+ };
final DataProcessManager dataProcessManager = new DataProcessManager(
- mContext, /*handler=*/ null, /*rawStartTimestamp=*/ 2L, /*callbackFunction=*/ null,
+ mContext, /*handler=*/ null, /*rawStartTimestamp=*/ 2L,
+ /*lastFullChargeTimestamp=*/ 1L, /*callbackFunction=*/ null,
hourlyBatteryLevelsPerDay, /*batteryHistoryMap=*/ new HashMap<>());
dataProcessManager.start();
@@ -224,6 +262,7 @@
}
@Test
+ @LooperMode(LooperMode.Mode.LEGACY)
public void start_currentUserLocked_emptyAppUsageList() throws RemoteException {
final UsageEvents.Event event =
getUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED, /*timestamp=*/ 1, "package");
@@ -250,16 +289,18 @@
}
@Test
+ @LooperMode(LooperMode.Mode.LEGACY)
public void getBatteryLevelData_emptyHistoryMap_returnNull() {
assertThat(DataProcessManager.getBatteryLevelData(
mContext,
/*handler=*/ null,
- /*batteryHistoryMap=*/ null,
- /*asyncResponseDelegate=*/ null))
- .isNull();
+ /*isFromPeriodJob=*/ false,
+ /*asyncResponseDelegate=*/ null)).isNull();
assertThat(DataProcessManager.getBatteryLevelData(
- mContext, /*handler=*/ null, new HashMap<>(), /*asyncResponseDelegate=*/ null))
- .isNull();
+ mContext,
+ /*handler=*/ null,
+ /*isFromPeriodJob=*/ true,
+ /*asyncResponseDelegate=*/ null)).isNull();
}
@Test
@@ -270,18 +311,16 @@
DateUtils.HOUR_IN_MILLIS * 2 - 200L,
DateUtils.HOUR_IN_MILLIS * 2 - 100L};
final int[] levels = {100, 99, 98};
- final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
- createHistoryMap(timestamps, levels);
+ DataProcessManager.sFakeBatteryHistoryMap = createHistoryMap(timestamps, levels);
DataProcessor.sTestCurrentTimeMillis = timestamps[timestamps.length - 1];
final BatteryLevelData resultData =
DataProcessManager.getBatteryLevelData(
mContext,
/*handler=*/ null,
- batteryHistoryMap,
+ /*isFromPeriodJob=*/ false,
/*asyncResponseDelegate=*/ null);
-
final List<Long> expectedDailyTimestamps = List.of(
DateUtils.HOUR_IN_MILLIS * 2 - 300L,
DateUtils.HOUR_IN_MILLIS * 2 - 100L);
@@ -301,15 +340,14 @@
// Timezone GMT+8: 2022-01-01 00:00:00, 2022-01-01 01:00:00
final long[] timestamps = {1640966400000L, 1640970000000L};
final int[] levels = {100, 99};
- final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
- createHistoryMap(timestamps, levels);
+ DataProcessManager.sFakeBatteryHistoryMap = createHistoryMap(timestamps, levels);
DataProcessor.sTestCurrentTimeMillis = timestamps[timestamps.length - 1];
final BatteryLevelData resultData =
DataProcessManager.getBatteryLevelData(
mContext,
/*handler=*/ null,
- batteryHistoryMap,
+ /*isFromPeriodJob=*/ false,
/*asyncResponseDelegate=*/ null);
final List<Long> expectedDailyTimestamps = List.of(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
index c9b635e..c4394f7 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
@@ -16,6 +16,9 @@
package com.android.settings.fuelgauge.batteryusage;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.FAKE_PACKAGE_NAME;
+import static com.android.settingslib.fuelgauge.BatteryStatus.BATTERY_LEVEL_UNKNOWN;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.anyInt;
@@ -42,6 +45,7 @@
import android.os.Parcel;
import android.os.RemoteException;
import android.os.UserManager;
+import android.util.ArrayMap;
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.testutils.FakeFeatureFactory;
@@ -188,16 +192,18 @@
final String packageName = "com.android.settings";
// Adds the day 1 data.
final List<Long> timestamps1 = List.of(14400000L, 18000000L, 21600000L);
- final List<Integer> levels1 = List.of(100, 100, 100);
+ final Map<Long, Integer> batteryLevelMap1 =
+ Map.of(timestamps1.get(0), 100, timestamps1.get(1), 100, timestamps1.get(2), 100);
hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps1, levels1));
+ new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap1, timestamps1));
// Adds the day 2 data.
hourlyBatteryLevelsPerDay.add(null);
// Adds the day 3 data.
final List<Long> timestamps2 = List.of(45200000L, 48800000L);
- final List<Integer> levels2 = List.of(100, 100);
+ final Map<Long, Integer> batteryLevelMap2 =
+ Map.of(timestamps2.get(0), 100, timestamps2.get(1), 100);
hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps2, levels2));
+ new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap2, timestamps2));
final List<AppUsageEvent> appUsageEventList = new ArrayList<>();
// Adds some events before the start timestamp.
appUsageEventList.add(buildAppUsageEvent(
@@ -285,7 +291,7 @@
final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
new ArrayList<>();
hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(new ArrayList<>(), new ArrayList<>()));
+ new BatteryLevelData.PeriodBatteryLevelData(new ArrayMap<>(), new ArrayList<>()));
assertThat(DataProcessor.generateAppUsagePeriodMap(
mContext, hourlyBatteryLevelsPerDay, new ArrayList<>(), new ArrayList<>()))
.isNull();
@@ -371,19 +377,6 @@
}
@Test
- public void getLevelDataThroughProcessedHistoryMap_notEnoughData_returnNull() {
- final long[] timestamps = {100L};
- final int[] levels = {100};
- final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
- createHistoryMap(timestamps, levels);
- DataProcessor.sTestCurrentTimeMillis = timestamps[timestamps.length - 1];
-
- assertThat(
- DataProcessor.getLevelDataThroughProcessedHistoryMap(mContext, batteryHistoryMap))
- .isNull();
- }
-
- @Test
public void getLevelDataThroughProcessedHistoryMap_OneDayData_returnExpectedResult() {
// Timezone GMT+8
final long[] timestamps = {
@@ -441,7 +434,7 @@
);
final List<Integer> expectedDailyLevels = new ArrayList<>();
expectedDailyLevels.add(100);
- expectedDailyLevels.add(null);
+ expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
expectedDailyLevels.add(82);
final List<List<Long>> expectedHourlyTimestamps = List.of(
List.of(
@@ -459,13 +452,13 @@
);
final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
expectedHourlyLevels1.add(100);
- expectedHourlyLevels1.add(null);
- expectedHourlyLevels1.add(null);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
final List<Integer> expectedHourlyLevels2 = new ArrayList<>();
- expectedHourlyLevels2.add(null);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
expectedHourlyLevels2.add(94);
expectedHourlyLevels2.add(90);
- expectedHourlyLevels2.add(null);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
expectedHourlyLevels2.add(82);
final List<List<Integer>> expectedHourlyLevels = List.of(
expectedHourlyLevels1,
@@ -503,8 +496,8 @@
);
final List<Integer> expectedDailyLevels = new ArrayList<>();
expectedDailyLevels.add(100);
- expectedDailyLevels.add(null);
- expectedDailyLevels.add(null);
+ expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
+ expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
expectedDailyLevels.add(88);
final List<List<Long>> expectedHourlyTimestamps = List.of(
List.of(
@@ -542,32 +535,32 @@
);
final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
expectedHourlyLevels1.add(100);
- expectedHourlyLevels1.add(null);
- expectedHourlyLevels1.add(null);
- expectedHourlyLevels1.add(null);
- expectedHourlyLevels1.add(null);
- expectedHourlyLevels1.add(null);
- expectedHourlyLevels1.add(null);
- expectedHourlyLevels1.add(null);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
final List<Integer> expectedHourlyLevels2 = new ArrayList<>();
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
final List<Integer> expectedHourlyLevels3 = new ArrayList<>();
- expectedHourlyLevels3.add(null);
- expectedHourlyLevels3.add(null);
- expectedHourlyLevels3.add(null);
+ expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
expectedHourlyLevels3.add(88);
final List<List<Integer>> expectedHourlyLevels = List.of(
expectedHourlyLevels1,
@@ -606,8 +599,8 @@
);
final List<Integer> expectedDailyLevels = new ArrayList<>();
expectedDailyLevels.add(100);
- expectedDailyLevels.add(null);
- expectedDailyLevels.add(null);
+ expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
+ expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
expectedDailyLevels.add(88);
final List<List<Long>> expectedHourlyTimestamps = List.of(
List.of(
@@ -638,25 +631,25 @@
);
final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
expectedHourlyLevels1.add(100);
- expectedHourlyLevels1.add(null);
+ expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
final List<Integer> expectedHourlyLevels2 = new ArrayList<>();
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
- expectedHourlyLevels2.add(null);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
final List<Integer> expectedHourlyLevels3 = new ArrayList<>();
- expectedHourlyLevels3.add(null);
- expectedHourlyLevels3.add(null);
- expectedHourlyLevels3.add(null);
+ expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
+ expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
expectedHourlyLevels3.add(88);
final List<List<Integer>> expectedHourlyLevels = List.of(
expectedHourlyLevels1,
@@ -735,141 +728,6 @@
}
@Test
- public void getDailyTimestamps_notEnoughData_returnEmptyList() {
- assertThat(DataProcessor.getDailyTimestamps(new ArrayList<>())).isEmpty();
- assertThat(DataProcessor.getDailyTimestamps(List.of(100L))).isEmpty();
- }
-
- @Test
- public void getDailyTimestamps_allDataInOneHour_returnExpectedList() {
- // Timezone GMT+8
- final List<Long> timestamps = List.of(
- 1640970006000L, // 2022-01-01 01:00:06
- 1640973608000L // 2022-01-01 01:00:08
- );
-
- final List<Long> expectedTimestamps = List.of(
- 1640970006000L, // 2022-01-01 01:00:06
- 1640973608000L // 2022-01-01 01:00:08
- );
- assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
- }
-
- @Test
- public void getDailyTimestamps_OneHourDataPerDay_returnExpectedList() {
- // Timezone GMT+8
- final List<Long> timestamps = List.of(
- 1641049200000L, // 2022-01-01 23:00:00
- 1641052800000L, // 2022-01-02 00:00:00
- 1641056400000L // 2022-01-02 01:00:00
- );
-
- final List<Long> expectedTimestamps = List.of(
- 1641049200000L, // 2022-01-01 23:00:00
- 1641052800000L, // 2022-01-02 00:00:00
- 1641056400000L // 2022-01-02 01:00:00
- );
- assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
- }
-
- @Test
- public void getDailyTimestamps_OneDayData_returnExpectedList() {
- // Timezone GMT+8
- final List<Long> timestamps = List.of(
- 1640966400000L, // 2022-01-01 00:00:00
- 1640970000000L, // 2022-01-01 01:00:00
- 1640973600000L, // 2022-01-01 02:00:00
- 1640977200000L, // 2022-01-01 03:00:00
- 1640980800000L // 2022-01-01 04:00:00
- );
-
- final List<Long> expectedTimestamps = List.of(
- 1640966400000L, // 2022-01-01 00:00:00
- 1640980800000L // 2022-01-01 04:00:00
- );
- assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
- }
-
- @Test
- public void getDailyTimestamps_MultipleDaysData_returnExpectedList() {
- // Timezone GMT+8
- final List<Long> timestamps = List.of(
- 1641045600000L, // 2022-01-01 22:00:00
- 1641060000000L, // 2022-01-02 02:00:00
- 1641160800000L, // 2022-01-03 06:00:00
- 1641232800000L // 2022-01-04 02:00:00
- );
-
- final List<Long> expectedTimestamps = List.of(
- 1641045600000L, // 2022-01-01 22:00:00
- 1641052800000L, // 2022-01-02 00:00:00
- 1641139200000L, // 2022-01-03 00:00:00
- 1641225600000L, // 2022-01-04 00:00:00
- 1641232800000L // 2022-01-04 02:00:00
- );
- assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
- }
-
- @Test
- public void getDailyTimestamps_FirstDayOneHourData_returnExpectedList() {
- // Timezone GMT+8
- final List<Long> timestamps = List.of(
- 1641049200000L, // 2022-01-01 23:00:00
- 1641060000000L, // 2022-01-02 02:00:00
- 1641160800000L, // 2022-01-03 06:00:00
- 1641254400000L // 2022-01-04 08:00:00
- );
-
- final List<Long> expectedTimestamps = List.of(
- 1641049200000L, // 2022-01-01 23:00:00
- 1641052800000L, // 2022-01-02 00:00:00
- 1641139200000L, // 2022-01-03 00:00:00
- 1641225600000L, // 2022-01-04 00:00:00
- 1641254400000L // 2022-01-04 08:00:00
- );
- assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
- }
-
- @Test
- public void getDailyTimestamps_LastDayNoData_returnExpectedList() {
- // Timezone GMT+8
- final List<Long> timestamps = List.of(
- 1640988000000L, // 2022-01-01 06:00:00
- 1641060000000L, // 2022-01-02 02:00:00
- 1641160800000L, // 2022-01-03 06:00:00
- 1641225600000L // 2022-01-04 00:00:00
- );
-
- final List<Long> expectedTimestamps = List.of(
- 1640988000000L, // 2022-01-01 06:00:00
- 1641052800000L, // 2022-01-02 00:00:00
- 1641139200000L, // 2022-01-03 00:00:00
- 1641225600000L // 2022-01-04 00:00:00
- );
- assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
- }
-
- @Test
- public void getDailyTimestamps_LastDayOneHourData_returnExpectedList() {
- // Timezone GMT+8
- final List<Long> timestamps = List.of(
- 1640988000000L, // 2022-01-01 06:00:00
- 1641060000000L, // 2022-01-02 02:00:00
- 1641160800000L, // 2022-01-03 06:00:00
- 1641229200000L // 2022-01-04 01:00:00
- );
-
- final List<Long> expectedTimestamps = List.of(
- 1640988000000L, // 2022-01-01 06:00:00
- 1641052800000L, // 2022-01-02 00:00:00
- 1641139200000L, // 2022-01-03 00:00:00
- 1641225600000L, // 2022-01-04 00:00:00
- 1641229200000L // 2022-01-04 01:00:00
- );
- assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
- }
-
- @Test
public void isFromFullCharge_emptyData_returnFalse() {
assertThat(DataProcessor.isFromFullCharge(null)).isFalse();
assertThat(DataProcessor.isFromFullCharge(new HashMap<>())).isFalse();
@@ -916,20 +774,53 @@
}
@Test
- public void getBatteryUsageMap_emptyHistoryMap_returnNull() {
+ public void getBatteryDiffDataMap_emptyHistoryMap_returnEmpty() {
final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
new ArrayList<>();
hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(new ArrayList<>(), new ArrayList<>()));
+ new BatteryLevelData.PeriodBatteryLevelData(new ArrayMap<>(), new ArrayList<>()));
- assertThat(DataProcessor.getBatteryUsageMap(
- mContext, hourlyBatteryLevelsPerDay, new HashMap<>(), /*appUsagePeriodMap=*/ null))
- .isNull();
+ assertThat(DataProcessor.getBatteryDiffDataMap(mContext, hourlyBatteryLevelsPerDay,
+ new HashMap<>(), /*appUsagePeriodMap=*/ null, Set.of(), Set.of())).isEmpty();
}
@Test
- public void getBatteryUsageMap_returnsExpectedResult() {
+ public void getBatteryDiffDataMap_normalFlow_returnExpectedResult() {
+ final int userId = mContext.getUserId();
+ final long[] batteryHistoryKeys = new long[]{
+ 1641045600000L, // 2022-01-01 22:00:00
+ 1641049200000L, // 2022-01-01 23:00:00
+ 1641052800000L, // 2022-01-02 00:00:00
+ };
+ final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = Map.of(
+ batteryHistoryKeys[0], Map.of(FAKE_PACKAGE_NAME, createBatteryHistEntry(
+ FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0, 0, 0,
+ 0, 0, 0L, userId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, 0L, 0L, false)),
+ batteryHistoryKeys[1], Map.of(FAKE_PACKAGE_NAME, createBatteryHistEntry(
+ FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 5, 0, 0,
+ 0, 0, 0L, userId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, 0L, 0L, false)),
+ batteryHistoryKeys[2], Map.of(FAKE_PACKAGE_NAME, createBatteryHistEntry(
+ FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 16, 0, 0,
+ 0, 0, 0L, userId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, 0L, 0L, false)));
+ final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
+ final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
+ appUsagePeriodMap = Map.of(0, Map.of(0, Map.of(Long.valueOf(userId), Map.of(
+ FAKE_PACKAGE_NAME, List.of(buildAppUsagePeriod(0, 6))))));
+
+ Map<Long, BatteryDiffData> batteryDiffDataMap = DataProcessor.getBatteryDiffDataMap(
+ mContext, batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+ appUsagePeriodMap, Set.of(), Set.of());
+
+ assertThat(batteryDiffDataMap).hasSize(1);
+ assertThat(batteryDiffDataMap).containsKey(batteryHistoryKeys[0]);
+ BatteryDiffData batteryDiffData = batteryDiffDataMap.get(batteryHistoryKeys[0]);
+ assertThat(batteryDiffData.getStartTimestamp()).isEqualTo(batteryHistoryKeys[0]);
+ assertThat(batteryDiffData.getEndTimestamp()).isEqualTo(batteryHistoryKeys[2]);
+ }
+
+ @Test
+ public void generateBatteryUsageMap_returnsExpectedResult() {
final long[] batteryHistoryKeys = new long[]{
1641045600000L, // 2022-01-01 22:00:00
1641049200000L, // 2022-01-01 23:00:00
@@ -940,7 +831,7 @@
final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
final int currentUserId = mContext.getUserId();
final BatteryHistEntry fakeEntry = createBatteryHistEntry(
- ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0,
+ FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0,
/*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
/*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
/*uid=*/ 0L, currentUserId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
@@ -1030,19 +921,7 @@
entryMap.put(entry.getKey(), entry);
entryMap.put(fakeEntry.getKey(), fakeEntry);
batteryHistoryMap.put(batteryHistoryKeys[4], entryMap);
- final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
- new ArrayList<>();
- // Adds the day 1 data.
- List<Long> timestamps =
- List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
- final List<Integer> levels = List.of(100, 100);
- hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
- // Adds the day 2 data.
- timestamps = List.of(batteryHistoryKeys[2], batteryHistoryKeys[4]);
- hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
-
+ final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
// Adds app usage data to test screen on time.
final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
appUsagePeriodMap = new HashMap<>();
@@ -1066,8 +945,12 @@
appUsagePeriodMap.get(1).put(0, appUsageMap);
final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
- DataProcessor.getBatteryUsageMap(
- mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap, appUsagePeriodMap);
+ DataProcessor.generateBatteryUsageMap(
+ mContext,
+ DataProcessor.getBatteryDiffDataMap(mContext,
+ batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+ appUsagePeriodMap, Set.of(), Set.of()),
+ batteryLevelData);
BatteryDiffData resultDiffData =
resultMap
@@ -1128,7 +1011,7 @@
}
@Test
- public void getBatteryUsageMap_multipleUsers_returnsExpectedResult() {
+ public void generateBatteryUsageMap_multipleUsers_returnsExpectedResult() {
final long[] batteryHistoryKeys = new long[]{
1641052800000L, // 2022-01-02 00:00:00
1641056400000L, // 2022-01-02 01:00:00
@@ -1217,17 +1100,15 @@
/*backgroundUsageTimeInMs=*/ 30L, /*isHidden=*/ false);
entryMap.put(entry.getKey(), entry);
batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
- final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
- new ArrayList<>();
- List<Long> timestamps = List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
- final List<Integer> levels = List.of(100, 100);
- hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
+ final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
- DataProcessor.getBatteryUsageMap(
- mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap,
- /*appUsagePeriodMap=*/ null);
+ DataProcessor.generateBatteryUsageMap(
+ mContext,
+ DataProcessor.getBatteryDiffDataMap(mContext,
+ batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+ /*appUsagePeriodMap=*/ null, Set.of(), Set.of()),
+ batteryLevelData);
final BatteryDiffData resultDiffData =
resultMap
@@ -1247,7 +1128,7 @@
}
@Test
- public void getBatteryUsageMap_usageTimeExceed_returnsExpectedResult() {
+ public void generateBatteryUsageMap_usageTimeExceed_returnsExpectedResult() {
final long[] batteryHistoryKeys = new long[]{
1641052800000L, // 2022-01-02 00:00:00
1641056400000L, // 2022-01-02 01:00:00
@@ -1288,12 +1169,7 @@
/*backgroundUsageTimeInMs=*/ 7200000L, /*isHidden=*/ false);
entryMap.put(entry.getKey(), entry);
batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
- final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
- new ArrayList<>();
- List<Long> timestamps = List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
- final List<Integer> levels = List.of(100, 100);
- hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
+ final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
// Adds app usage data to test screen on time.
final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
@@ -1307,8 +1183,12 @@
appUsagePeriodMap.get(0).put(0, appUsageMap);
final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
- DataProcessor.getBatteryUsageMap(
- mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap, appUsagePeriodMap);
+ DataProcessor.generateBatteryUsageMap(
+ mContext,
+ DataProcessor.getBatteryDiffDataMap(mContext,
+ batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+ appUsagePeriodMap, Set.of(), Set.of()),
+ batteryLevelData);
final BatteryDiffData resultDiffData =
resultMap
@@ -1338,7 +1218,7 @@
}
@Test
- public void getBatteryUsageMap_hideApplicationEntries_returnsExpectedResult() {
+ public void generateBatteryUsageMap_hideApplicationEntries_returnsExpectedResult() {
final long[] batteryHistoryKeys = new long[]{
1641052800000L, // 2022-01-02 00:00:00
1641056400000L, // 2022-01-02 01:00:00
@@ -1403,19 +1283,17 @@
/*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
entryMap.put(entry.getKey(), entry);
batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
- final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
- new ArrayList<>();
- List<Long> timestamps = List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
- final List<Integer> levels = List.of(100, 100);
- hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
+ final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
when(mPowerUsageFeatureProvider.getHideApplicationSet())
.thenReturn(Set.of("package1"));
final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
- DataProcessor.getBatteryUsageMap(
- mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap,
- /*appUsagePeriodMap=*/ null);
+ DataProcessor.generateBatteryUsageMap(
+ mContext,
+ DataProcessor.getBatteryDiffDataMap(mContext,
+ batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+ /*appUsagePeriodMap=*/ null, Set.of(), Set.of()),
+ batteryLevelData);
final BatteryDiffData resultDiffData =
resultMap
@@ -1431,7 +1309,7 @@
}
@Test
- public void getBatteryUsageMap_hideBackgroundUsageTime_returnsExpectedResult() {
+ public void generateBatteryUsageMap_hideBackgroundUsageTime_returnsExpectedResult() {
final long[] batteryHistoryKeys = new long[]{
1641052800000L, // 2022-01-02 00:00:00
1641056400000L, // 2022-01-02 01:00:00
@@ -1496,19 +1374,17 @@
/*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
entryMap.put(entry.getKey(), entry);
batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
- final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
- new ArrayList<>();
- List<Long> timestamps = List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
- final List<Integer> levels = List.of(100, 100);
- hourlyBatteryLevelsPerDay.add(
- new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
+ final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
when(mPowerUsageFeatureProvider.getHideBackgroundUsageTimeSet())
.thenReturn(new HashSet(Arrays.asList((CharSequence) "package2")));
final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
- DataProcessor.getBatteryUsageMap(
- mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap,
- /*appUsagePeriodMap=*/ null);
+ DataProcessor.generateBatteryUsageMap(
+ mContext,
+ DataProcessor.getBatteryDiffDataMap(mContext,
+ batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+ /*appUsagePeriodMap=*/ null, Set.of(), Set.of()),
+ batteryLevelData);
final BatteryDiffData resultDiffData =
resultMap
@@ -1523,7 +1399,10 @@
@Test
public void generateBatteryDiffData_emptyBatteryEntryList_returnNull() {
assertThat(DataProcessor.generateBatteryDiffData(mContext,
- DataProcessor.convertToBatteryHistEntry(null, mBatteryUsageStats))).isNull();
+ System.currentTimeMillis(),
+ DataProcessor.convertToBatteryHistEntry(null, mBatteryUsageStats),
+ /* systemAppsPackageNames= */ Set.of(),
+ /* systemAppsUids= */ Set.of())).isNull();
}
@Test
@@ -1574,7 +1453,10 @@
.when(mMockBatteryEntry4).getPowerComponentId();
final BatteryDiffData batteryDiffData = DataProcessor.generateBatteryDiffData(mContext,
- DataProcessor.convertToBatteryHistEntry(batteryEntryList, mBatteryUsageStats));
+ System.currentTimeMillis(),
+ DataProcessor.convertToBatteryHistEntry(batteryEntryList, mBatteryUsageStats),
+ /* systemAppsPackageNames= */ Set.of(),
+ /* systemAppsUids= */ Set.of());
assertBatteryDiffEntry(
batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L,
@@ -2041,9 +1923,9 @@
final double backgroundUsageConsumePower, final double cachedUsageConsumePower,
final long foregroundUsageTimeInMs, final long backgroundUsageTimeInMs,
final long screenOnTimeInMs) {
- assertThat(entry.mBatteryHistEntry.mUserId).isEqualTo(userId);
- assertThat(entry.mBatteryHistEntry.mUid).isEqualTo(uid);
- assertThat(entry.mBatteryHistEntry.mConsumerType).isEqualTo(consumerType);
+ assertThat(entry.mUserId).isEqualTo(userId);
+ assertThat(entry.mUid).isEqualTo(uid);
+ assertThat(entry.mConsumerType).isEqualTo(consumerType);
assertThat(entry.getPercentage()).isEqualTo(consumePercentage);
assertThat(entry.mForegroundUsageConsumePower).isEqualTo(foregroundUsageConsumePower);
assertThat(entry.mForegroundServiceUsageConsumePower)
@@ -2054,4 +1936,12 @@
assertThat(entry.mBackgroundUsageTimeInMs).isEqualTo(backgroundUsageTimeInMs);
assertThat(entry.mScreenOnTimeInMs).isEqualTo(screenOnTimeInMs);
}
+
+ private BatteryLevelData generateBatteryLevelData(long[] timestamps) {
+ Map<Long, Integer> batteryLevelMap = new ArrayMap<>();
+ for (long timestamp : timestamps) {
+ batteryLevelMap.put(timestamp, 100);
+ }
+ return new BatteryLevelData(batteryLevelMap);
+ }
}
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 8a1ba13..12bd457 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
@@ -22,6 +22,8 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -36,6 +38,7 @@
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.MatrixCursor;
+import android.net.Uri;
import android.os.BatteryManager;
import android.os.BatteryUsageStats;
import android.os.RemoteException;
@@ -173,8 +176,8 @@
doReturn(null).when(mContext).registerReceiver(any(), any());
assertThat(
DatabaseUtils.sendBatteryEntryData(
- mContext, /*batteryEntryList=*/ null, mBatteryUsageStats,
- /*isFullChargeStart=*/ false))
+ mContext, System.currentTimeMillis(), /*batteryEntryList=*/ null,
+ mBatteryUsageStats, /*isFullChargeStart=*/ false))
.isNull();
}
@@ -193,7 +196,10 @@
final List<ContentValues> valuesList =
DatabaseUtils.sendBatteryEntryData(
- mContext, batteryEntryList, mBatteryUsageStats,
+ mContext,
+ System.currentTimeMillis(),
+ batteryEntryList,
+ mBatteryUsageStats,
/*isFullChargeStart=*/ false);
assertThat(valuesList).hasSize(2);
@@ -216,6 +222,7 @@
final List<ContentValues> valuesList =
DatabaseUtils.sendBatteryEntryData(
mContext,
+ System.currentTimeMillis(),
new ArrayList<>(),
mBatteryUsageStats,
/*isFullChargeStart=*/ false);
@@ -235,6 +242,7 @@
final List<ContentValues> valuesList =
DatabaseUtils.sendBatteryEntryData(
mContext,
+ System.currentTimeMillis(),
/*batteryEntryList=*/ null,
mBatteryUsageStats,
/*isFullChargeStart=*/ false);
@@ -254,6 +262,7 @@
final List<ContentValues> valuesList =
DatabaseUtils.sendBatteryEntryData(
mContext,
+ System.currentTimeMillis(),
/*batteryEntryList=*/ null,
/*batteryUsageStats=*/ null,
/*isFullChargeStart=*/ false);
@@ -359,7 +368,7 @@
}
@Test
- public void getHistoryMapSinceLastFullCharge_emptyCursorContent_returnEmptyMap() {
+ public void getHistoryMap_emptyCursorContent_returnEmptyMap() {
final MatrixCursor cursor = new MatrixCursor(
new String[] {
BatteryHistEntry.KEY_UID,
@@ -367,36 +376,33 @@
BatteryHistEntry.KEY_TIMESTAMP});
DatabaseUtils.sFakeSupplier = () -> cursor;
- assertThat(DatabaseUtils.getHistoryMapSinceLastFullCharge(
- mContext, /*calendar=*/ null)).isEmpty();
+ assertThat(DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, 0)).isEmpty();
}
@Test
- public void getHistoryMapSinceLastFullCharge_nullCursor_returnEmptyMap() {
+ public void getHistoryMap_nullCursor_returnEmptyMap() {
DatabaseUtils.sFakeSupplier = () -> null;
- assertThat(DatabaseUtils.getHistoryMapSinceLastFullCharge(
- mContext, /*calendar=*/ null)).isEmpty();
+ assertThat(DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, 0)).isEmpty();
}
@Test
- public void getHistoryMapSinceLastFullCharge_returnExpectedMap() {
+ public void getHistoryMap_returnExpectedMap() {
final Long timestamp1 = Long.valueOf(1001L);
final Long timestamp2 = Long.valueOf(1002L);
final MatrixCursor cursor = getMatrixCursor();
// Adds fake data into the cursor.
cursor.addRow(new Object[] {
- "app name1", timestamp1, 1, ConvertUtils.CONSUMER_TYPE_UID_BATTERY});
+ "app name1", timestamp1, 1, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, true});
cursor.addRow(new Object[] {
- "app name2", timestamp2, 2, ConvertUtils.CONSUMER_TYPE_UID_BATTERY});
+ "app name2", timestamp2, 2, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false});
cursor.addRow(new Object[] {
- "app name3", timestamp2, 3, ConvertUtils.CONSUMER_TYPE_UID_BATTERY});
+ "app name3", timestamp2, 3, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false});
cursor.addRow(new Object[] {
- "app name4", timestamp2, 4, ConvertUtils.CONSUMER_TYPE_UID_BATTERY});
+ "app name4", timestamp2, 4, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false});
DatabaseUtils.sFakeSupplier = () -> cursor;
final Map<Long, Map<String, BatteryHistEntry>> batteryHistMap =
- DatabaseUtils.getHistoryMapSinceLastFullCharge(
- mContext, /*calendar=*/ null);
+ DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, timestamp1);
assertThat(batteryHistMap).hasSize(2);
// Verifies the BatteryHistEntry data for timestamp1.
@@ -412,7 +418,7 @@
}
@Test
- public void getHistoryMapSinceLastFullCharge_withWorkProfile_returnExpectedMap()
+ public void getHistoryMap_withWorkProfile_returnExpectedMap()
throws PackageManager.NameNotFoundException {
doReturn("com.fake.package").when(mContext).getPackageName();
doReturn(mMockContext).when(mContext).createPackageContextAsUser(
@@ -425,8 +431,7 @@
DatabaseUtils.sFakeSupplier = () -> getMatrixCursor();
final Map<Long, Map<String, BatteryHistEntry>> batteryHistMap =
- DatabaseUtils.getHistoryMapSinceLastFullCharge(
- mContext, /*calendar=*/ null);
+ DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, 0);
assertThat(batteryHistMap).isEmpty();
}
@@ -528,6 +533,19 @@
assertThat(dumpContent.contains("LastUploadFullChargeTime")).isTrue();
}
+ @Test
+ public void loadFromContentProvider_workProfile_transferToUserProfile() throws Exception {
+ // Test to verify b/297036263
+ doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
+ doReturn(true).when(mUserManager).isManagedProfile();
+ doReturn(UserHandle.CURRENT).when(mContext).getUser();
+ doReturn(UserHandle.SYSTEM).when(mUserManager).getProfileParent(UserHandle.CURRENT);
+
+ DatabaseUtils.loadFromContentProvider(mContext, Uri.EMPTY, null, cursor -> 1);
+
+ verify(mContext).createPackageContextAsUser(anyString(), anyInt(), any());
+ }
+
private static void verifyBatteryEntryContentValues(
double consumedPower, ContentValues values) {
final BatteryInformation batteryInformation =
@@ -571,6 +589,7 @@
BatteryHistEntry.KEY_PACKAGE_NAME,
BatteryHistEntry.KEY_TIMESTAMP,
BatteryHistEntry.KEY_UID,
- BatteryHistEntry.KEY_CONSUMER_TYPE});
+ BatteryHistEntry.KEY_CONSUMER_TYPE,
+ BatteryHistEntry.KEY_IS_FULL_CHARGE_CYCLE_START});
}
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java
index 6ed10cd..68766e6 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java
@@ -135,11 +135,6 @@
}
@Override
- protected boolean isBatteryHistoryNeeded() {
- return false;
- }
-
- @Override
protected void refreshUi(int refreshType) {
// Do nothing
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java
index e44d92c..579d4a9 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java
@@ -70,6 +70,9 @@
// TODO: Improve this test class so that it starts up the real activity and fragment.
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class PowerUsageSummaryTest {
private static Intent sAdditionalBatteryInfoIntent;
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 941f444..8462867 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
@@ -16,6 +16,10 @@
package com.android.settings.fuelgauge.batteryusage.db;
+import static com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity.KEY_BATTERY_EVENT_TYPE;
+import static com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity.KEY_BATTERY_LEVEL;
+import static com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity.KEY_TIMESTAMP;
+
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
@@ -31,9 +35,14 @@
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
+import java.util.List;
+
/** Tests for {@link BatteryEventDao}. */
@RunWith(RobolectricTestRunner.class)
public final class BatteryEventDaoTest {
+ private static final long TIMESTAMP1 = System.currentTimeMillis();
+ private static final long TIMESTAMP2 = TIMESTAMP1 + 2;
+
private Context mContext;
private BatteryStateDatabase mDatabase;
private BatteryEventDao mBatteryEventDao;
@@ -51,8 +60,44 @@
BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
}
+
@Test
- public void getAllAfter_returnExpectedResult() {
+ public void getLastFullChargeTimestamp_normalFlow_expectedBehavior() throws Exception {
+ mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+ .setTimestamp(TIMESTAMP1)
+ .setBatteryEventType(3)
+ .setBatteryLevel(100)
+ .build());
+ mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+ .setTimestamp(TIMESTAMP2)
+ .setBatteryEventType(4)
+ .setBatteryLevel(96)
+ .build());
+
+ final Cursor cursor = mBatteryEventDao.getLastFullChargeTimestamp();
+ assertThat(cursor.getCount()).isEqualTo(1);
+ cursor.moveToFirst();
+ assertThat(cursor.getLong(0)).isEqualTo(TIMESTAMP1);
+ }
+
+ @Test
+ public void getLastFullChargeTimestamp_noLastFullChargeTime_returns0() throws Exception {
+ mBatteryEventDao.clearAll();
+ mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+ .setTimestamp(TIMESTAMP2)
+ .setBatteryEventType(4)
+ .setBatteryLevel(96)
+ .build());
+
+ final Cursor cursor = mBatteryEventDao.getLastFullChargeTimestamp();
+
+ assertThat(cursor.getCount()).isEqualTo(1);
+ cursor.moveToFirst();
+ assertThat(cursor.getLong(0)).isEqualTo(0L);
+ }
+
+ @Test
+ public void getAllAfter_normalFlow_returnExpectedResult() {
mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
.setTimestamp(100L)
.setBatteryEventType(1)
@@ -64,17 +109,44 @@
.setBatteryLevel(88)
.build());
- final Cursor cursor = mBatteryEventDao.getAllAfter(160L);
+ final Cursor cursor = mBatteryEventDao.getAllAfter(160L, List.of(1, 2));
assertThat(cursor.getCount()).isEqualTo(1);
cursor.moveToFirst();
- assertThat(cursor.getLong(cursor.getColumnIndex(BatteryEventEntity.KEY_TIMESTAMP)))
+ assertThat(cursor.getLong(cursor.getColumnIndex(KEY_TIMESTAMP)))
.isEqualTo(200L);
- assertThat(cursor.getInt(cursor.getColumnIndex(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE)))
+ assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_EVENT_TYPE)))
.isEqualTo(2);
- assertThat(cursor.getInt(cursor.getColumnIndex(BatteryEventEntity.KEY_BATTERY_LEVEL)))
+ assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_LEVEL)))
.isEqualTo(88);
mBatteryEventDao.clearAll();
assertThat(mBatteryEventDao.getAll()).isEmpty();
}
+
+ @Test
+ public void getAllAfter_filterBatteryTypes_returnExpectedResult() {
+ mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+ .setTimestamp(100L)
+ .setBatteryEventType(1)
+ .setBatteryLevel(66)
+ .build());
+ mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+ .setTimestamp(200L)
+ .setBatteryEventType(2)
+ .setBatteryLevel(88)
+ .build());
+
+ final Cursor cursor = mBatteryEventDao.getAllAfter(0L, List.of(1));
+ assertThat(cursor.getCount()).isEqualTo(1);
+ cursor.moveToFirst();
+ assertThat(cursor.getLong(cursor.getColumnIndex(KEY_TIMESTAMP)))
+ .isEqualTo(100L);
+ assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_EVENT_TYPE)))
+ .isEqualTo(1);
+ assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_LEVEL)))
+ .isEqualTo(66);
+
+ mBatteryEventDao.clearAll();
+ assertThat(mBatteryEventDao.getAll()).isEmpty();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java
index 57cf648..b3dba4e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java
@@ -37,9 +37,10 @@
@RunWith(RobolectricTestRunner.class)
public final class BatteryStateDaoTest {
private static final int CURSOR_COLUMN_SIZE = 9;
- private static final long TIMESTAMP1 = System.currentTimeMillis();
- private static final long TIMESTAMP2 = System.currentTimeMillis() + 2;
- private static final long TIMESTAMP3 = System.currentTimeMillis() + 4;
+ private static final long CURRENT = System.currentTimeMillis();
+ private static final long TIMESTAMP1 = CURRENT;
+ private static final long TIMESTAMP2 = CURRENT + 2;
+ private static final long TIMESTAMP3 = CURRENT + 4;
private static final String PACKAGE_NAME1 = "com.android.apps.settings";
private static final String PACKAGE_NAME2 = "com.android.apps.calendar";
private static final String PACKAGE_NAME3 = "com.android.apps.gmail";
@@ -67,7 +68,7 @@
}
@Test
- public void batteryStateDao_insertAll() throws Exception {
+ public void insertAll_normalFlow_expectedBehavior() throws Exception {
final List<BatteryState> states = mBatteryStateDao.getAllAfter(TIMESTAMP1);
assertThat(states).hasSize(2);
// Verifies the queried battery states.
@@ -76,8 +77,26 @@
}
@Test
- public void batteryStateDao_getCursorSinceLastFullCharge() throws Exception {
- final Cursor cursor1 = mBatteryStateDao.getCursorSinceLastFullCharge(TIMESTAMP1);
+ public void getLatestTimestamp_normalFlow_expectedBehavior() throws Exception {
+ final Cursor cursor1 = mBatteryStateDao.getLatestTimestampBefore(TIMESTAMP1 - 1);
+ assertThat(cursor1.getCount()).isEqualTo(1);
+ cursor1.moveToFirst();
+ assertThat(cursor1.getLong(0)).isEqualTo(0L);
+
+ final Cursor cursor2 = mBatteryStateDao.getLatestTimestampBefore(TIMESTAMP2);
+ assertThat(cursor2.getCount()).isEqualTo(1);
+ cursor2.moveToFirst();
+ assertThat(cursor2.getLong(0)).isEqualTo(TIMESTAMP2);
+
+ final Cursor cursor3 = mBatteryStateDao.getLatestTimestampBefore(TIMESTAMP3 + 1);
+ assertThat(cursor3.getCount()).isEqualTo(1);
+ cursor3.moveToFirst();
+ assertThat(cursor3.getLong(0)).isEqualTo(TIMESTAMP3);
+ }
+
+ @Test
+ public void getBatteryStatesAfter_normalFlow_expectedBehavior() throws Exception {
+ final Cursor cursor1 = mBatteryStateDao.getBatteryStatesAfter(TIMESTAMP1);
assertThat(cursor1.getCount()).isEqualTo(3);
assertThat(cursor1.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
// Verifies the queried first battery state.
@@ -90,7 +109,7 @@
cursor1.moveToNext();
assertThat(cursor1.getString(3 /*packageName*/)).isEqualTo(PACKAGE_NAME3);
- final Cursor cursor2 = mBatteryStateDao.getCursorSinceLastFullCharge(TIMESTAMP3);
+ final Cursor cursor2 = mBatteryStateDao.getBatteryStatesAfter(TIMESTAMP3);
assertThat(cursor2.getCount()).isEqualTo(1);
assertThat(cursor2.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
// Verifies the queried first battery state.
@@ -99,25 +118,7 @@
}
@Test
- public void batteryStateDao_getCursorSinceLastFullCharge_noFullChargeData_returnSevenDaysData()
- throws Exception {
- mBatteryStateDao.clearAll();
- BatteryTestUtils.insertDataToBatteryStateTable(mContext, TIMESTAMP3, PACKAGE_NAME3);
- BatteryTestUtils.insertDataToBatteryStateTable(mContext, TIMESTAMP2, PACKAGE_NAME2);
- BatteryTestUtils.insertDataToBatteryStateTable(mContext, TIMESTAMP1, PACKAGE_NAME1);
- final Cursor cursor = mBatteryStateDao.getCursorSinceLastFullCharge(TIMESTAMP2);
- assertThat(cursor.getCount()).isEqualTo(2);
- assertThat(cursor.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
- // Verifies the queried first battery state.
- cursor.moveToFirst();
- assertThat(cursor.getString(3 /*packageName*/)).isEqualTo(PACKAGE_NAME2);
- // Verifies the queried third battery state.
- cursor.moveToNext();
- assertThat(cursor.getString(3 /*packageName*/)).isEqualTo(PACKAGE_NAME3);
- }
-
- @Test
- public void batteryStateDao_clearAllBefore() throws Exception {
+ public void clearAllBefore_normalFlow_expectedBehavior() throws Exception {
mBatteryStateDao.clearAllBefore(TIMESTAMP2);
final List<BatteryState> states = mBatteryStateDao.getAllAfter(0);
@@ -127,20 +128,20 @@
}
@Test
- public void batteryStateDao_clearAll() throws Exception {
+ public void clearAll_normalFlow_expectedBehavior() throws Exception {
assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(3);
mBatteryStateDao.clearAll();
assertThat(mBatteryStateDao.getAllAfter(0)).isEmpty();
}
@Test
- public void getInstance_createNewInstance() throws Exception {
+ public void getInstance_createNewInstance_returnsExpectedResult() throws Exception {
BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
assertThat(BatteryStateDatabase.getInstance(mContext)).isNotNull();
}
@Test
- public void getDistinctTimestampCount_returnsExpectedResult() {
+ public void getDistinctTimestampCount_normalFlow_returnsExpectedResult() {
assertThat(mBatteryStateDao.getDistinctTimestampCount(/*timestamp=*/ 0))
.isEqualTo(3);
assertThat(mBatteryStateDao.getDistinctTimestampCount(TIMESTAMP1))
@@ -148,7 +149,7 @@
}
@Test
- public void getDistinctTimestamps_returnsExpectedResult() {
+ public void getDistinctTimestamps_normalFlow_returnsExpectedResult() {
final List<Long> timestamps =
mBatteryStateDao.getDistinctTimestamps(/*timestamp=*/ 0);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java
new file mode 100644
index 0000000..6f73954
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage.db;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.database.Cursor;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.testutils.BatteryTestUtils;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.List;
+
+/** Tests for {@link BatteryUsageSlotDao}. */
+@RunWith(RobolectricTestRunner.class)
+public final class BatteryUsageSlotDaoTest {
+ private static final int CURSOR_COLUMN_SIZE = 3;
+ private static final long CURRENT = System.currentTimeMillis();
+ private static final long TIMESTAMP1 = CURRENT;
+ private static final long TIMESTAMP2 = CURRENT + 2;
+ private static final String BATTERY_USAGE_SLOT_STRING1 = "BATTERY_USAGE_SLOT_STRING1";
+ private static final String BATTERY_USAGE_SLOT_STRING2 = "BATTERY_USAGE_SLOT_STRING2";
+
+ private Context mContext;
+ private BatteryStateDatabase mDatabase;
+ private BatteryUsageSlotDao mBatteryUsageSlotDao;
+
+ @Before
+ public void setUp() {
+ mContext = ApplicationProvider.getApplicationContext();
+ mDatabase = BatteryTestUtils.setUpBatteryStateDatabase(mContext);
+ mBatteryUsageSlotDao = mDatabase.batteryUsageSlotDao();
+ mBatteryUsageSlotDao.insert(
+ new BatteryUsageSlotEntity(TIMESTAMP1, BATTERY_USAGE_SLOT_STRING1));
+ mBatteryUsageSlotDao.insert(
+ new BatteryUsageSlotEntity(TIMESTAMP2, BATTERY_USAGE_SLOT_STRING2));
+ }
+
+ @After
+ public void closeDb() {
+ mDatabase.close();
+ BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
+ }
+
+ @Test
+ public void getAll_normalFlow_expectedBehavior() throws Exception {
+ final List<BatteryUsageSlotEntity> entities = mBatteryUsageSlotDao.getAll();
+ assertThat(entities).hasSize(2);
+ assertThat(entities.get(0).timestamp).isEqualTo(TIMESTAMP1);
+ assertThat(entities.get(0).batteryUsageSlot).isEqualTo(BATTERY_USAGE_SLOT_STRING1);
+ assertThat(entities.get(1).timestamp).isEqualTo(TIMESTAMP2);
+ assertThat(entities.get(1).batteryUsageSlot).isEqualTo(BATTERY_USAGE_SLOT_STRING2);
+ }
+
+ @Test
+ public void getAllAfter_normalFlow_expectedBehavior() throws Exception {
+ final Cursor cursor1 = mBatteryUsageSlotDao.getAllAfter(TIMESTAMP1);
+ assertThat(cursor1.getCount()).isEqualTo(2);
+ assertThat(cursor1.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
+ cursor1.moveToFirst();
+ assertThat(cursor1.getLong(1 /*timestamp*/)).isEqualTo(TIMESTAMP1);
+ cursor1.moveToNext();
+ assertThat(cursor1.getLong(1 /*timestamp*/)).isEqualTo(TIMESTAMP2);
+
+ final Cursor cursor2 = mBatteryUsageSlotDao.getAllAfter(TIMESTAMP1 + 1);
+ assertThat(cursor2.getCount()).isEqualTo(1);
+ assertThat(cursor2.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
+ cursor2.moveToFirst();
+ assertThat(cursor2.getLong(1 /*timestamp*/)).isEqualTo(TIMESTAMP2);
+ }
+
+ @Test
+ public void clearAllBefore_normalFlow_expectedBehavior() throws Exception {
+ mBatteryUsageSlotDao.clearAllBefore(TIMESTAMP1);
+
+ final List<BatteryUsageSlotEntity> entities = mBatteryUsageSlotDao.getAll();
+ assertThat(entities).hasSize(1);
+ assertThat(entities.get(0).timestamp).isEqualTo(TIMESTAMP2);
+ assertThat(entities.get(0).batteryUsageSlot).isEqualTo(BATTERY_USAGE_SLOT_STRING2);
+ }
+
+ @Test
+ public void clearAll_normalFlow_expectedBehavior() throws Exception {
+ mBatteryUsageSlotDao.clearAll();
+
+ assertThat(mBatteryUsageSlotDao.getAll()).isEmpty();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java
new file mode 100644
index 0000000..ef276eb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage.db;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link BatteryUsageSlotEntity}. */
+@RunWith(RobolectricTestRunner.class)
+public final class BatteryUsageSlotEntityTest {
+
+ @Test
+ public void testBuilder_returnsExpectedResult() {
+ final long timestamp = 10001L;
+ final String batteryUsageSlotString = "batteryUsageSlotString";
+
+ BatteryUsageSlotEntity entity = BatteryUsageSlotEntity
+ .newBuilder()
+ .setTimestamp(timestamp)
+ .setBatteryUsageSlot(batteryUsageSlotString)
+ .build();
+
+ // Verifies the app relative information.
+ assertThat(entity.timestamp).isEqualTo(timestamp);
+ assertThat(entity.batteryUsageSlot).isEqualTo(batteryUsageSlotString);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/BackGestureIndicatorViewTest.java b/tests/robotests/src/com/android/settings/gestures/BackGestureIndicatorViewTest.java
index 8d43aaa..527ea44 100644
--- a/tests/robotests/src/com/android/settings/gestures/BackGestureIndicatorViewTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/BackGestureIndicatorViewTest.java
@@ -29,8 +29,10 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class BackGestureIndicatorViewTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
index 2c16db5..6bb8cd6 100644
--- a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
@@ -48,6 +48,7 @@
import com.android.settings.R;
import com.android.settings.dashboard.suggestions.SuggestionFeatureProviderImpl;
import com.android.settings.testutils.shadow.ShadowActivityEmbeddingUtils;
+import com.android.settings.testutils.shadow.ShadowActivityManager;
import com.android.settings.testutils.shadow.ShadowPasswordUtils;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
@@ -67,12 +68,14 @@
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowUserManager.class,
- SettingsHomepageActivityTest.ShadowSuggestionFeatureProviderImpl.class})
+@Config(shadows = {
+ ShadowUserManager.class,
+ SettingsHomepageActivityTest.ShadowSuggestionFeatureProviderImpl.class,
+ ShadowActivityManager.class,
+})
public class SettingsHomepageActivityTest {
@Before
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java
index 5d5070b..b75240c 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/AbnormalRingerConditionControllerBaseTest.java
@@ -32,8 +32,10 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.LooperMode;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class AbnormalRingerConditionControllerBaseTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java
index 3be65dc..f5f3d59 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/DarkThemeSliceTest.java
@@ -48,8 +48,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowDrawable.class,
+})
public class DarkThemeSliceTest {
@Mock
private BatteryManager mBatteryManager;
diff --git a/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerTest.java b/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerTest.java
index ee5451a..5d67955 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnablerTest.java
@@ -35,8 +35,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class InputMethodAndSubtypeEnablerTest {
private FragmentActivity mActivity;
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java
index 1bf61a4..4806b8a 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardSettingsPreferenceControllerTest.java
@@ -44,12 +44,16 @@
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
/** Tests for {@link KeyboardSettingsPreferenceController} */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowInputManager.class,
+})
public class KeyboardSettingsPreferenceControllerTest {
@Rule
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
index 3c51cf3..bf2d8b0 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadBottomPreferenceControllerTest.java
@@ -18,11 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.UserHandle;
import android.provider.Settings;
@@ -31,33 +26,29 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
/** Tests for {@link TrackpadBottomPreferenceController} */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+})
public class TrackpadBottomPreferenceControllerTest {
- @Rule
- public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "trackpad_bottom_right_tap";
private static final String SETTING_KEY = Settings.System.TOUCHPAD_RIGHT_CLICK_ZONE;
private Context mContext;
private TrackpadBottomPreferenceController mController;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadBottomPreferenceController(mContext, PREFERENCE_KEY);
}
@@ -83,10 +74,6 @@
UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(1);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_BOTTOM_RIGHT_TAP_CHANGED),
- eq(true));
}
@Test
@@ -100,10 +87,6 @@
UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(0);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_BOTTOM_RIGHT_TAP_CHANGED),
- eq(false));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceControllerTest.java
index 85d56ef..0e1705e 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoBackPreferenceControllerTest.java
@@ -18,11 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
@@ -30,33 +25,25 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadGoBackPreferenceController} */
@RunWith(RobolectricTestRunner.class)
public class TrackpadGoBackPreferenceControllerTest {
- @Rule
- public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_go_back";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_BACK_ENABLED;
private Context mContext;
private TrackpadGoBackPreferenceController mController;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadGoBackPreferenceController(mContext, PREFERENCE_KEY);
}
@@ -78,10 +65,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_GO_BACK_CHANGED),
- eq(true));
}
@Test
@@ -91,10 +74,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_GO_BACK_CHANGED),
- eq(false));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceControllerTest.java
index 6b3b3f5..3289bcc 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadGoHomePreferenceControllerTest.java
@@ -18,11 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
@@ -30,33 +25,25 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadGoHomePreferenceController} */
@RunWith(RobolectricTestRunner.class)
public class TrackpadGoHomePreferenceControllerTest {
- @Rule
- public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_go_home";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_HOME_ENABLED;
private Context mContext;
private TrackpadGoHomePreferenceController mController;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadGoHomePreferenceController(mContext, PREFERENCE_KEY);
}
@@ -78,10 +65,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_GO_HOME_CHANGED),
- eq(true));
}
@Test
@@ -91,10 +74,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_GO_HOME_CHANGED),
- eq(false));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceControllerTest.java
index 005bc9f..3df1627 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadNotificationsPreferenceControllerTest.java
@@ -18,11 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
@@ -30,33 +25,25 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadNotificationsPreferenceController} */
@RunWith(RobolectricTestRunner.class)
public class TrackpadNotificationsPreferenceControllerTest {
- @Rule
- public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_notifications";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_NOTIFICATION_ENABLED;
private Context mContext;
private TrackpadNotificationsPreferenceController mController;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadNotificationsPreferenceController(mContext, PREFERENCE_KEY);
}
@@ -78,10 +65,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_NOTIFICATION_CHANGED),
- eq(true));
}
@Test
@@ -91,10 +74,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_NOTIFICATION_CHANGED),
- eq(false));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceControllerTest.java
index 1cfda12..25fd962 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadPointerSpeedPreferenceControllerTest.java
@@ -18,11 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.hardware.input.InputSettings;
import android.os.UserHandle;
@@ -31,21 +26,19 @@
import androidx.test.core.app.ApplicationProvider;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
/** Tests for {@link TrackpadPointerSpeedPreferenceController} */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+})
public class TrackpadPointerSpeedPreferenceControllerTest {
- @Rule
- public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "trackpad_pointer_speed";
private static final String SETTING_KEY = Settings.System.TOUCHPAD_POINTER_SPEED;
@@ -53,12 +46,10 @@
private Context mContext;
private TrackpadPointerSpeedPreferenceController mController;
private int mDefaultSpeed;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadPointerSpeedPreferenceController(mContext, PREFERENCE_KEY);
mDefaultSpeed = Settings.System.getIntForUser(
mContext.getContentResolver(),
@@ -98,10 +89,6 @@
assertThat(result).isTrue();
assertThat(mController.getSliderPosition()).isEqualTo(inputSpeed);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_POINTER_SPEED_CHANGED),
- eq(1));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceControllerTest.java
index 2ef53a6..dbed542 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadRecentAppsPreferenceControllerTest.java
@@ -18,11 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
@@ -30,33 +25,25 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadRecentAppsPreferenceController} */
@RunWith(RobolectricTestRunner.class)
public class TrackpadRecentAppsPreferenceControllerTest {
- @Rule
- public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_recent_apps";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_OVERVIEW_ENABLED;
private Context mContext;
private TrackpadRecentAppsPreferenceController mController;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadRecentAppsPreferenceController(mContext, PREFERENCE_KEY);
}
@@ -78,10 +65,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_RECENT_APPS_CHANGED),
- eq(true));
}
@Test
@@ -91,10 +74,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_RECENT_APPS_CHANGED),
- eq(false));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java
index e74261e..fbe7407 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadReverseScrollingPreferenceControllerTest.java
@@ -18,11 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.UserHandle;
import android.provider.Settings;
@@ -31,33 +26,29 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
/** Tests for {@link TrackpadReverseScrollingPreferenceController} */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+})
public class TrackpadReverseScrollingPreferenceControllerTest {
- @Rule
- public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "trackpad_reverse_scrolling";
private static final String SETTING_KEY = Settings.System.TOUCHPAD_NATURAL_SCROLLING;
private Context mContext;
private TrackpadReverseScrollingPreferenceController mController;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadReverseScrollingPreferenceController(mContext, PREFERENCE_KEY);
}
@@ -83,10 +74,6 @@
UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(0);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_REVERSE_SCROLLING_CHANGED),
- eq(true));
}
@Test
@@ -100,10 +87,6 @@
UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(1);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_REVERSE_SCROLLING_CHANGED),
- eq(false));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceControllerTest.java
index 5e354d2..3f16025 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadSwitchAppsPreferenceControllerTest.java
@@ -18,11 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
@@ -30,33 +25,25 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
/** Tests for {@link TrackpadSwitchAppsPreferenceController} */
@RunWith(RobolectricTestRunner.class)
public class TrackpadSwitchAppsPreferenceControllerTest {
- @Rule
- public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "gesture_switch_apps";
private static final String SETTING_KEY = Settings.Secure.TRACKPAD_GESTURE_QUICK_SWITCH_ENABLED;
private Context mContext;
private TrackpadSwitchAppsPreferenceController mController;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadSwitchAppsPreferenceController(mContext, PREFERENCE_KEY);
}
@@ -78,10 +65,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(1);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_SWITCH_APPS_CHANGED),
- eq(true));
}
@Test
@@ -91,10 +74,6 @@
int result = Settings.Secure.getInt(mContext.getContentResolver(), SETTING_KEY, 1);
assertThat(result).isEqualTo(0);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_SWITCH_APPS_CHANGED),
- eq(false));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java
index 3784cc7..241e3df 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/TrackpadTapToClickPreferenceControllerTest.java
@@ -18,11 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.verify;
-
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.UserHandle;
import android.provider.Settings;
@@ -31,33 +26,29 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
/** Tests for {@link TrackpadTapToClickPreferenceController} */
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowSystemSettings.class,
+})
public class TrackpadTapToClickPreferenceControllerTest {
- @Rule
- public MockitoRule rule = MockitoJUnit.rule();
private static final String PREFERENCE_KEY = "trackpad_tap_to_click";
private static final String SETTING_KEY = Settings.System.TOUCHPAD_TAP_TO_CLICK;
private Context mContext;
private TrackpadTapToClickPreferenceController mController;
- private FakeFeatureFactory mFeatureFactory;
@Before
public void setUp() {
mContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mController = new TrackpadTapToClickPreferenceController(mContext, PREFERENCE_KEY);
}
@@ -83,10 +74,6 @@
UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(1);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_TAP_TO_CLICK_CHANGED),
- eq(true));
}
@Test
@@ -100,10 +87,6 @@
UserHandle.USER_CURRENT);
assertThat(result).isEqualTo(0);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(),
- eq(SettingsEnums.ACTION_GESTURE_TAP_TO_CLICK_CHANGED),
- eq(false));
}
@Test
diff --git a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
index 8fb3a5d..d711ad6 100644
--- a/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/AppLocalePickerActivityTest.java
@@ -18,8 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
@@ -29,17 +27,19 @@
import android.app.Activity;
import android.app.ApplicationPackageManager;
import android.app.LocaleConfig;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.InstallSourceInfo;
import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.net.Uri;
import android.os.LocaleList;
import android.os.Process;
+import android.os.SystemClock;
+import android.os.SystemProperties;
import android.os.UserHandle;
import android.telephony.TelephonyManager;
@@ -48,7 +48,6 @@
import com.android.internal.app.LocaleStore;
import com.android.settings.applications.AppInfoBase;
import com.android.settings.applications.AppLocaleUtil;
-import com.android.settings.testutils.FakeFeatureFactory;
import org.junit.After;
import org.junit.Before;
@@ -71,8 +70,10 @@
import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
+import java.util.Calendar;
import java.util.List;
import java.util.Locale;
+import java.util.Set;
@RunWith(RobolectricTestRunner.class)
@Config(
@@ -83,7 +84,12 @@
public class AppLocalePickerActivityTest {
private static final String TEST_PACKAGE_NAME = "com.android.settings";
private static final Uri TEST_PACKAGE_URI = Uri.parse("package:" + TEST_PACKAGE_NAME);
- private FakeFeatureFactory mFeatureFactory;
+ private static final String EN_CA = "en-CA";
+ private static final String EN_US = "en-US";
+ private static int sUid;
+
+ private LocaleNotificationDataManager mDataManager;
+ private AppLocalePickerActivity mActivity;
@Mock
LocaleStore.LocaleInfo mLocaleInfo;
@@ -104,11 +110,11 @@
when(mLocaleConfig.getStatus()).thenReturn(LocaleConfig.STATUS_SUCCESS);
when(mLocaleConfig.getSupportedLocales()).thenReturn(LocaleList.forLanguageTags("en-US"));
ReflectionHelpers.setStaticField(AppLocaleUtil.class, "sLocaleConfig", mLocaleConfig);
- mFeatureFactory = FakeFeatureFactory.setupForTest();
+ sUid = Process.myUid();
}
@After
- public void tearDown() {
+ public void tearDown() throws Exception {
mPackageManager.removePackage(TEST_PACKAGE_NAME);
ReflectionHelpers.setStaticField(AppLocaleUtil.class, "sLocaleConfig", null);
ShadowResources.setDisAllowPackage(false);
@@ -217,34 +223,256 @@
}
@Test
- public void onLocaleSelected_logLocaleSource() {
- ActivityController<TestAppLocalePickerActivity> controller =
- initActivityController(true);
- LocaleList.setDefault(LocaleList.forLanguageTags("ja-JP,en-CA,en-US"));
- Locale locale = new Locale("en", "US");
- when(mLocaleInfo.getLocale()).thenReturn(locale);
- when(mLocaleInfo.isSystemLocale()).thenReturn(false);
- when(mLocaleInfo.isSuggested()).thenReturn(true);
- when(mLocaleInfo.isSuggestionOfType(LocaleStore.LocaleInfo.SUGGESTION_TYPE_SIM)).thenReturn(
- true);
- when(mLocaleInfo.isSuggestionOfType(
- LocaleStore.LocaleInfo.SUGGESTION_TYPE_SYSTEM_AVAILABLE_LANGUAGE)).thenReturn(
- true);
- when(mLocaleInfo.isSuggestionOfType(
- LocaleStore.LocaleInfo.SUGGESTION_TYPE_OTHER_APP_LANGUAGE)).thenReturn(
- true);
- when(mLocaleInfo.isSuggestionOfType(
- LocaleStore.LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE)).thenReturn(
- true);
-
+ public void onLocaleSelected_evaluateNotification_simpleLocaleUpdate_localeCreatedWithUid()
+ throws Exception {
+ sUid = 100;
+ initLocaleNotificationEnvironment();
+ ActivityController<TestAppLocalePickerActivity> controller = initActivityController(true);
controller.create();
AppLocalePickerActivity mActivity = controller.get();
+ LocaleNotificationDataManager dataManager =
+ NotificationController.getInstance(mActivity).getDataManager();
+
mActivity.onLocaleSelected(mLocaleInfo);
- int localeSource = 15; // SIM_LOCALE | SYSTEM_LOCALE |IME_LOCALE|APP_LOCALE
- verify(mFeatureFactory.metricsFeatureProvider).action(
- any(), eq(SettingsEnums.ACTION_CHANGE_APP_LANGUAGE_FROM_SUGGESTED),
- eq(localeSource));
+ // Notification is not triggered.
+ // In the sharedpreference, en-US's uid list contains uid1 and the notificationCount
+ // equals 0.
+ NotificationInfo info = dataManager.getNotificationInfo(EN_US);
+ assertThat(info.getUidCollection().contains(sUid)).isTrue();
+ assertThat(info.getNotificationCount()).isEqualTo(0);
+ assertThat(info.getDismissCount()).isEqualTo(0);
+ assertThat(info.getLastNotificationTimeMs()).isEqualTo(0);
+
+ SystemProperties.set(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION, "false");
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ @Test
+ public void onLocaleSelected_evaluateNotification_twoLocaleUpdate_triggerNotification()
+ throws Exception {
+ // App with uid 101 changed its locale from System to en-US.
+ sUid = 101;
+ initLocaleNotificationEnvironment();
+ // Initialize the proto to contain en-US locale. Its uid list includes 100.
+ Set<Integer> uidSet = Set.of(100);
+ initSharedPreference(EN_US, uidSet, 0, 0, 0, 0);
+
+ mActivity.onLocaleSelected(mLocaleInfo);
+
+ // Notification is triggered.
+ // In the proto file, en-US's uid list contains 101, the notificationCount equals 1, and
+ // LastNotificationTime > 0.
+ NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+ assertThat(info.getUidCollection()).contains(sUid);
+ assertThat(info.getNotificationCount()).isEqualTo(1);
+ assertThat(info.getDismissCount()).isEqualTo(0);
+ assertThat(info.getLastNotificationTimeMs()).isNotEqualTo(0);
+
+ SystemProperties.set(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION, "false");
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ @Test
+ public void onLocaleSelected_evaluateNotification_oddLocaleUpdate_uidAddedWithoutNotification()
+ throws Exception {
+ // App with uid 102 changed its locale from System to en-US.
+ sUid = 102;
+ initLocaleNotificationEnvironment();
+ // Initialize the proto to include en-US locale. Its uid list includes 100,101 and
+ // the notification count equals 1.
+ int notificationId = (int) SystemClock.uptimeMillis();
+ Set<Integer> uidSet = Set.of(100, 101);
+ initSharedPreference(EN_US, uidSet, 0, 1,
+ Calendar.getInstance().getTimeInMillis(), notificationId);
+
+ mActivity.onLocaleSelected(mLocaleInfo);
+
+ // Notification is not triggered because count % 2 != 0.
+ // In the proto file, en-US's uid list contains 102, the notificationCount equals 1, and
+ // LastNotificationTime > 0.
+ NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+ assertThat(info.getUidCollection()).contains(sUid);
+ assertThat(info.getNotificationCount()).isEqualTo(1);
+ assertThat(info.getDismissCount()).isEqualTo(0);
+ assertThat(info.getLastNotificationTimeMs()).isNotEqualTo(0);
+ assertThat(info.getNotificationId()).isEqualTo(notificationId);
+
+ SystemProperties.set(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION, "false");
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ @Test
+ public void onLocaleSelected_evaluateNotification_frequentLocaleUpdate_uidAddedNoNotification()
+ throws Exception {
+ // App with uid 103 changed its locale from System to en-US.
+ sUid = 103;
+ initLocaleNotificationEnvironment();
+ // Initialize the proto to include en-US locale. Its uid list includes 100,101,102 and
+ // the notification count equals 1.
+ int notificationId = (int) SystemClock.uptimeMillis();
+ Set<Integer> uidSet = Set.of(100, 101, 102);
+ initSharedPreference(EN_US, uidSet, 0, 1,
+ Calendar.getInstance().getTimeInMillis(), notificationId);
+
+ mActivity.onLocaleSelected(mLocaleInfo);
+
+ // Notification is not triggered because the duration is less than the threshold.
+ // In the proto file, en-US's uid list contains 103, the notificationCount equals 1, and
+ // LastNotificationTime > 0.
+ NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+ assertThat(info.getUidCollection().contains(sUid)).isTrue();
+ assertThat(info.getNotificationCount()).isEqualTo(1);
+ assertThat(info.getDismissCount()).isEqualTo(0);
+ assertThat(info.getLastNotificationTimeMs()).isNotEqualTo(0);
+ assertThat(info.getNotificationId()).isEqualTo(notificationId);
+
+ SystemProperties.set(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION, "false");
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ @Test
+ public void onLocaleSelected_evaluateNotification_2ndOddLocaleUpdate_uidAddedNoNotification()
+ throws Exception {
+ // App with uid 104 changed its locale from System to en-US.
+ sUid = 104;
+ initLocaleNotificationEnvironment();
+
+ // Initialize the proto to include en-US locale. Its uid list includes 100,101,102,103 and
+ // the notification count equals 1.
+ int notificationId = (int) SystemClock.uptimeMillis();
+ Set<Integer> uidSet = Set.of(100, 101, 102, 103);
+ initSharedPreference(EN_US, uidSet, 0, 1, Calendar.getInstance().getTimeInMillis(),
+ notificationId);
+
+ mActivity.onLocaleSelected(mLocaleInfo);
+
+ // Notification is not triggered because uid count % 2 != 0
+ // In the proto file, en-US's uid list contains uid4, the notificationCount equals 1, and
+ // LastNotificationTime > 0.
+ NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+ assertThat(info.getUidCollection()).contains(sUid);
+ assertThat(info.getNotificationCount()).isEqualTo(1);
+ assertThat(info.getDismissCount()).isEqualTo(0);
+ assertThat(info.getLastNotificationTimeMs()).isNotEqualTo(0);
+
+ SystemProperties.set(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION, "false");
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ @Test
+ public void testEvaluateLocaleNotification_evenLocaleUpdate_trigger2ndNotification()
+ throws Exception {
+ sUid = 105;
+ initLocaleNotificationEnvironment();
+
+ // Initialize the proto to include en-US locale. Its uid list includes 100,101,102,103,104
+ // and the notification count equals 1.
+ // Eight days later, App with uid 105 changed its locale from System to en-US
+ int notificationId = (int) SystemClock.uptimeMillis();
+ Set<Integer> uidSet = Set.of(100, 101, 102, 103, 104);
+ Calendar now = Calendar.getInstance();
+ now.add(Calendar.DAY_OF_MONTH, -8); // Set the lastNotificationTime to eight days ago.
+ long lastNotificationTime = now.getTimeInMillis();
+ initSharedPreference(EN_US, uidSet, 0, 1, lastNotificationTime, notificationId);
+
+ mActivity.onLocaleSelected(mLocaleInfo);
+
+ // Notification is triggered.
+ // In the proto file, en-US's uid list contains 105, the notificationCount equals 2, and
+ // LastNotificationTime is updated.
+ NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+ assertThat(info.getUidCollection()).contains(sUid);
+ assertThat(info.getNotificationCount()).isEqualTo(2);
+ assertThat(info.getDismissCount()).isEqualTo(0);
+ assertThat(info.getLastNotificationTimeMs()).isGreaterThan(lastNotificationTime);
+
+ SystemProperties.set(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION, "false");
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ @Test
+ public void testEvaluateLocaleNotification_localeUpdateReachThreshold_uidAddedNoNotification()
+ throws Exception {
+ // App with uid 106 changed its locale from System to en-US.
+ sUid = 106;
+ initLocaleNotificationEnvironment();
+ // Initialize the proto to include en-US locale. Its uid list includes
+ // 100,101,102,103,104,105 and the notification count equals 2.
+ int notificationId = (int) SystemClock.uptimeMillis();
+ Set<Integer> uidSet = Set.of(100, 101, 102, 103, 104, 105);
+ Calendar now = Calendar.getInstance();
+ now.add(Calendar.DAY_OF_MONTH, -8);
+ long lastNotificationTime = now.getTimeInMillis();
+ initSharedPreference(EN_US, uidSet, 0, 2, lastNotificationTime, notificationId);
+
+ mActivity.onLocaleSelected(mLocaleInfo);
+
+ // Notification is not triggered because the notification count threshold, 2, is reached.
+ // In the proto file, en-US's uid list contains 106, the notificationCount equals 2, and
+ // LastNotificationTime > 0.
+ NotificationInfo info = mDataManager.getNotificationInfo(EN_US);
+ assertThat(info.getUidCollection()).contains(sUid);
+ assertThat(info.getNotificationCount()).isEqualTo(2);
+ assertThat(info.getDismissCount()).isEqualTo(0);
+ assertThat(info.getLastNotificationTimeMs()).isEqualTo(lastNotificationTime);
+
+ SystemProperties.set(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION, "false");
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ @Test
+ public void testEvaluateLocaleNotification_appChangedLocales_newLocaleCreated()
+ throws Exception {
+ sUid = 100;
+ initLocaleNotificationEnvironment();
+ // App with uid 100 changed its locale from en-US to ja-JP.
+ Locale locale = Locale.forLanguageTag("ja-JP");
+ when(mLocaleInfo.getLocale()).thenReturn(locale);
+ // Initialize the proto to include en-US locale. Its uid list includes
+ // 100,101,102,103,104,105,106 and the notification count equals 2.
+ int notificationId = (int) SystemClock.uptimeMillis();
+ Set<Integer> uidSet = Set.of(100, 101, 102, 103, 104, 105, 106);
+ Calendar now = Calendar.getInstance();
+ now.add(Calendar.DAY_OF_MONTH, -8);
+ initSharedPreference(EN_US, uidSet, 0, 2, now.getTimeInMillis(),
+ notificationId);
+
+ mActivity.onLocaleSelected(mLocaleInfo);
+
+ // Notification is not triggered
+ // In the proto file, a map for ja-JP is created. Its uid list contains uid1.
+ NotificationInfo info = mDataManager.getNotificationInfo("ja-JP");
+ assertThat(info.getUidCollection()).contains(sUid);
+ assertThat(info.getNotificationCount()).isEqualTo(0);
+ assertThat(info.getDismissCount()).isEqualTo(0);
+ assertThat(info.getLastNotificationTimeMs()).isEqualTo(0);
+
+ SystemProperties.set(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION, "false");
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ private void initLocaleNotificationEnvironment() throws Exception {
+ LocaleList.setDefault(LocaleList.forLanguageTags(EN_CA));
+ SystemProperties.set(AppLocalePickerActivity.PROP_SYSTEM_LOCALE_SUGGESTION, "true");
+
+ Locale locale = Locale.forLanguageTag("en-US");
+ when(mLocaleInfo.getLocale()).thenReturn(locale);
+ when(mLocaleInfo.isSystemLocale()).thenReturn(false);
+ when(mLocaleInfo.isAppCurrentLocale()).thenReturn(false);
+
+ ActivityController<TestAppLocalePickerActivity> controller = initActivityController(true);
+ controller.create();
+ mActivity = controller.get();
+ mDataManager = NotificationController.getInstance(mActivity).getDataManager();
+ }
+
+ private void initSharedPreference(String locale, Set<Integer> uidSet, int dismissCount,
+ int notificationCount, long lastNotificationTime, int notificationId)
+ throws Exception {
+ NotificationInfo info = new NotificationInfo(uidSet, notificationCount, dismissCount,
+ lastNotificationTime, notificationId);
+ mDataManager.putNotificationInfo(locale, info);
}
private ActivityController<TestAppLocalePickerActivity> initActivityController(
@@ -253,7 +481,7 @@
if (hasPackageName) {
data.setData(TEST_PACKAGE_URI);
}
- data.putExtra(AppInfoBase.ARG_PACKAGE_UID, Process.myUid());
+ data.putExtra(AppInfoBase.ARG_PACKAGE_UID, sUid);
ActivityController<TestAppLocalePickerActivity> activityController =
Robolectric.buildActivity(TestAppLocalePickerActivity.class, data);
Activity activity = activityController.get();
@@ -296,6 +524,19 @@
private static void setNoLaunchEntry(boolean noLaunchEntry) {
sNoLaunchEntry = noLaunchEntry;
}
+
+ @Implementation
+ protected ApplicationInfo getApplicationInfo(String packageName, int flags)
+ throws NameNotFoundException {
+ if (packageName.equals(TEST_PACKAGE_NAME)) {
+ ApplicationInfo applicationInfo = new ApplicationInfo();
+ applicationInfo.packageName = TEST_PACKAGE_NAME;
+ applicationInfo.uid = sUid;
+ return applicationInfo;
+ } else {
+ return super.getApplicationInfo(packageName, flags);
+ }
+ }
}
@Implements(Resources.class)
diff --git a/tests/robotests/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java b/tests/robotests/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java
index 57f2b01..bb22012 100644
--- a/tests/robotests/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/LocaleDialogFragmentTest.java
@@ -37,7 +37,6 @@
import com.android.internal.app.LocaleStore;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settings.utils.ActivityControllerWrapper;
-import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import org.junit.Before;
import org.junit.Test;
@@ -46,13 +45,14 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import java.util.Locale;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowAlertDialogCompat.class})
+@LooperMode(LooperMode.Mode.LEGACY)
public class LocaleDialogFragmentTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java b/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
index fb7d41a..6de133d 100644
--- a/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
+++ b/tests/robotests/src/com/android/settings/localepicker/LocaleListEditorTest.java
@@ -17,7 +17,8 @@
package com.android.settings.localepicker;
import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
-import static com.android.settings.localepicker.LocaleListEditor.EXTRA_SYSTEM_LOCALE_DIALOG_TYPE;
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_NOTIFICATION_ID;
+import static com.android.settings.localepicker.LocaleDialogFragment.DIALOG_ADD_SYSTEM_LOCALE;
import static com.google.common.truth.Truth.assertThat;
@@ -29,7 +30,6 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
import android.app.IActivityManager;
@@ -44,7 +44,6 @@
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.Button;
import android.widget.CheckBox;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -72,6 +71,7 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
@@ -79,12 +79,19 @@
import java.util.Locale;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowAlertDialogCompat.class, ShadowActivityManager.class})
+@Config(shadows = {
+ ShadowAlertDialogCompat.class,
+ ShadowActivityManager.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
+@LooperMode(LooperMode.Mode.LEGACY)
public class LocaleListEditorTest {
private static final String ARG_DIALOG_TYPE = "arg_dialog_type";
private static final String TAG_DIALOG_CONFIRM_SYSTEM_DEFAULT = "dialog_confirm_system_default";
private static final String TAG_DIALOG_NOT_AVAILABLE = "dialog_not_available_locale";
+ private static final String TAG_DIALOG_ADD_SYSTEM_LOCALE = "dialog_add_system_locale";
+ private static final String EXTRA_SYSTEM_LOCALE_DIALOG_TYPE = "system_locale_dialog_type";
private static final int DIALOG_CONFIRM_SYSTEM_DEFAULT = 1;
private static final int REQUEST_CONFIRM_SYSTEM_DEFAULT = 1;
@@ -126,6 +133,8 @@
private TextView mCurrentDefault;
@Mock
private ImageView mDragHandle;
+ @Mock
+ private NotificationController mNotificationController;
@Before
public void setUp() throws Exception {
@@ -135,6 +144,8 @@
when(mLocaleListEditor.getContext()).thenReturn(mContext);
mActivity = Robolectric.buildActivity(FragmentActivity.class).get();
when(mLocaleListEditor.getActivity()).thenReturn(mActivity);
+ when(mLocaleListEditor.getNotificationController()).thenReturn(
+ mNotificationController);
ReflectionHelpers.setField(mLocaleListEditor, "mEmptyTextView",
new TextView(RuntimeEnvironment.application));
ReflectionHelpers.setField(mLocaleListEditor, "mRestrictionsManager",
@@ -339,24 +350,21 @@
initIntentAndResourceForLocaleDialog();
mLocaleListEditor.onViewStateRestored(null);
- final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
- assertThat(dialog).isNotNull();
- final ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
- assertThat(shadowDialog.getView()).isNotNull();
- TextView message = shadowDialog.getView().findViewById(R.id.dialog_msg);
- assertThat(message.getText().toString()).isEqualTo(
- "This lets apps and websites know you also prefer this language.");
+ verify(mFragmentTransaction).add(any(LocaleDialogFragment.class),
+ eq(TAG_DIALOG_ADD_SYSTEM_LOCALE));
}
@Test
public void showDiallogForAddedLocale_clickAdd() {
initIntentAndResourceForLocaleDialog();
mLocaleListEditor.onViewStateRestored(null);
+ LocaleStore.LocaleInfo info = LocaleStore.fromLocale(Locale.forLanguageTag("en-US"));
+ Bundle bundle = new Bundle();
+ bundle.putInt(ARG_DIALOG_TYPE, DIALOG_ADD_SYSTEM_LOCALE);
+ bundle.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE, info);
+ Intent intent = new Intent().putExtras(bundle);
+ mLocaleListEditor.onActivityResult(DIALOG_ADD_SYSTEM_LOCALE, Activity.RESULT_OK, intent);
- final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
- assertThat(dialog).isNotNull();
- Button positive = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
- positive.performClick();
verify(mAdapter).addLocale(any(LocaleStore.LocaleInfo.class));
}
@@ -364,11 +372,14 @@
public void showDiallogForAddedLocale_clickCancel() {
initIntentAndResourceForLocaleDialog();
mLocaleListEditor.onViewStateRestored(null);
+ LocaleStore.LocaleInfo info = LocaleStore.fromLocale(Locale.forLanguageTag("en-US"));
+ Bundle bundle = new Bundle();
+ bundle.putInt(ARG_DIALOG_TYPE, DIALOG_ADD_SYSTEM_LOCALE);
+ bundle.putSerializable(LocaleDialogFragment.ARG_TARGET_LOCALE, info);
+ Intent intent = new Intent().putExtras(bundle);
+ mLocaleListEditor.onActivityResult(DIALOG_ADD_SYSTEM_LOCALE, Activity.RESULT_CANCELED,
+ intent);
- final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
- assertThat(dialog).isNotNull();
- Button negative = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
- negative.performClick();
verify(mAdapter, never()).addLocale(any(LocaleStore.LocaleInfo.class));
}
@@ -413,25 +424,17 @@
}
private void initIntentAndResourceForLocaleDialog() {
+ int notificationId = 1000;
Intent intent = new Intent("ACTION")
.putExtra(EXTRA_APP_LOCALE, "ja-JP")
- .putExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE, "locale_suggestion");
+ .putExtra(EXTRA_SYSTEM_LOCALE_DIALOG_TYPE, "locale_suggestion")
+ .putExtra(EXTRA_NOTIFICATION_ID, notificationId);
+
mActivity.setIntent(intent);
- shadowOf(mActivity).setCallingPackage("com.a.b");
- String[] allowedPackage = new String[]{"com.a.b", "com.b.c"};
String[] supportedLocales = new String[]{"en-US", "ja-JP"};
View contentView = LayoutInflater.from(mActivity).inflate(R.layout.locale_dialog, null);
doReturn(contentView).when(mLocaleListEditor).getLocaleDialogView();
- when(mContext.getResources()).thenReturn(mResources);
- when(mResources.getStringArray(
- R.array.allowed_packages_for_locale_confirmation_diallog)).thenReturn(
- allowedPackage);
- when(mResources.getString(
- R.string.title_system_locale_addition)).thenReturn(
- "Add %s to preferred languages?");
- when(mResources.getString(
- R.string.desc_system_locale_addition)).thenReturn(
- "This lets apps and websites know you also prefer this language.");
+ when(mNotificationController.getNotificationId("ja-JP")).thenReturn(notificationId);
when(mLocaleListEditor.getSupportedLocales()).thenReturn(supportedLocales);
}
@@ -445,7 +448,6 @@
mAdapter = spy(new LocaleDragAndDropAdapter(mLocaleListEditor, mLocaleList));
ReflectionHelpers.setField(mAdapter, "mFeedItemList", mLocaleList);
- ReflectionHelpers.setField(mAdapter, "mParent", mLocaleListEditor);
ReflectionHelpers.setField(mAdapter, "mCacheItemList", new ArrayList<>(mLocaleList));
ReflectionHelpers.setField(mAdapter, "mContext", mContext);
ViewGroup view = new FrameLayout(mContext);
diff --git a/tests/robotests/src/com/android/settings/localepicker/LocaleNotificationDataManagerTest.java b/tests/robotests/src/com/android/settings/localepicker/LocaleNotificationDataManagerTest.java
new file mode 100644
index 0000000..99541b6
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/localepicker/LocaleNotificationDataManagerTest.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.Map;
+import java.util.Set;
+
+@RunWith(RobolectricTestRunner.class)
+public class LocaleNotificationDataManagerTest {
+ private Context mContext;
+ private LocaleNotificationDataManager mDataManager;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application);
+ mDataManager = new LocaleNotificationDataManager(mContext);
+ }
+
+ @After
+ public void tearDown() {
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ @Test
+ public void testPutGetNotificationInfo() {
+ String locale = "en-US";
+ Set<Integer> uidSet = Set.of(101);
+ NotificationInfo info = new NotificationInfo(uidSet, 1, 1, 100L, 1000);
+
+ mDataManager.putNotificationInfo(locale, info);
+ NotificationInfo expected = mDataManager.getNotificationInfo(locale);
+
+ assertThat(info.equals(expected)).isTrue();
+ assertThat(expected.getNotificationId()).isEqualTo(info.getNotificationId());
+ assertThat(expected.getDismissCount()).isEqualTo(info.getDismissCount());
+ assertThat(expected.getNotificationCount()).isEqualTo(info.getNotificationCount());
+ assertThat(expected.getUidCollection()).isEqualTo(info.getUidCollection());
+ assertThat(expected.getLastNotificationTimeMs()).isEqualTo(
+ info.getLastNotificationTimeMs());
+ }
+
+ @Test
+ public void testGetNotificationMap() {
+ String enUS = "en-US";
+ Set<Integer> uidSet1 = Set.of(101, 102);
+ NotificationInfo info1 = new NotificationInfo(uidSet1, 1, 1, 1000L, 1234);
+ String jaJP = "ja-JP";
+ Set<Integer> uidSet2 = Set.of(103, 104);
+ NotificationInfo info2 = new NotificationInfo(uidSet2, 1, 0, 2000L, 5678);
+ mDataManager.putNotificationInfo(enUS, info1);
+ mDataManager.putNotificationInfo(jaJP, info2);
+
+ Map<String, NotificationInfo> map = mDataManager.getLocaleNotificationInfoMap();
+
+ assertThat(map.size()).isEqualTo(2);
+ assertThat(mDataManager.getNotificationInfo(enUS).equals(map.get(enUS))).isTrue();
+ assertThat(mDataManager.getNotificationInfo(jaJP).equals(map.get(jaJP))).isTrue();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/localepicker/NotificationCancelReceiverTest.java b/tests/robotests/src/com/android/settings/localepicker/NotificationCancelReceiverTest.java
new file mode 100644
index 0000000..1d34860
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/localepicker/NotificationCancelReceiverTest.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_APP_LOCALE;
+import static com.android.settings.localepicker.AppLocalePickerActivity.EXTRA_NOTIFICATION_ID;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.Intent;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class NotificationCancelReceiverTest {
+ private Context mContext;
+ private NotificationCancelReceiver mReceiver;
+ @Mock
+ private NotificationController mNotificationController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mReceiver = spy(new NotificationCancelReceiver());
+ doReturn(mNotificationController).when(mReceiver).getNotificationController(any());
+ }
+
+ @Test
+ public void testOnReceive_incrementDismissCount() {
+ String locale = "en-US";
+ int notificationId = 100;
+ Intent intent = new Intent()
+ .putExtra(EXTRA_APP_LOCALE, locale)
+ .putExtra(EXTRA_NOTIFICATION_ID, notificationId);
+ when(mNotificationController.getNotificationId(locale)).thenReturn(notificationId);
+
+ mReceiver.onReceive(mContext, intent);
+
+ verify(mNotificationController).incrementDismissCount(eq(locale));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/localepicker/NotificationControllerTest.java b/tests/robotests/src/com/android/settings/localepicker/NotificationControllerTest.java
new file mode 100644
index 0000000..3e31c0c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/localepicker/NotificationControllerTest.java
@@ -0,0 +1,178 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.localepicker;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.os.LocaleList;
+import android.os.SystemClock;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.Calendar;
+import java.util.Set;
+
+@RunWith(RobolectricTestRunner.class)
+public class NotificationControllerTest {
+ private Context mContext;
+ private LocaleNotificationDataManager mDataManager;
+ private NotificationController mNotificationController;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mNotificationController = NotificationController.getInstance(mContext);
+ mDataManager = mNotificationController.getDataManager();
+ LocaleList.setDefault(LocaleList.forLanguageTags("en-CA"));
+ }
+
+ @After
+ public void tearDown() {
+ mDataManager.clearLocaleNotificationMap();
+ }
+
+ @Test
+ public void incrementDismissCount_addOne() throws Exception {
+ String enUS = "en-US";
+ Set<Integer> uidSet = Set.of(100, 101);
+ long lastNotificationTime = Calendar.getInstance().getTimeInMillis();
+ int id = (int) SystemClock.uptimeMillis();
+ initSharedPreference(enUS, uidSet, 0, 1, lastNotificationTime, id);
+
+ mNotificationController.incrementDismissCount(enUS);
+ NotificationInfo result = mDataManager.getNotificationInfo(enUS);
+
+ assertThat(result.getDismissCount()).isEqualTo(1); // dismissCount increments
+ assertThat(result.getUidCollection()).isEqualTo(uidSet);
+ assertThat(result.getNotificationCount()).isEqualTo(1);
+ assertThat(result.getLastNotificationTimeMs()).isEqualTo(lastNotificationTime);
+ assertThat(result.getNotificationId()).isEqualTo(id);
+ }
+
+ @Test
+ public void testShouldTriggerNotification_inSystemLocale_returnFalse() throws Exception {
+ int uid = 102;
+ // As checking whether app's locales exist in system locales, both app locales and system
+ // locales have to remove the u extension first when doing the comparison. The following
+ // three locales are all in the system locale after removing the u extension so it's
+ // unnecessary to trigger a notification for the suggestion.
+ String locale1 = "en-CA";
+ String locale2 = "ar-JO-u-nu-latn";
+ String locale3 = "ar-JO";
+
+ LocaleList.setDefault(
+ LocaleList.forLanguageTags("en-CA-u-mu-fahrenhe,ar-JO-u-mu-fahrenhe-nu-latn"));
+
+ assertThat(mNotificationController.shouldTriggerNotification(uid, locale1)).isFalse();
+ assertThat(mNotificationController.shouldTriggerNotification(uid, locale2)).isFalse();
+ assertThat(mNotificationController.shouldTriggerNotification(uid, locale3)).isFalse();
+ }
+
+ @Test
+ public void testShouldTriggerNotification_noNotification_returnFalse() throws Exception {
+ int uid = 100;
+ String locale = "en-US";
+
+ boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+ assertThat(triggered).isFalse();
+ }
+
+ @Test
+ public void testShouldTriggerNotification_return1stTrue() throws Exception {
+ // Initialze proto with en-US locale. Its uid contains 100.
+ Set<Integer> uidSet = Set.of(100);
+ String locale = "en-US";
+ long lastNotificationTime = 0L;
+ int notificationId = 0;
+ initSharedPreference(locale, uidSet, 0, 1, lastNotificationTime, notificationId);
+
+ // When the second app is configured to "en-US", the notification is triggered.
+ int uid = 101;
+ boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+ assertThat(triggered).isTrue();
+ }
+
+ @Test
+ public void testShouldTriggerNotification_returnFalse_dueToOddCount() throws Exception {
+ // Initialze proto with en-US locale. Its uid contains 100,101.
+ Set<Integer> uidSet = Set.of(100, 101);
+ String locale = "en-US";
+ long lastNotificationTime = Calendar.getInstance().getTimeInMillis();
+ int id = (int) SystemClock.uptimeMillis();
+ initSharedPreference(locale, uidSet, 0, 1, lastNotificationTime, id);
+
+ // When the other app is configured to "en-US", the notification is not triggered because
+ // the app count is odd.
+ int uid = 102;
+ boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+ assertThat(triggered).isFalse();
+ }
+
+ @Test
+ public void testShouldTriggerNotification_returnFalse_dueToFrequency() throws Exception {
+ // Initialze proto with en-US locale. Its uid contains 100,101,102.
+ Set<Integer> uidSet = Set.of(100, 101, 102);
+ String locale = "en-US";
+ long lastNotificationTime = Calendar.getInstance().getTimeInMillis();
+ int id = (int) SystemClock.uptimeMillis();
+ initSharedPreference(locale, uidSet, 0, 1, lastNotificationTime, id);
+
+ // When the other app is configured to "en-US", the notification is not triggered because it
+ // is too frequent.
+ int uid = 103;
+ boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+ assertThat(triggered).isFalse();
+ }
+
+ @Test
+ public void testShouldTriggerNotification_return2ndTrue() throws Exception {
+ // Initialze proto with en-US locale. Its uid contains 100,101,102,103,104.
+ Set<Integer> uidSet = Set.of(100, 101, 102, 103, 104);
+ String locale = "en-US";
+ int id = (int) SystemClock.uptimeMillis();
+ Calendar time = Calendar.getInstance();
+ time.add(Calendar.MINUTE, 86400 * 8 * (-1));
+ long lastNotificationTime = time.getTimeInMillis();
+ initSharedPreference(locale, uidSet, 0, 1, lastNotificationTime, id);
+
+ // When the other app is configured to "en-US", the notification is triggered.
+ int uid = 105;
+ boolean triggered = mNotificationController.shouldTriggerNotification(uid, locale);
+
+ assertThat(triggered).isTrue();
+ }
+
+ private void initSharedPreference(String locale, Set<Integer> uidCollection, int dismissCount,
+ int notificationCount, long lastNotificationTime, int notificationId)
+ throws Exception {
+ NotificationInfo info = new NotificationInfo(uidCollection, notificationCount, dismissCount,
+ lastNotificationTime, notificationId);
+ mDataManager.putNotificationInfo(locale, info);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java b/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java
index aae8cec..a8a59ff 100644
--- a/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationSettingsTest.java
@@ -34,8 +34,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class LocationSettingsTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/network/MobileDataEnabledListenerTest.java b/tests/robotests/src/com/android/settings/network/MobileDataEnabledListenerTest.java
index 0824680..b232009 100644
--- a/tests/robotests/src/com/android/settings/network/MobileDataEnabledListenerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileDataEnabledListenerTest.java
@@ -18,6 +18,7 @@
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
import android.content.Context;
import android.net.Uri;
@@ -30,8 +31,10 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+// import org.robolectric.annotation.LooperMode;
@RunWith(RobolectricTestRunner.class)
+// @LooperMode(LooperMode.Mode.LEGACY)
public class MobileDataEnabledListenerTest {
private static final int SUB_ID_ONE = 111;
private static final int SUB_ID_TWO = 222;
@@ -54,6 +57,7 @@
mListener.start(SUB_ID_ONE);
final Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID_ONE);
mContext.getContentResolver().notifyChange(uri, null);
+ shadowMainLooper().idle();
verify(mClient).onMobileDataEnabledChange();
}
@@ -63,6 +67,7 @@
mListener.stop();
final Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID_ONE);
mContext.getContentResolver().notifyChange(uri, null);
+ shadowMainLooper().idle();
verify(mClient, never()).onMobileDataEnabledChange();
}
@@ -73,6 +78,7 @@
mListener.start(SUB_ID_TWO);
final Uri uri = Settings.Global.getUriFor(Settings.Global.MOBILE_DATA + SUB_ID_TWO);
mContext.getContentResolver().notifyChange(uri, null);
+ shadowMainLooper().idle();
verify(mClient).onMobileDataEnabledChange();
}
}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index ef2013c..8a99099 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -99,6 +99,9 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class NetworkProviderSettingsTest {
private static final int XML_RES = R.xml.wifi_tether_settings;
diff --git a/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java b/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java
index d075655..d805ee6 100644
--- a/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java
+++ b/tests/robotests/src/com/android/settings/network/SubscriptionsChangeListenerTest.java
@@ -20,12 +20,14 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
@@ -81,6 +83,7 @@
final ContentResolver contentResolver = mock(ContentResolver.class);
when(mContext.getContentResolver()).thenReturn(contentResolver);
initListener(false);
+ shadowMainLooper().idle();
verify(contentResolver, never()).registerContentObserver(any(Uri.class), anyBoolean(),
any(ContentObserver.class));
verify(mSubscriptionManager, never()).addOnSubscriptionsChangedListener(any(), any());
@@ -93,6 +96,7 @@
final ArgumentCaptor<SubscriptionManager.OnSubscriptionsChangedListener> captor =
ArgumentCaptor.forClass(SubscriptionManager.OnSubscriptionsChangedListener.class);
verify(mSubscriptionManager).addOnSubscriptionsChangedListener(any(), captor.capture());
+ shadowMainLooper().idle();
captor.getValue().onSubscriptionsChanged();
verify(mClient).onSubscriptionsChanged();
}
@@ -104,9 +108,11 @@
mContext.sendStickyBroadcast(intent);
initListener(true);
+ shadowMainLooper().idle();
verify(mClient, never()).onSubscriptionsChanged();
mContext.sendStickyBroadcast(intent);
+ shadowMainLooper().idle();
verify(mClient, times(1)).onSubscriptionsChanged();
}
@@ -115,8 +121,10 @@
initListener(true);
final ArgumentCaptor<BroadcastReceiver> broadcastReceiverCaptor =
ArgumentCaptor.forClass(BroadcastReceiver.class);
+ shadowMainLooper().idle();
verify(mContext).registerReceiver(broadcastReceiverCaptor.capture(), any());
broadcastReceiverCaptor.getValue().onReceive(mContext, null);
+ shadowMainLooper().idle();
verify(mClient).onSubscriptionsChanged();
}
@@ -125,7 +133,8 @@
initListener(true);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 1);
mListener.onChange(false, mAirplaneModeUri);
- verify(mClient).onAirplaneModeChanged(true);
+ shadowMainLooper().idle();
+ verify(mClient, atLeastOnce()).onAirplaneModeChanged(true);
assertThat(mListener.isAirplaneModeOn()).isTrue();
}
@@ -134,7 +143,8 @@
initListener(true);
Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON, 0);
mListener.onChange(false, mAirplaneModeUri);
- verify(mClient).onAirplaneModeChanged(false);
+ shadowMainLooper().idle();
+ verify(mClient, atLeastOnce()).onAirplaneModeChanged(false);
assertThat(mListener.isAirplaneModeOn()).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
index 54d616d..99869d8 100644
--- a/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/TetherPreferenceControllerTest.java
@@ -24,6 +24,7 @@
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
+import static org.robolectric.shadows.ShadowLooper.shadowMainLooper;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothPan;
@@ -205,6 +206,7 @@
context.sendBroadcast(new Intent(TetheringManager.ACTION_TETHER_STATE_CHANGED));
+ shadowMainLooper().idle();
verify(mController).updateSummary();
}
}
diff --git a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
index 43b961c..8e0c863 100644
--- a/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/TopLevelNetworkEntryPreferenceControllerTest.java
@@ -29,6 +29,7 @@
import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
import org.junit.After;
@@ -39,13 +40,16 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowUserManager;
+import org.robolectric.shadow.api.Shadow;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowRestrictedLockUtilsInternal.class, ShadowUtils.class})
+@Config(shadows = {
+ ShadowRestrictedLockUtilsInternal.class,
+ ShadowUtils.class,
+ ShadowUserManager.class,
+})
public class TopLevelNetworkEntryPreferenceControllerTest {
@Mock
@@ -58,7 +62,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
- final ShadowUserManager um = Shadows.shadowOf(
+ final ShadowUserManager um = Shadow.extract(
RuntimeEnvironment.application.getSystemService(UserManager.class));
um.setIsAdminUser(true);
diff --git a/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java b/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java
index 1006c32..d8895d5 100644
--- a/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java
+++ b/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java
@@ -54,7 +54,6 @@
import com.android.settings.R;
import com.android.settings.network.ProxySubscriptionManager;
import com.android.settings.network.apn.ApnEditor.ApnData;
-import com.android.settings.testutils.shadow.ShadowFragment;
import org.junit.Before;
import org.junit.Test;
@@ -69,6 +68,9 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ApnEditorTest {
private static final Object[] APN_DATA = {
@@ -497,7 +499,6 @@
}
@Test
- @Config(shadows = ShadowFragment.class)
public void onCreate_notAdminUser_shouldFinish() {
doReturn(false).when(mUserManager).isAdminUser();
@@ -507,7 +508,6 @@
}
@Test
- @Config(shadows = ShadowFragment.class)
public void onCreate_hasUserRestriction_shouldFinish() {
doReturn(true).when(mUserManager)
.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
@@ -518,7 +518,6 @@
}
@Test
- @Config(shadows = ShadowFragment.class)
public void onCreate_noAction_shouldFinishAndNoCrash() {
ProxySubscriptionManager proxySubscriptionMgr = mock(ProxySubscriptionManager.class);
mApnEditorUT.mProxySubscriptionMgr = proxySubscriptionMgr;
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
index 3e219a4..297815b 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkSettingsTest.java
@@ -58,7 +58,10 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowEntityHeaderController.class)
+@Config(shadows = {
+ ShadowEntityHeaderController.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class MobileNetworkSettingsTest {
@Mock
private TelephonyManager mTelephonyManager;
diff --git a/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java b/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
index 7fe1187..9269754 100644
--- a/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/tether/TetherSettingsTest.java
@@ -76,6 +76,9 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class TetherSettingsTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
index 3cb3abf..b346b01 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
@@ -35,6 +35,7 @@
import androidx.preference.PreferenceScreen;
+import com.android.settings.testutils.shadow.ShadowActivityManager;
import com.android.settingslib.testutils.shadow.ShadowInteractionJankMonitor;
import com.android.settingslib.widget.MainSwitchPreference;
@@ -48,10 +49,12 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowInteractionJankMonitor.class})
+@Config(shadows = {
+ ShadowInteractionJankMonitor.class,
+ ShadowActivityManager.class,
+})
public class BubbleNotificationPreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
index 3b4e90f..e80fbc8 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
@@ -32,16 +32,20 @@
import androidx.preference.Preference;
import com.android.settings.R;
+import com.android.settings.testutils.shadow.ShadowActivityManager;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowActivityManager.class,
+})
public class BubbleSummaryNotificationPreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/ChargingSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ChargingSoundPreferenceControllerTest.java
index aac4a0b..1c864c9 100644
--- a/tests/robotests/src/com/android/settings/notification/ChargingSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ChargingSoundPreferenceControllerTest.java
@@ -41,6 +41,9 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ChargingSoundPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java
index fa95e52..c6511ef 100644
--- a/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java
@@ -37,8 +37,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class DialPadTonePreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/DockAudioMediaPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DockAudioMediaPreferenceControllerTest.java
index 5e4efd0..097aed7 100644
--- a/tests/robotests/src/com/android/settings/notification/DockAudioMediaPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DockAudioMediaPreferenceControllerTest.java
@@ -45,8 +45,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class DockAudioMediaPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/DockingSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DockingSoundPreferenceControllerTest.java
index 0cfc6b7..7aeddfc 100644
--- a/tests/robotests/src/com/android/settings/notification/DockingSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DockingSoundPreferenceControllerTest.java
@@ -39,8 +39,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class DockingSoundPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/EmergencyTonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/EmergencyTonePreferenceControllerTest.java
index 49776de..bae7c4c 100644
--- a/tests/robotests/src/com/android/settings/notification/EmergencyTonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/EmergencyTonePreferenceControllerTest.java
@@ -37,8 +37,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class EmergencyTonePreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAccessSettingsTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAccessSettingsTest.java
index e644c29..d19f17d 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAccessSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAccessSettingsTest.java
@@ -53,11 +53,13 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowBluetoothUtils.class})
public class NotificationAccessSettingsTest {
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAssistantDialogFragmentTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAssistantDialogFragmentTest.java
index eef3f04..c4b5e80 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAssistantDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAssistantDialogFragmentTest.java
@@ -35,8 +35,12 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class NotificationAssistantDialogFragmentTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
index 1dac399..fc90372 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationAssistantPreferenceControllerTest.java
@@ -69,6 +69,9 @@
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class NotificationAssistantPreferenceControllerTest {
private static final String KEY = "TEST_KEY";
diff --git a/tests/robotests/src/com/android/settings/notification/ScreenLockSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/ScreenLockSoundPreferenceControllerTest.java
index 49742c8..e0b7e14 100644
--- a/tests/robotests/src/com/android/settings/notification/ScreenLockSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ScreenLockSoundPreferenceControllerTest.java
@@ -41,6 +41,9 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ScreenLockSoundPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java b/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java
index 6dec2d9..fc247c4 100644
--- a/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java
@@ -42,11 +42,15 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class SettingPrefControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/SoundWorkSettingsTest.java b/tests/robotests/src/com/android/settings/notification/SoundWorkSettingsTest.java
index 6f8b784..c7a110a 100644
--- a/tests/robotests/src/com/android/settings/notification/SoundWorkSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/SoundWorkSettingsTest.java
@@ -38,9 +38,13 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class SoundWorkSettingsTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/TouchSoundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/TouchSoundPreferenceControllerTest.java
index 50facdd..53359cb 100644
--- a/tests/robotests/src/com/android/settings/notification/TouchSoundPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/TouchSoundPreferenceControllerTest.java
@@ -42,6 +42,9 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class TouchSoundPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
index bcb641d..13528b4 100644
--- a/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/AppChannelsBypassingDndPreferenceControllerTest.java
@@ -41,12 +41,14 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
import java.util.Collections;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class AppChannelsBypassingDndPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/app/AppConversationListPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/AppConversationListPreferenceControllerTest.java
index 198c80a..916452c 100644
--- a/tests/robotests/src/com/android/settings/notification/app/AppConversationListPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/AppConversationListPreferenceControllerTest.java
@@ -42,12 +42,14 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
import java.util.Arrays;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
public class AppConversationListPreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
index e567590..487ba76 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
@@ -57,6 +57,7 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.notification.NotificationBackend;
+import com.android.settings.testutils.shadow.ShadowActivityManager;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedSwitchPreference;
@@ -70,14 +71,17 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowActivityManager.class,
+})
public class BubblePreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
index a9a1b97..7db308e 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
@@ -46,6 +46,7 @@
import com.android.settings.R;
import com.android.settings.notification.NotificationBackend;
+import com.android.settings.testutils.shadow.ShadowActivityManager;
import org.junit.Before;
import org.junit.Test;
@@ -54,11 +55,14 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowActivityManager;
import org.robolectric.shadows.ShadowApplication;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowActivityManager.class,
+})
public class BubbleSummaryPreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/ConversationDemotePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/ConversationDemotePreferenceControllerTest.java
index 0591cf2..e5a156e 100644
--- a/tests/robotests/src/com/android/settings/notification/app/ConversationDemotePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/ConversationDemotePreferenceControllerTest.java
@@ -46,11 +46,15 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ConversationDemotePreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/ConversationHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/ConversationHeaderPreferenceControllerTest.java
index 9a1a3ab..9e67891 100644
--- a/tests/robotests/src/com/android/settings/notification/app/ConversationHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/ConversationHeaderPreferenceControllerTest.java
@@ -48,11 +48,15 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ConversationHeaderPreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java
index 1c049be..56df38b 100644
--- a/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/ConversationPromotePreferenceControllerTest.java
@@ -48,12 +48,15 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
-import java.sql.Array;
import java.util.ArrayList;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ConversationPromotePreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt b/tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt
index e148f71..64bb849 100644
--- a/tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt
+++ b/tests/robotests/src/com/android/settings/notification/app/FullScreenIntentPermissionPreferenceControllerTest.kt
@@ -43,6 +43,7 @@
import com.android.settings.notification.app.FullScreenIntentPermissionPreferenceController.Companion.KEY_FSI_PERMISSION
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin
import com.android.settingslib.RestrictedSwitchPreference
+import com.android.settingslib.testutils.shadow.ShadowPermissionChecker
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Before
@@ -58,11 +59,13 @@
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
import org.robolectric.shadows.ShadowApplicationPackageManager
-import org.robolectric.shadows.ShadowPermissionChecker
import org.mockito.Mockito.`when` as whenever
@RunWith(RobolectricTestRunner::class)
-@Config(shadows = [ShadowApplicationPackageManager::class])
+@Config(shadows = [
+ ShadowApplicationPackageManager::class,
+ ShadowPermissionChecker::class,
+])
class FullScreenIntentPermissionPreferenceControllerTest {
@JvmField
@Rule
diff --git a/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java
index 4ca4f8d..05a41a6 100644
--- a/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/HeaderPreferenceControllerTest.java
@@ -46,11 +46,15 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
import java.util.ArrayList;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class HeaderPreferenceControllerTest {
private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java
index eeb53cf..f6df04d 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeEventRuleSettingsTest.java
@@ -39,12 +39,16 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowToast;
import java.util.ArrayList;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ZenModeEventRuleSettingsTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java
index a8a551f..4361eb3 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeScheduleRuleSettingsTest.java
@@ -39,9 +39,13 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowToast;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class ZenModeScheduleRuleSettingsTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
index 7d0bf99..e1687a0 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
@@ -49,10 +49,16 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.android.controller.ActivityController;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import java.util.Objects;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class PanelFragmentTest {
private static final String TITLE = "title";
diff --git a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
index ea55b90..46c61e4 100644
--- a/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
+++ b/tests/robotests/src/com/android/settings/panel/SettingsPanelActivityTest.java
@@ -55,9 +55,13 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.android.controller.ActivityController;
+import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class SettingsPanelActivityTest {
private FakeFeatureFactory mFakeFeatureFactory;
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
index 5db998a..e625827 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
@@ -66,6 +66,7 @@
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowInteractionJankMonitor;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowPersistentDataBlockManager;
import com.android.settings.testutils.shadow.ShadowStorageManager;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
@@ -85,7 +86,6 @@
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.shadows.ShadowPersistentDataBlockManager;
@RunWith(RobolectricTestRunner.class)
@Config(
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java
index 9e8644f..a7c71ad 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java
@@ -41,9 +41,11 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowAlertDialogCompat.class, ShadowLockPatternUtils.class})
public class ChooseLockTypeDialogFragmentTest {
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
index b04a718..0eb365b 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
@@ -58,9 +58,7 @@
import org.mockito.junit.MockitoRule;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
-import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowActivity;
import java.util.List;
@@ -107,8 +105,7 @@
SetupChooseLockGeneric activity =
Robolectric.buildActivity(SetupChooseLockGeneric.class, intent).create().get();
- ShadowActivity shadowActivity = Shadows.shadowOf(activity);
- assertThat(shadowActivity.isFinishing()).isTrue();
+ assertThat(activity.isFinishing()).isTrue();
}
@Test
@@ -122,8 +119,7 @@
SetupChooseLockGeneric activity =
Robolectric.buildActivity(SetupChooseLockGeneric.class, intent).create().get();
- ShadowActivity shadowActivity = Shadows.shadowOf(activity);
- assertThat(shadowActivity.isFinishing()).isFalse();
+ assertThat(activity.isFinishing()).isFalse();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
index 3242a59..bff6991 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
@@ -57,6 +57,7 @@
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowDialog;
import org.robolectric.shadows.ShadowInputMethodManager;
@@ -65,6 +66,7 @@
import java.util.List;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(
shadows = {
SettingsShadowResources.class,
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
index d6df6c4..d353a22 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
@@ -59,6 +59,7 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;
import org.robolectric.util.ReflectionHelpers.ClassParameter;
@@ -66,6 +67,7 @@
import java.util.Arrays;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowUtils.class, ShadowAlertDialogCompat.class, ShadowLockPatternUtils.class})
public class SetupChooseLockPatternTest {
diff --git a/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java b/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
index 813efe9..2cc256b 100644
--- a/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
@@ -47,11 +47,13 @@
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import org.robolectric.annotation.LooperMode;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowAlertDialog;
import org.robolectric.shadows.ShadowApplication;
@RunWith(RobolectricTestRunner.class)
+@LooperMode(LooperMode.Mode.LEGACY)
@Config(shadows = {ShadowUtils.class, ShadowAlertDialog.class})
public class SetupSkipDialogTest {
diff --git a/tests/robotests/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingTest.kt b/tests/robotests/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingTest.kt
index d103305..3d42f23 100644
--- a/tests/robotests/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingTest.kt
+++ b/tests/robotests/src/com/android/settings/remoteauth/enrolling/RemoteAuthEnrollEnrollingTest.kt
@@ -22,7 +22,6 @@
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.*
import com.android.settings.R
-import org.hamcrest.core.IsNot.not
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@@ -36,10 +35,10 @@
}
@Test
- fun testRemoteAuthenticatorEnrollEnrolling_hasHeader() {
+ fun testRemoteAuthenticatorEnrollEnrolling_headerVisible() {
onView(withText(R.string.security_settings_remoteauth_enroll_enrolling_title)).check(
matches(
- isDisplayed()
+ withEffectiveVisibility(Visibility.VISIBLE)
)
)
}
@@ -54,12 +53,18 @@
}
@Test
- fun testRemoteAuthenticatorEnrollEnrolling_progressBarNotDisplayed() {
- onView(withId(R.id.enrolling_list_progress_bar)).check(matches(not(isDisplayed())))
+ fun testRemoteAuthenticatorEnrollEnrolling_progressBarNotVisible() {
+ onView(withId(R.id.enrolling_list_progress_bar)).check(
+ matches(
+ withEffectiveVisibility(
+ Visibility.INVISIBLE
+ )
+ )
+ )
}
@Test
- fun testRemoteAuthenticatorEnrollEnrolling_errorTextNotDisplayed() {
- onView(withId(R.id.error_text)).check(matches(not(isDisplayed())))
+ fun testRemoteAuthenticatorEnrollEnrolling_errorTextNotVisible() {
+ onView(withId(R.id.error_text)).check(matches(withEffectiveVisibility(Visibility.INVISIBLE)))
}
}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt b/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt
index 1ad7dd8..46ff19c 100644
--- a/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt
+++ b/tests/robotests/src/com/android/settings/remoteauth/finish/RemoteAuthEnrollFinishTest.kt
@@ -36,19 +36,19 @@
}
@Test
- fun testRemoteAuthenticatorEnrollFinish_hasHeader() {
+ fun testRemoteAuthenticatorEnrollFinish_headerVisible() {
onView(withText(R.string.security_settings_remoteauth_enroll_finish_title)).check(
matches(
- isDisplayed()
+ withEffectiveVisibility(Visibility.VISIBLE)
)
)
}
@Test
- fun testRemoteAuthenticatorEnrollFinish_hasDescription() {
+ fun testRemoteAuthenticatorEnrollFinish_descriptionVisible() {
onView(withText(R.string.security_settings_remoteauth_enroll_finish_description)).check(
matches(
- isDisplayed()
+ withEffectiveVisibility(Visibility.VISIBLE)
)
)
}
diff --git a/tests/robotests/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsTest.kt b/tests/robotests/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsTest.kt
index 8128600..9b16813 100644
--- a/tests/robotests/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsTest.kt
+++ b/tests/robotests/src/com/android/settings/remoteauth/settings/RemoteAuthSettingsTest.kt
@@ -35,19 +35,19 @@
}
@Test
- fun testRemoteAuthenticatorSettings_hasHeader() {
+ fun testRemoteAuthenticatorSettings_headerVisible() {
onView(withText(R.string.security_settings_remoteauth_settings_title)).check(
matches(
- isDisplayed()
+ withEffectiveVisibility(Visibility.VISIBLE)
)
)
}
@Test
- fun testRemoteAuthenticatorSettings_hasDescription() {
+ fun testRemoteAuthenticatorSettings_descriptionVisible() {
onView(withText(R.string.security_settings_remoteauth_settings_description)).check(
matches(
- isDisplayed()
+ withEffectiveVisibility(Visibility.VISIBLE)
)
)
}
diff --git a/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java b/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java
index d898e64..4dbd9eb 100644
--- a/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java
+++ b/tests/robotests/src/com/android/settings/search/actionbar/SearchMenuControllerTest.java
@@ -48,7 +48,10 @@
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowUtils.class)
+@Config(shadows = {
+ ShadowUtils.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class SearchMenuControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java
index bcf9858..81f4fce 100644
--- a/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/OwnerInfoPreferenceControllerTest.java
@@ -49,9 +49,13 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ com.android.settings.testutils.shadow.ShadowFragment.class,
+})
public class OwnerInfoPreferenceControllerTest {
@Mock
diff --git a/tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java
index df1fec3..85cf299 100644
--- a/tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/shortcut/CreateShortcutPreferenceControllerTest.java
@@ -125,6 +125,7 @@
new Intent(CreateShortcutPreferenceController.SHORTCUT_PROBE),
Arrays.asList(ri1, ri2));
+ doReturn(false).when(mController).canShowWifiHotspot();
final List<ResolveInfo> info = mController.queryShortcuts();
assertThat(info).hasSize(1);
assertThat(info.get(0).activityInfo).isEqualTo(ri2.activityInfo);
@@ -150,6 +151,7 @@
new Intent(CreateShortcutPreferenceController.SHORTCUT_PROBE),
Arrays.asList(ri1, ri2));
+ doReturn(false).when(mController).canShowWifiHotspot();
final List<ResolveInfo> info = mController.queryShortcuts();
assertThat(info).hasSize(2);
assertThat(info.get(0).activityInfo).isEqualTo(ri2.activityInfo);
@@ -158,6 +160,7 @@
@Test
public void queryShortcuts_setSupportOneHandedMode_ShouldEnableShortcuts() {
+ doReturn(true).when(mController).canShowWifiHotspot();
SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "true");
setupActivityInfo(Settings.OneHandedSettingsActivity.class.getSimpleName());
@@ -166,6 +169,7 @@
@Test
public void queryShortcuts_setUnsupportOneHandedMode_ShouldDisableShortcuts() {
+ doReturn(false).when(mController).canShowWifiHotspot();
SystemProperties.set(SUPPORT_ONE_HANDED_MODE, "false");
setupActivityInfo(Settings.OneHandedSettingsActivity.class.getSimpleName());
@@ -174,7 +178,7 @@
@Test
public void queryShortcuts_configShowWifiHotspot_ShouldEnableShortcuts() {
- when(mController.canShowWifiHotspot()).thenReturn(true);
+ doReturn(true).when(mController).canShowWifiHotspot();
setupActivityInfo(Settings.WifiTetherSettingsActivity.class.getSimpleName());
assertThat(mController.queryShortcuts()).hasSize(1);
@@ -182,7 +186,7 @@
@Test
public void queryShortcuts_configNotShowWifiHotspot_ShouldDisableShortcuts() {
- when(mController.canShowWifiHotspot()).thenReturn(false);
+ doReturn(false).when(mController).canShowWifiHotspot();
setupActivityInfo(Settings.WifiTetherSettingsActivity.class.getSimpleName());
assertThat(mController.queryShortcuts()).hasSize(0);
diff --git a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
index e99b17f..136431d 100644
--- a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
@@ -29,13 +29,15 @@
import androidx.room.Room;
-import com.android.settings.display.AutoBrightnessSettings;
+import com.android.settings.DisplaySettings;
import com.android.settings.display.ScreenTimeoutSettings;
import com.android.settings.fuelgauge.batteryusage.BatteryInformation;
import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
import com.android.settings.fuelgauge.batteryusage.DeviceBatteryState;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEvent;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList;
+import com.android.settings.fuelgauge.batteryusage.PowerAnomalyKey;
+import com.android.settings.fuelgauge.batteryusage.PowerAnomalyType;
import com.android.settings.fuelgauge.batteryusage.WarningBannerInfo;
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventDao;
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
@@ -206,14 +208,25 @@
return PowerAnomalyEventList.getDefaultInstance();
}
+ /** Create an non-empty power anomaly event list proto. */
+ public static PowerAnomalyEventList createNonEmptyPowerAnomalyEventList() {
+ return PowerAnomalyEventList.newBuilder()
+ .addPowerAnomalyEvents(0, createAdaptiveBrightnessAnomalyEvent())
+ .addPowerAnomalyEvents(1, createScreenTimeoutAnomalyEvent())
+ .build();
+ }
+
/** Create a power anomaly event proto of adaptive brightness. */
public static PowerAnomalyEvent createAdaptiveBrightnessAnomalyEvent() {
return PowerAnomalyEvent.newBuilder()
- .setType("settings banner")
- .setKey("adaptive_brightness")
+ .setEventId("BrightnessAnomaly")
+ .setType(PowerAnomalyType.TYPE_SETTINGS_BANNER)
+ .setKey(PowerAnomalyKey.KEY_BRIGHTNESS)
+ .setScore(1.2f)
.setWarningBannerInfo(WarningBannerInfo.newBuilder()
- .setMainButtonDestination(AutoBrightnessSettings.class.getName())
- .setMainButtonSourceMetricsCategory(SettingsEnums.SETTINGS_AUTO_BRIGHTNESS)
+ .setMainButtonDestination(DisplaySettings.class.getName())
+ .setMainButtonSourceMetricsCategory(SettingsEnums.DISPLAY)
+ .setMainButtonSourceHighlightKey("auto_brightness_entry")
.build())
.build();
}
@@ -221,11 +234,14 @@
/** Create a power anomaly event proto of screen timeout. */
public static PowerAnomalyEvent createScreenTimeoutAnomalyEvent() {
return PowerAnomalyEvent.newBuilder()
- .setType("settings banner")
- .setKey("screen_timeout")
+ .setEventId("ScreenTimeoutAnomaly")
+ .setType(PowerAnomalyType.TYPE_SETTINGS_BANNER)
+ .setKey(PowerAnomalyKey.KEY_SCREEN_TIMEOUT)
+ .setScore(1.1f)
.setWarningBannerInfo(WarningBannerInfo.newBuilder()
.setMainButtonDestination(ScreenTimeoutSettings.class.getName())
.setMainButtonSourceMetricsCategory(SettingsEnums.SCREEN_TIMEOUT)
+ .setMainButtonSourceHighlightKey("60000")
.build())
.build();
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityManager.java
index 76bdaef..dd82e25 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowActivityManager.java
@@ -23,7 +23,7 @@
import org.robolectric.annotation.Implements;
@Implements(ActivityManager.class)
-public class ShadowActivityManager {
+public class ShadowActivityManager extends org.robolectric.shadows.ShadowActivityManager {
private static int sCurrentUserId = 0;
private static IActivityManager sService = null;
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java
new file mode 100644
index 0000000..7ff2e5d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowApplicationPackageManager.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import android.app.ApplicationPackageManager;
+import android.content.pm.PackageInfo;
+
+import org.robolectric.annotation.Implements;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Implements(ApplicationPackageManager.class)
+public class ShadowApplicationPackageManager
+ extends org.robolectric.shadows.ShadowApplicationPackageManager {
+ static final Map<Integer, List<String>> packagesForUserId = new HashMap<>();
+
+ public void setInstalledPackagesForUserId(int userId, List<String> packages) {
+ packagesForUserId.put(userId, packages);
+ for (String packageName : packages) {
+ addPackage(packageName);
+ }
+ }
+
+ protected List<PackageInfo> getInstalledPackagesAsUser(int flags, int userId) {
+ List<PackageInfo> packages = new ArrayList<>();
+ for (String packageName : packagesForUserId.getOrDefault(userId, new ArrayList<>())) {
+ try {
+ packages.add(getPackageInfo(packageName, flags));
+ } catch (Exception e) {
+ // ignore
+ }
+ }
+ return packages;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
index e651baf..9c06665 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioManager.java
@@ -31,12 +31,12 @@
import android.media.AudioManager;
import android.os.Handler;
-import java.util.List;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
import java.util.ArrayList;
+import java.util.List;
@Implements(value = AudioManager.class)
public class ShadowAudioManager extends org.robolectric.shadows.ShadowAudioManager {
@@ -46,7 +46,7 @@
private List<AudioDeviceCallback> mDeviceCallbacks = new ArrayList<>();
@Implementation
- private int getRingerModeInternal() {
+ protected int getRingerModeInternal() {
return mRingerMode;
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAuthenticationHelper.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAuthenticationHelper.java
index cb7da56..d14a089 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAuthenticationHelper.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAuthenticationHelper.java
@@ -33,6 +33,7 @@
static final String[] LABELS = {"LABEL1", "LABEL2", "LABEL3", "LABEL4"};
private static String[] sEnabledAccount = TYPES;
+ @Implementation
protected void __constructor__(Context context, UserHandle userHandle,
AuthenticatorHelper.OnAccountsUpdateListener listener) {
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.java
new file mode 100644
index 0000000..38e8218
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowCrossProfileApps.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import android.Manifest;
+import android.annotation.NonNull;
+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 org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+@Implements(CrossProfileApps.class)
+public class ShadowCrossProfileApps extends org.robolectric.shadows.ShadowCrossProfileApps {
+ private static final Set<String> configurableInteractAcrossProfilePackages = new HashSet<>();
+ private Context mContext;
+ private PackageManager mPackageManager;
+
+ @Implementation
+ protected void __constructor__(Context context, ICrossProfileApps service) {
+ super.__constructor__(context, service);
+ this.mContext = context;
+ this.mPackageManager = context.getPackageManager();
+ }
+ public void addCrossProfilePackage(String packageName) {
+ configurableInteractAcrossProfilePackages.add(packageName);
+ }
+
+ @Implementation
+ protected boolean canConfigureInteractAcrossProfiles(@NonNull String packageName) {
+ return configurableInteractAcrossProfilePackages.contains(packageName);
+ }
+
+ @Implementation
+ protected boolean canUserAttemptToConfigureInteractAcrossProfiles(@NonNull String packageName) {
+ PackageInfo packageInfo;
+ try {
+ packageInfo = mPackageManager.getPackageInfo(packageName, /* flags= */ 0);
+ } catch (PackageManager.NameNotFoundException e) {
+ return false;
+ }
+ if (packageInfo == null || packageInfo.requestedPermissions == null) {
+ return false;
+ }
+ return Arrays.asList(packageInfo.requestedPermissions).contains(
+ Manifest.permission.INTERACT_ACROSS_PROFILES);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDateFormat.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDateFormat.java
new file mode 100644
index 0000000..74e6a81
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDateFormat.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import android.content.Context;
+import android.text.format.DateFormat;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+import java.util.Locale;
+
+@Implements(DateFormat.class)
+public class ShadowDateFormat {
+
+ @Implementation
+ protected static java.text.DateFormat getDateFormat(Context context) {
+ return new java.text.SimpleDateFormat("MMM-dd-yyyy", Locale.ROOT);
+ }
+
+ @Implementation
+ protected static java.text.DateFormat getLongDateFormat(Context context) {
+ return new java.text.SimpleDateFormat("MMMM dd, yyyy", Locale.ROOT);
+ }
+
+ @Implementation
+ protected static java.text.DateFormat getTimeFormat(Context context) {
+ return new java.text.SimpleDateFormat("HH:mm:ss", Locale.ROOT);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDevicePolicyManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDevicePolicyManager.java
index 76c675a..867a306 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDevicePolicyManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDevicePolicyManager.java
@@ -1,27 +1,50 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
package com.android.settings.testutils.shadow;
import static android.app.admin.DevicePolicyManager.DEVICE_OWNER_TYPE_DEFAULT;
import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
+import static android.os.Build.VERSION_CODES.O;
+import static android.os.Build.VERSION_CODES.Q;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.app.admin.DevicePolicyManager;
import android.app.admin.DevicePolicyManager.DeviceOwnerType;
+import android.app.admin.IDevicePolicyManager;
import android.app.admin.ManagedSubscriptionsPolicy;
import android.app.admin.PasswordMetrics;
import android.app.admin.PasswordPolicy;
import android.content.ComponentName;
+import android.content.Context;
-import org.robolectric.RuntimeEnvironment;
+import androidx.test.core.app.ApplicationProvider;
+
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadow.api.Shadow;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
+import java.util.Set;
@Implements(DevicePolicyManager.class)
public class ShadowDevicePolicyManager extends org.robolectric.shadows.ShadowDevicePolicyManager {
@@ -30,15 +53,22 @@
private final Map<String, Integer> mDeviceOwnerTypes = new HashMap<>();
private Map<Integer, CharSequence> mSupportMessagesMap = new HashMap<>();
private boolean mIsAdminActiveAsUser = false;
+ private ComponentName mProfileOwner;
private ComponentName mDeviceOwnerComponentName;
private ManagedSubscriptionsPolicy mManagedSubscriptionsPolicy;
private int mDeviceOwnerUserId = -1;
private int mPasswordMinQuality = PASSWORD_QUALITY_UNSPECIFIED;
private int mPasswordMinLength = 0;
private int mPasswordMinSymbols = 0;
+ private Set<String> mCrossProfileCalendarPackages = Collections.emptySet();
private List<String> mPermittedAccessibilityServices = null;
+ @Implementation(minSdk = O)
+ protected void __constructor__(Context context, IDevicePolicyManager service) {
+ super.__constructor__(ApplicationProvider.getApplicationContext(), service);
+ }
+
public void setShortSupportMessageForUser(ComponentName admin, int userHandle, String message) {
mSupportMessagesMap.put(Objects.hash(admin, userHandle), message);
}
@@ -137,6 +167,35 @@
public static ShadowDevicePolicyManager getShadow() {
return (ShadowDevicePolicyManager) Shadow.extract(
- RuntimeEnvironment.application.getSystemService(DevicePolicyManager.class));
+ ApplicationProvider.getApplicationContext()
+ .getSystemService(DevicePolicyManager.class));
+ }
+
+ // BEGIN-INTERNAL
+ @Implementation(minSdk = Q)
+ protected Set<String> getCrossProfileCalendarPackages() {
+ return mCrossProfileCalendarPackages;
+ }
+
+ @Implementation(minSdk = Q)
+ public void setCrossProfileCalendarPackages(ComponentName admin, Set<String> packageNames) {
+ enforceProfileOwner(admin);
+ mCrossProfileCalendarPackages = packageNames;
+ }
+
+ /**
+ * Sets the admin as active admin and profile owner.
+ *
+ * @see DevicePolicyManager#getProfileOwner()
+ */
+ public void setProfileOwner(ComponentName admin) {
+ setActiveAdmin(admin);
+ mProfileOwner = admin;
+ }
+
+ private void enforceProfileOwner(ComponentName admin) {
+ if (!admin.equals(mProfileOwner)) {
+ throw new SecurityException("[" + admin + "] is not a profile owner");
+ }
}
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDrawable.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDrawable.java
new file mode 100644
index 0000000..8dac1f1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowDrawable.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@Implements(ShadowDrawable.class)
+public class ShadowDrawable extends org.robolectric.shadows.ShadowDrawable {
+ private static int sDefaultIntrinsicWidth = -1;
+ private int mIntrinsicWidth = sDefaultIntrinsicWidth;
+
+ @Implementation
+ public int getIntrinsicWidth() {
+ return mIntrinsicWidth;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputManager.java
new file mode 100644
index 0000000..b116292
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowInputManager.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.testutils.shadow;
+
+import static org.robolectric.util.ReflectionHelpers.ClassParameter.from;
+
+import android.hardware.input.IInputManager;
+import android.hardware.input.InputManager;
+import android.os.Handler;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Shadow for {@link InputManager} that has accessors for registered
+ * {@link InputManager.InputDeviceListener}s.
+ */
+@Implements(value = InputManager.class, callThroughByDefault = false)
+public class ShadowInputManager extends org.robolectric.shadows.ShadowInputManager {
+
+ private List<InputManager.InputDeviceListener> mInputDeviceListeners;
+
+ @Implementation
+ protected void __constructor__(IInputManager service) {
+ mInputDeviceListeners = new ArrayList<>();
+ }
+
+ @Implementation
+ protected static InputManager getInstance() {
+ return ReflectionHelpers.callConstructor(
+ InputManager.class,
+ from(IInputManager.class, null));
+ }
+
+ @Implementation
+ protected void registerInputDeviceListener(InputManager.InputDeviceListener listener,
+ Handler handler) {
+ // TODO: Use handler.
+ if (!mInputDeviceListeners.contains(listener)) {
+ mInputDeviceListeners.add(listener);
+ }
+ }
+
+ @Implementation
+ protected void unregisterInputDeviceListener(InputManager.InputDeviceListener listener) {
+ mInputDeviceListeners.remove(listener);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyStore.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyStore.java
index 098dcfc..99eca0a 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyStore.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowKeyStore.java
@@ -28,7 +28,7 @@
private static boolean sIsHardwareBacked;
@Resetter
- public void reset() {
+ public static void reset() {
sIsHardwareBacked = false;
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPersistentDataBlockManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPersistentDataBlockManager.java
new file mode 100644
index 0000000..30ed0d1
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPersistentDataBlockManager.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import android.service.persistentdata.PersistentDataBlockManager;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+
+@Implements(PersistentDataBlockManager.class)
+public class ShadowPersistentDataBlockManager {
+ private static int sDataBlockSize = 0;
+
+ @Resetter
+ public static void reset() {
+ sDataBlockSize = 0;
+ }
+
+ @Implementation
+ protected int getDataBlockSize() {
+ return sDataBlockSize;
+ }
+
+ public static void setDataBlockSize(int dataBlockSize) {
+ sDataBlockSize = dataBlockSize;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSystemSettings.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSystemSettings.java
new file mode 100644
index 0000000..3bb046a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSystemSettings.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import static android.os.Build.VERSION_CODES.JELLY_BEAN_MR1;
+
+import android.content.ContentResolver;
+import android.provider.Settings;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+import org.robolectric.shadows.ShadowSettings;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.WeakHashMap;
+
+@Implements(value = Settings.System.class)
+public class ShadowSystemSettings extends ShadowSettings.ShadowSystem {
+ private static final Map<ContentResolver, Map<String, String>> sDataMap = new WeakHashMap<>();
+
+ @Resetter
+ public static void reset() {
+ sDataMap.clear();
+ }
+
+ @Implementation(minSdk = JELLY_BEAN_MR1)
+ protected static boolean putStringForUser(ContentResolver cr, String name, String value,
+ int userHandle) {
+ return putString(cr, name, value);
+ }
+
+ @Implementation(minSdk = JELLY_BEAN_MR1)
+ protected static String getStringForUser(ContentResolver cr, String name, int userHandle) {
+ return getString(cr, name);
+ }
+
+ @Implementation
+ protected static boolean putString(ContentResolver cr, String name, String value) {
+ get(cr).put(name, value);
+ return true;
+ }
+
+ @Implementation
+ protected static String getString(ContentResolver cr, String name) {
+ return get(cr).get(name);
+ }
+
+ private static Map<String, String> get(ContentResolver cr) {
+ Map<String, String> map = sDataMap.get(cr);
+ if (map == null) {
+ map = new HashMap<>();
+ sDataMap.put(cr, map);
+ }
+ return map;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
index 718e01b..89319c4 100644
--- a/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/MultiUserSwitchBarControllerTest.java
@@ -65,7 +65,7 @@
UserManager.DISALLOW_USER_SWITCH, true);
final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext,
- mSwitchBarController, null);
+ mSwitchBarController, true, null);
verify(mSwitchBarController).setDisabledByAdmin(any());
}
@@ -76,8 +76,32 @@
UserManager.DISALLOW_USER_SWITCH, false);
final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext,
- mSwitchBarController, null);
+ mSwitchBarController, true, null);
verify(mSwitchBarController, never()).setDisabledByAdmin(any());
}
+
+ @Test
+ public void onStart_allowUserSwitch_setDisabledAfterInitialization_shouldBeDisabled() {
+ mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+ UserManager.DISALLOW_USER_SWITCH, false);
+
+ final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext,
+ mSwitchBarController, true, null);
+ verify(mSwitchBarController).setEnabled(true);
+ controller.setToggleEnabled(false);
+ verify(mSwitchBarController).setEnabled(false);
+ }
+
+ @Test
+ public void onStart_allowUserSwitch_setEnabledAfterInitialization_shouldBeEnabled() {
+ mUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+ UserManager.DISALLOW_USER_SWITCH, false);
+
+ final MultiUserSwitchBarController controller = new MultiUserSwitchBarController(mContext,
+ mSwitchBarController, false, null);
+ verify(mSwitchBarController).setEnabled(false);
+ controller.setToggleEnabled(true);
+ verify(mSwitchBarController).setEnabled(true);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
index ca3521b..fbe4a05 100644
--- a/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserDetailsSettingsTest.java
@@ -81,7 +81,7 @@
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {
- ShadowUserManager.class,
+ // ShadowUserManager.class,
ShadowDevicePolicyManager.class
})
public class UserDetailsSettingsTest {
diff --git a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
index 9d818aa..37af4b1 100644
--- a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
@@ -97,6 +97,7 @@
ShadowUserManager.class,
ShadowDevicePolicyManager.class,
SettingsShadowResources.class,
+ com.android.settings.testutils.shadow.ShadowFragment.class,
})
public class UserSettingsTest {
diff --git a/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java b/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
index 9d7fbae..bed88e7 100644
--- a/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
+++ b/tests/robotests/src/com/android/settings/webview/WebViewAppPickerTest.java
@@ -41,6 +41,7 @@
import androidx.fragment.app.FragmentActivity;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settingslib.applications.DefaultAppInfo;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
@@ -54,15 +55,18 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
import org.robolectric.shadow.api.Shadow;
import org.robolectric.shadows.ShadowPackageManager;
-import org.robolectric.shadows.ShadowUserManager;
import org.robolectric.util.ReflectionHelpers;
import java.util.Arrays;
import java.util.Collections;
@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+ ShadowUserManager.class,
+})
public class WebViewAppPickerTest {
private final static String PACKAGE_NAME = "com.example.test";
diff --git a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
index ed0ff6d..bc816fa 100644
--- a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
@@ -84,7 +84,7 @@
@Test
public void testBuildView_constructedWithoutView_shouldCreateNewView() {
mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
- View view = mController.done(mActivity);
+ View view = mController.done();
assertThat(view).isNotNull();
}
@@ -92,7 +92,7 @@
@Test
public void testBuildView_withContext_shouldBuildPreferenceAllowedBelowDivider() {
mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
- Preference preference = mController.done(mActivity, mShadowContext);
+ Preference preference = mController.done(mShadowContext);
assertThat(preference instanceof LayoutPreference).isTrue();
assertThat(((LayoutPreference)preference).isAllowDividerBelow()).isTrue();
@@ -103,7 +103,7 @@
View inputView = mLayoutInflater.inflate(
com.android.settingslib.widget.R.layout.settings_entity_header, null /* root */);
mController = EntityHeaderController.newInstance(mActivity, mFragment, inputView);
- View view = mController.done(mActivity);
+ View view = mController.done();
assertThat(view).isSameInstanceAs(inputView);
}
@@ -123,7 +123,7 @@
mController.setSummary(testString);
mController.setSecondSummary(testString);
mController.setIcon(mShadowContext.getDrawable(R.drawable.ic_add_24dp));
- mController.done(mActivity);
+ mController.done();
assertThat(label).isNotNull();
assertThat(label.getText()).isEqualTo(testString);
@@ -144,15 +144,11 @@
when(mActivity.getApplicationContext()).thenReturn(mContext);
mController = EntityHeaderController.newInstance(mActivity, mFragment, view);
- mController.setEditListener(new View.OnClickListener() {
- public void onClick(View v) {
- // do nothing
- }
- });
+ mController.setEditListener(v -> {/* do nothing */});
mController.setButtonActions(
EntityHeaderController.ActionType.ACTION_EDIT_PREFERENCE,
EntityHeaderController.ActionType.ACTION_NONE);
- mController.done(mActivity);
+ mController.done();
final ImageButton button1 = view.findViewById(android.R.id.button1);
assertThat(button1).isNotNull();
@@ -175,7 +171,7 @@
mController.setButtonActions(
EntityHeaderController.ActionType.ACTION_EDIT_PREFERENCE,
EntityHeaderController.ActionType.ACTION_NONE);
- mController.done(mActivity);
+ mController.done();
assertThat(view.findViewById(android.R.id.button1).getVisibility()).isEqualTo(View.GONE);
assertThat(view.findViewById(android.R.id.button2).getVisibility()).isEqualTo(View.GONE);
@@ -195,7 +191,7 @@
.setButtonActions(
EntityHeaderController.ActionType.ACTION_NONE,
EntityHeaderController.ActionType.ACTION_NONE);
- mController.done(mActivity);
+ mController.done();
assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
.isEqualTo(View.GONE);
@@ -224,7 +220,7 @@
.setButtonActions(
EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
EntityHeaderController.ActionType.ACTION_NONE);
- mController.done(mActivity);
+ mController.done();
appLinks.findViewById(com.android.settingslib.widget.R.id.entity_header_content)
.performClick();
@@ -241,7 +237,7 @@
String description = "Fake Description";
mController.setIcon(mShadowContext.getDrawable(R.drawable.ic_add_24dp));
mController.setIconContentDescription(description);
- mController.done(mActivity);
+ mController.done();
assertThat(view.findViewById(R.id.entity_header_icon).getContentDescription().toString())
.isEqualTo(description);
}
@@ -254,7 +250,7 @@
mController = EntityHeaderController.newInstance(mActivity, mFragment, view);
String description = "Fake Description";
mController.setIconContentDescription(description);
- mController.done(mActivity);
+ mController.done();
assertThat(view.findViewById(R.id.entity_header_icon).getContentDescription().toString())
.isEqualTo(description);
}
@@ -269,7 +265,7 @@
.setButtonActions(
EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
EntityHeaderController.ActionType.ACTION_NONE);
- mController.done(mActivity);
+ mController.done();
assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
.isEqualTo(View.VISIBLE);
@@ -284,7 +280,7 @@
final View header = mLayoutInflater.inflate(
com.android.settingslib.widget.R.layout.settings_entity_header, null /* root */);
mController = EntityHeaderController.newInstance(mActivity, mFragment, header);
- mController.done(mActivity);
+ mController.done();
View installType = header.findViewById(com.android.settingslib.widget.R.id.install_type);
assertThat(installType.getVisibility()).isEqualTo(View.GONE);
@@ -297,7 +293,7 @@
com.android.settingslib.widget.R.layout.settings_entity_header, null /* root */);
mController = EntityHeaderController.newInstance(mActivity, mFragment, header);
mController.setIsInstantApp(true);
- mController.done(mActivity);
+ mController.done();
TextView label = header.findViewById(com.android.settingslib.widget.R.id.install_type);
assertThat(label.getVisibility()).isEqualTo(View.VISIBLE);
diff --git a/tests/robotests/src/com/android/settings/widget/RestrictedButtonTest.java b/tests/robotests/src/com/android/settings/widget/RestrictedButtonTest.java
new file mode 100644
index 0000000..4b05b91
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/widget/RestrictedButtonTest.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.widget;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.os.UserManager.EnforcingUser;
+import android.view.View.OnClickListener;
+
+import androidx.fragment.app.FragmentActivity;
+
+import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class, ShadowDevicePolicyManager.class})
+public class RestrictedButtonTest {
+
+ private RestrictedButton mButton;
+ private OnClickListener mOnClickListener;
+ private UserHandle mUser;
+
+ @Before
+ public void setUp() {
+ mButton = new RestrictedButton(Robolectric.setupActivity(FragmentActivity.class));
+ mOnClickListener = mock(OnClickListener.class);
+ mButton.setOnClickListener(mOnClickListener);
+
+ int userId = UserHandle.myUserId();
+ mUser = UserHandle.of(userId);
+ List<EnforcingUser> enforcingUsers = new ArrayList<>();
+ enforcingUsers.add(new EnforcingUser(userId, UserManager.RESTRICTION_SOURCE_DEVICE_OWNER));
+ // Ensure that RestrictedLockUtils.checkIfRestrictionEnforced doesn't return null.
+ ShadowUserManager.getShadow().setUserRestrictionSources(
+ UserManager.DISALLOW_MODIFY_ACCOUNTS,
+ mUser,
+ enforcingUsers);
+ }
+
+ @Test
+ public void performClick_buttonIsNotInited_shouldCallListener() {
+ mButton.performClick();
+
+ verify(mOnClickListener).onClick(eq(mButton));
+ }
+
+ @Test
+ public void performClick_noRestriction_shouldCallListener() {
+ mButton.init(mUser, UserManager.DISALLOW_ADJUST_VOLUME);
+
+ mButton.performClick();
+
+ verify(mOnClickListener).onClick(eq(mButton));
+ }
+
+ @Test
+ public void performClick_hasRestriction_shouldNotCallListener() {
+ mButton.init(mUser, UserManager.DISALLOW_MODIFY_ACCOUNTS);
+
+ mButton.performClick();
+
+ verify(mOnClickListener, never()).onClick(eq(mButton));
+ }
+
+ @Test
+ public void updateState_noRestriction_shouldEnableButton() {
+ mButton.init(mUser, UserManager.DISALLOW_ADJUST_VOLUME);
+
+ mButton.updateState();
+
+ assertThat(mButton.isEnabled()).isTrue();
+ }
+
+ @Test
+ public void updateState_noRestriction_shoulddisableButton() {
+ mButton.init(mUser, UserManager.DISALLOW_MODIFY_ACCOUNTS);
+
+ mButton.updateState();
+
+ assertThat(mButton.isEnabled()).isFalse();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java
index dc69d8e..49b7840 100644
--- a/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java
+++ b/tests/robotests/src/com/android/settings/widget/SettingsMainSwitchBarTest.java
@@ -21,7 +21,7 @@
import android.content.Context;
import android.widget.TextView;
-import com.android.settingslib.R;
+import com.android.settings.R;
import com.android.settingslib.RestrictedLockUtils;
import org.junit.Before;
diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
index dcd9b36..7c9f665 100644
--- a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
@@ -299,8 +299,6 @@
ShadowEntityHeaderController.setUseMock(mMockHeaderController);
// builder pattern
- when(mMockHeaderController.setRecyclerView(mMockFragment.getListView(), mLifecycle))
- .thenReturn(mMockHeaderController);
when(mMockHeaderController.setSummary(nullable(String.class)))
.thenReturn(mMockHeaderController);
when(mMockHeaderController.setSecondSummary(nullable(String.class)))
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
index 5ed2e8b..5c3f920 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/WifiSliceTest.java
@@ -18,8 +18,10 @@
import static android.app.slice.Slice.HINT_LIST_ITEM;
import static android.app.slice.SliceItem.FORMAT_SLICE;
+import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_PHONE;
import static com.android.settings.wifi.slice.WifiSlice.DEFAULT_EXPANDED_ROW_COUNT;
+import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource;
import static com.google.common.truth.Truth.assertThat;
@@ -49,6 +51,7 @@
import com.android.settings.slices.SliceBackgroundWorker;
import com.android.settings.testutils.SliceTester;
import com.android.settings.testutils.shadow.ShadowWifiSlice;
+import com.android.settings.wifi.WifiUtils;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiEntry.ConnectedState;
@@ -335,6 +338,27 @@
assertThat(wifiManager.getWifiState()).isEqualTo(WifiManager.WIFI_STATE_ENABLED);
}
+ @Test
+ public void getWifiIconResId_isInstantHotspotNetwork_returnHotspotIcon() {
+ WifiSliceItem wifiSliceItem = mock(WifiSliceItem.class);
+ when(wifiSliceItem.isInstantHotspotNetwork()).thenReturn(true);
+ when(wifiSliceItem.getInstantHotspotDeviceType()).thenReturn(DEVICE_TYPE_PHONE);
+
+ assertThat(mWifiSlice.getWifiIconResId(wifiSliceItem))
+ .isEqualTo(getHotspotIconResource(DEVICE_TYPE_PHONE));
+ }
+
+ @Test
+ public void getWifiIconResId_notInstantHotspotNetwork_returnInternetIcon() {
+ WifiSliceItem wifiSliceItem = mock(WifiSliceItem.class);
+ when(wifiSliceItem.isInstantHotspotNetwork()).thenReturn(false);
+ when(wifiSliceItem.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_MAX);
+ when(wifiSliceItem.shouldShowXLevelIcon()).thenReturn(false);
+
+ assertThat(mWifiSlice.getWifiIconResId(wifiSliceItem))
+ .isEqualTo(WifiUtils.getInternetIconResource(WifiEntry.WIFI_LEVEL_MAX, false));
+ }
+
@Implements(SliceBackgroundWorker.class)
public static class ShadowSliceBackgroundWorker {
private static WifiScanWorker mWifiScanWorker = mock(WifiScanWorker.class);
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
index 9f56fcd..84a7b36 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
@@ -23,6 +23,7 @@
import static com.android.settings.wifi.WifiUtils.setCanShowWifiHotspotCached;
import static com.android.settings.wifi.repository.WifiHotspotRepository.BAND_2GHZ_5GHZ_6GHZ;
+import static com.android.settings.wifi.tether.WifiTetherSettings.KEY_INSTANT_HOTSPOT;
import static com.android.settings.wifi.tether.WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY;
import static com.android.settings.wifi.tether.WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED;
@@ -90,6 +91,7 @@
private static final String[] WIFI_REGEXS = {"wifi_regexs"};
private static final String SSID = "ssid";
private static final String PASSWORD = "password";
+ private static final String SUMMARY = "summary";
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -133,6 +135,10 @@
private WifiTetherAutoOffPreferenceController mWifiTetherAutoOffPreferenceController;
@Mock
private WifiTetherMaximizeCompatibilityPreferenceController mMaxCompatibilityPrefController;
+ @Mock
+ private Preference mInstantHotspot;
+ @Mock
+ private LiveData<String> mInstantHotspotSummary;
private WifiTetherSettings mSettings;
@@ -155,8 +161,10 @@
when(provider.getWifiTetherViewModel(mock(ViewModelStoreOwner.class)))
.thenReturn(mWifiTetherViewModel);
when(mWifiTetherViewModel.isSpeedFeatureAvailable()).thenReturn(false);
+ when(mWifiTetherViewModel.isInstantHotspotFeatureAvailable()).thenReturn(true);
when(mWifiTetherViewModel.getSecuritySummary()).thenReturn(mSecuritySummary);
when(mWifiTetherViewModel.getSpeedSummary()).thenReturn(mSpeedSummary);
+ when(mWifiTetherViewModel.getInstantHotspotSummary()).thenReturn(mInstantHotspotSummary);
mSettings = spy(new WifiTetherSettings(mWifiRestriction));
mSettings.mMainSwitchBar = mMainSwitchBar;
@@ -172,6 +180,8 @@
mSettings.mWifiTetherViewModel = mWifiTetherViewModel;
when(mSettings.findPreference(KEY_WIFI_HOTSPOT_SECURITY)).thenReturn(mWifiHotspotSecurity);
when(mSettings.findPreference(KEY_WIFI_HOTSPOT_SPEED)).thenReturn(mWifiHotspotSpeed);
+ when(mSettings.findPreference(KEY_INSTANT_HOTSPOT)).thenReturn(mInstantHotspot);
+ mSettings.mInstantHotspot = mInstantHotspot;
}
@Test
@@ -373,6 +383,47 @@
}
@Test
+ public void setupInstantHotspot_featureNotAvailable_doNothing() {
+ mSettings.setupInstantHotspot(false /* isFeatureAvailable */);
+
+ verify(mSettings, never()).findPreference(KEY_INSTANT_HOTSPOT);
+ verify(mWifiTetherViewModel, never()).getInstantHotspotSummary();
+ }
+
+ @Test
+ public void setupInstantHotspot_featureAvailable_doSetup() {
+ when(mWifiTetherViewModel.isInstantHotspotFeatureAvailable()).thenReturn(true);
+
+ mSettings.setupInstantHotspot(true /* isFeatureAvailable */);
+
+ verify(mSettings).findPreference(KEY_INSTANT_HOTSPOT);
+ verify(mInstantHotspotSummary).observe(any(), any());
+ verify(mInstantHotspot).setOnPreferenceClickListener(any());
+ }
+
+ @Test
+ public void onInstantHotspotChanged_nullRecord_setVisibleFalse() {
+ mSettings.onInstantHotspotChanged(null);
+
+ verify(mInstantHotspot).setVisible(false);
+ }
+
+ @Test
+ public void onInstantHotspotChanged_summaryNull_setVisibleFalse() {
+ mSettings.onInstantHotspotChanged(null);
+
+ verify(mInstantHotspot).setVisible(false);
+ }
+
+ @Test
+ public void onInstantHotspotChanged_summaryNotNull_setVisibleAndSummary() {
+ mSettings.onInstantHotspotChanged(SUMMARY);
+
+ verify(mInstantHotspot).setVisible(true);
+ verify(mInstantHotspot).setSummary(SUMMARY);
+ }
+
+ @Test
public void buildNewConfig_speedFeatureIsAvailableAndPasswordChanged_bandShouldNotBeLost() {
String newPassword = "new" + PASSWORD;
SoftApConfiguration currentConfig = new SoftApConfiguration.Builder()
diff --git a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
index 0b3d3f9..c8d2866 100644
--- a/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
+++ b/tests/robotests/testutils/com/android/settings/testutils/shadow/ShadowUserManager.java
@@ -16,6 +16,8 @@
package com.android.settings.testutils.shadow;
+import static android.os.Build.VERSION_CODES.LOLLIPOP;
+
import android.annotation.UserIdInt;
import android.content.pm.UserInfo;
import android.os.Bundle;
@@ -24,6 +26,9 @@
import android.os.UserManager.EnforcingUser;
import com.google.android.collect.Maps;
+import com.google.common.collect.BiMap;
+import com.google.common.collect.HashBiMap;
+import com.google.common.collect.ImmutableList;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Implementation;
@@ -32,6 +37,7 @@
import org.robolectric.shadow.api.Shadow;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
@@ -43,6 +49,7 @@
public class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager {
private static boolean sIsSupportsMultipleUsers;
+ private static boolean sIsMultipleAdminEnabled = false;
private static final int PRIMARY_USER_ID = 0;
@@ -50,12 +57,16 @@
private final Map<String, List<EnforcingUser>> mRestrictionSources = new HashMap<>();
private final List<UserInfo> mUserProfileInfos = new ArrayList<>();
private final Set<Integer> mManagedProfiles = new HashSet<>();
+ private final Map<Integer, Integer> mProfileToParent = new HashMap<>();
+ private final Map<Integer, UserInfo> mUserInfoMap = new HashMap<>();
private final Set<String> mEnabledTypes = new HashSet<>();
+ private BiMap<UserHandle, Long> mUserProfiles = HashBiMap.create();
private boolean mIsQuietModeEnabled = false;
private int[] mProfileIdsForUser = new int[0];
private boolean mUserSwitchEnabled;
private Bundle mDefaultGuestUserRestriction = new Bundle();
private boolean mIsGuestUser = false;
+ private long mNextUserSerial = 0;
private @UserManager.UserSwitchabilityResult int mSwitchabilityStatus =
UserManager.SWITCHABILITY_STATUS_OK;
@@ -70,11 +81,47 @@
sIsSupportsMultipleUsers = false;
}
+ /**
+ * Creates a user with the specified name, userId and flags.
+ *
+ * @param id the unique id of user
+ * @param name name of the user
+ * @param flags 16 bits for user type. See {@link UserInfo#flags}
+ */
+ @Override public UserHandle addUser(int id, String name, int flags) {
+ UserHandle userHandle = super.addUser(id, name, flags);
+ mUserInfoMap.put(id, new UserInfo(id, name, flags));
+ return userHandle;
+ }
+
+ /** Add a profile to be returned by {@link #getProfiles(int)}. */
+ public void addProfile(
+ int userHandle, int profileUserHandle, String profileName, int profileFlags) {
+ UserInfo profileUserInfo = new UserInfo(profileUserHandle, profileName, profileFlags);
+ mUserProfileInfos.add(profileUserInfo);
+ mUserInfoMap.put(profileUserHandle, profileUserInfo);
+ mProfileToParent.put(profileUserHandle, userHandle);
+ if (profileFlags == UserInfo.FLAG_MANAGED_PROFILE) {
+ setManagedProfiles(new HashSet<>(Arrays.asList(profileUserHandle)));
+ }
+ }
+
@Implementation
protected List<UserInfo> getProfiles(@UserIdInt int userHandle) {
return mUserProfileInfos;
}
+ /**
+ * If this profile has been added using {@link #addProfile}, return its parent.
+ */
+ @Implementation(minSdk = LOLLIPOP)
+ protected UserInfo getProfileParent(int userHandle) {
+ if (!mProfileToParent.containsKey(userHandle)) {
+ return null;
+ }
+ return mUserInfoMap.get(mProfileToParent.get(userHandle));
+ }
+
@Implementation
protected int[] getProfileIds(@UserIdInt int userHandle, boolean enabledOnly) {
int[] ids = new int[mUserProfileInfos.size()];
@@ -272,6 +319,19 @@
}
}
+ /**
+ * Sets that the current user is an admin user; controls the return value of
+ * {@link UserManager#isAdminUser}.
+ */
+ public void setIsAdminUser(boolean isAdminUser) {
+ UserInfo userInfo = getUserInfo(UserHandle.myUserId());
+ if (isAdminUser) {
+ userInfo.flags |= UserInfo.FLAG_ADMIN;
+ } else {
+ userInfo.flags &= ~UserInfo.FLAG_ADMIN;
+ }
+ }
+
@Implementation
protected boolean isGuestUser() {
return mIsGuestUser;
@@ -280,4 +340,27 @@
public void setGuestUser(boolean isGuestUser) {
mIsGuestUser = isGuestUser;
}
+
+ public static void setIsMultipleAdminEnabled(boolean enableMultipleAdmin) {
+ sIsMultipleAdminEnabled = enableMultipleAdmin;
+ }
+
+ /**
+ * Adds a profile associated for the user that the calling process is running on.
+ *
+ * <p>The user is assigned an arbitrary unique serial number.
+ *
+ * @return the user's serial number
+ * @deprecated use either addUser() or addProfile()
+ */
+ @Deprecated
+ public long addUserProfile(UserHandle userHandle) {
+ long serialNumber = mNextUserSerial++;
+ mUserProfiles.put(userHandle, serialNumber);
+ return serialNumber;
+ }
+
+ protected List<UserHandle> getUserProfiles() {
+ return ImmutableList.copyOf(mUserProfiles.keySet());
+ }
}
diff --git a/tests/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 68ad065..ccd385f 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
@@ -31,9 +31,8 @@
import com.android.settings.R
import com.android.settingslib.spa.framework.compose.stateOf
import com.android.settingslib.spa.testutils.FakeNavControllerWrapper
-import com.android.settingslib.spa.testutils.any
import com.android.settingslib.spaprivileged.template.app.AppListItemModel
-import com.google.common.truth.Truth
+import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.flow.first
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.runTest
@@ -41,12 +40,13 @@
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
-import org.mockito.ArgumentCaptor
-import org.mockito.ArgumentMatchers.eq
import org.mockito.Mock
-import org.mockito.Mockito
import org.mockito.junit.MockitoJUnit
import org.mockito.junit.MockitoRule
+import org.mockito.kotlin.any
+import org.mockito.kotlin.argumentCaptor
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class)
class BackgroundInstalledAppsPageProviderTest {
@@ -67,26 +67,25 @@
@Mock
private lateinit var mockBackgroundInstallControlService: IBackgroundInstallControlService
- private var packageInfoFlagsCaptor =
- ArgumentCaptor.forClass(PackageManager.PackageInfoFlags::class.java)
+ private var packageInfoFlagsCaptor = argumentCaptor<PackageManager.PackageInfoFlags>()
private val fakeNavControllerWrapper = FakeNavControllerWrapper()
@Before
fun setup() {
- Mockito.`when`(mockContext.packageManager).thenReturn(mockPackageManager)
+ whenever(mockContext.packageManager).thenReturn(mockPackageManager)
}
@Test
fun allAppListPageProvider_name() {
- Truth.assertThat(BackgroundInstalledAppsPageProvider.name)
+ assertThat(BackgroundInstalledAppsPageProvider.name)
.isEqualTo(EXPECTED_PROVIDER_NAME)
}
@Test
fun injectEntry_title() {
- Mockito.`when`(mockBackgroundInstallControlService
- .getBackgroundInstalledPackages(any(Long::class.java), any(Int::class.java)))
+ whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(any(), any()))
.thenReturn(ParceledListSlice(listOf()))
+
setInjectEntry(false)
composeTestRule.onNodeWithText(
@@ -103,9 +102,9 @@
@Test
fun injectEntry_summary() {
- Mockito.`when`(mockBackgroundInstallControlService
- .getBackgroundInstalledPackages(any(Long::class.java), any(Int::class.java)))
+ whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(any(), any()))
.thenReturn(ParceledListSlice(listOf()))
+
setInjectEntry(false)
composeTestRule.onNodeWithText("0 apps").assertIsDisplayed()
@@ -120,15 +119,14 @@
@Test
fun injectEntry_onClick_navigate() {
- Mockito.`when`(mockBackgroundInstallControlService
- .getBackgroundInstalledPackages(any(Long::class.java), any(Int::class.java)))
+ whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(any(), any()))
.thenReturn(ParceledListSlice(listOf()))
setInjectEntry(false)
composeTestRule.onNodeWithText(
context.getString(R.string.background_install_title)).performClick()
- Truth.assertThat(fakeNavControllerWrapper.navigateCalledWith)
+ assertThat(fakeNavControllerWrapper.navigateCalledWith)
.isEqualTo(EXPECTED_PROVIDER_NAME)
}
@@ -166,7 +164,7 @@
composeTestRule.onNodeWithText(TEST_LABEL).performClick()
- Truth.assertThat(fakeNavControllerWrapper.navigateCalledWith)
+ assertThat(fakeNavControllerWrapper.navigateCalledWith)
.isEqualTo("AppInfoSettings/package.name/0")
}
@@ -181,7 +179,7 @@
System.currentTimeMillis()
))
- Truth.assertThat(actualGroupTitle).isEqualTo("Apps installed in the last 6 months")
+ assertThat(actualGroupTitle).isEqualTo("Apps installed in the last 6 months")
}
@Test
@@ -195,13 +193,13 @@
0L
))
- Truth.assertThat(actualGroupTitle).isEqualTo("Apps installed more than 6 months ago")
+ assertThat(actualGroupTitle).isEqualTo("Apps installed more than 6 months ago")
}
@Test
fun backgroundInstalledAppsWithGroupingListModel_transform() = runTest {
val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
- Mockito.`when`(mockPackageManager.getPackageInfoAsUser(
+ whenever(mockPackageManager.getPackageInfoAsUser(
eq(TEST_PACKAGE_NAME),
packageInfoFlagsCaptor.capture(),
eq(TEST_USER_ID))
@@ -211,16 +209,16 @@
val recordList = recordListFlow.first()
- Truth.assertThat(recordList).hasSize(1)
- Truth.assertThat(recordList[0].app).isSameInstanceAs(APP)
- Truth.assertThat(packageInfoFlagsCaptor.value.value).isEqualTo(EXPECTED_PACKAGE_INFO_FLAG)
+ assertThat(recordList).hasSize(1)
+ assertThat(recordList[0].app).isSameInstanceAs(APP)
+ assertThat(packageInfoFlagsCaptor.firstValue.value).isEqualTo(EXPECTED_PACKAGE_INFO_FLAG)
}
@Test
fun backgroundInstalledAppsWithGroupingListModel_filter() = runTest {
val listModel = BackgroundInstalledAppsWithGroupingListModel(mockContext)
listModel.setBackgroundInstallControlService(mockBackgroundInstallControlService)
- Mockito.`when`(mockBackgroundInstallControlService.getBackgroundInstalledPackages(
+ whenever(mockBackgroundInstallControlService.getBackgroundInstalledPackages(
PackageManager.MATCH_ALL.toLong(),
TEST_USER_ID
)).thenReturn(ParceledListSlice(listOf(PACKAGE_INFO)))
@@ -231,10 +229,9 @@
flowOf(listOf(APP_RECORD_WITH_PACKAGE_MATCH, APP_RECORD_WITHOUT_PACKAGE_MATCH))
)
-
val recordList = recordListFlow.first()
- Truth.assertThat(recordList).hasSize(1)
- Truth.assertThat(recordList[0]).isSameInstanceAs(APP_RECORD_WITH_PACKAGE_MATCH)
+ assertThat(recordList).hasSize(1)
+ assertThat(recordList[0]).isSameInstanceAs(APP_RECORD_WITH_PACKAGE_MATCH)
}
private fun setItemContent() {
diff --git a/tests/spa_unit/src/com/android/settings/spa/notification/AppNotificationRepositoryTest.kt b/tests/spa_unit/src/com/android/settings/spa/notification/AppNotificationRepositoryTest.kt
index 87ff9ba..5dcc671 100644
--- a/tests/spa_unit/src/com/android/settings/spa/notification/AppNotificationRepositoryTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/notification/AppNotificationRepositoryTest.kt
@@ -30,7 +30,6 @@
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R
-import com.android.settingslib.spa.testutils.any
import com.android.settingslib.spaprivileged.model.app.IPackageManagers
import com.android.settingslib.spaprivileged.model.app.userId
import com.google.common.truth.Truth.assertThat
@@ -42,11 +41,12 @@
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
-import org.mockito.Mockito.eq
-import org.mockito.Mockito.verify
import org.mockito.junit.MockitoJUnit
import org.mockito.junit.MockitoRule
-import org.mockito.Mockito.`when` as whenever
+import org.mockito.kotlin.any
+import org.mockito.kotlin.eq
+import org.mockito.kotlin.verify
+import org.mockito.kotlin.whenever
@RunWith(AndroidJUnit4::class)
class AppNotificationRepositoryTest {
diff --git a/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java b/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
index b80e9d2..cb5860a 100644
--- a/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
+++ b/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
@@ -18,9 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import android.net.NetworkPolicy;
-import android.net.NetworkTemplate;
-
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settingslib.net.DataUsageController.DataUsageInfo;
@@ -32,7 +29,6 @@
@RunWith(AndroidJUnit4.class)
public class DataUsageInfoControllerTest {
- private static final int NEGATIVE = -1;
private static final int ZERO = 0;
private static final int POSITIVE_SMALL = 1;
private static final int POSITIVE_LARGE = 5;
@@ -99,80 +95,4 @@
assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.usageLevel);
}
-
- private NetworkPolicy getDefaultNetworkPolicy() {
- NetworkTemplate template = new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI).build();
- int cycleDay = -1;
- String cycleTimezone = "UTC";
- long warningBytes = -1;
- long limitBytes = -1;
- return new NetworkPolicy(template, cycleDay, cycleTimezone, warningBytes, limitBytes, true);
- }
-
- @Test
- public void updateDataLimit_NullArguments_NoError() {
- mInfoController.updateDataLimit(null, null);
- mInfoController.updateDataLimit(info, null);
- mInfoController.updateDataLimit(null, getDefaultNetworkPolicy());
- }
-
- @Test
- public void updateDataLimit_NegativeWarning_UpdatedToZero() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.warningBytes = NEGATIVE;
-
- mInfoController.updateDataLimit(info, policy);
-
- assertThat(info.warningLevel).isEqualTo(ZERO);
- }
-
- @Test
- public void updateDataLimit_WarningZero_UpdatedToZero() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.warningBytes = ZERO;
-
- mInfoController.updateDataLimit(info, policy);
-
- assertThat(info.warningLevel).isEqualTo(ZERO);
- }
-
- @Test
- public void updateDataLimit_WarningPositive_UpdatedToWarning() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.warningBytes = POSITIVE_SMALL;
-
- mInfoController.updateDataLimit(info, policy);
-
- assertThat(info.warningLevel).isEqualTo(policy.warningBytes);
- }
-
- @Test
- public void updateDataLimit_LimitNegative_UpdatedToZero() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.limitBytes = NEGATIVE;
-
- mInfoController.updateDataLimit(info, policy);
-
- assertThat(info.limitLevel).isEqualTo(ZERO);
- }
-
- @Test
- public void updateDataLimit_LimitZero_UpdatedToZero() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.limitBytes = ZERO;
-
- mInfoController.updateDataLimit(info, policy);
-
- assertThat(info.limitLevel).isEqualTo(ZERO);
- }
-
- @Test
- public void updateDataLimit_LimitPositive_UpdatedToLimit() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.limitBytes = POSITIVE_SMALL;
-
- mInfoController.updateDataLimit(info, policy);
-
- assertThat(info.limitLevel).isEqualTo(policy.limitBytes);
- }
}
diff --git a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FakeFingerprintManagerInteractor.kt b/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FakeFingerprintManagerInteractor.kt
index 1848c01..759306e 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FakeFingerprintManagerInteractor.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FakeFingerprintManagerInteractor.kt
@@ -20,8 +20,8 @@
import android.hardware.fingerprint.FingerprintSensorProperties.TYPE_POWER_BUTTON
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
diff --git a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt b/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt
index 7af740a..cc6f42a 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/domain/interactor/FingerprintManagerInteractorTest.kt
@@ -29,8 +29,8 @@
import com.android.settings.biometrics.GatekeeperPasswordProvider
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractor
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
import com.android.settings.password.ChooseLockSettingsHelper
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.cancelAndJoin
diff --git a/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsNavigationViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/settings/viewmodel/FingerprintSettingsNavigationViewModelTest.kt
similarity index 93%
rename from tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsNavigationViewModelTest.kt
rename to tests/unit/src/com/android/settings/fingerprint2/settings/viewmodel/FingerprintSettingsNavigationViewModelTest.kt
index 9206afb..6bb8a16 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsNavigationViewModelTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/settings/viewmodel/FingerprintSettingsNavigationViewModelTest.kt
@@ -14,18 +14,18 @@
* limitations under the License.
*/
-package com.android.settings.fingerprint2.viewmodel
+package com.android.settings.fingerprint2.settings.viewmodel
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import com.android.settings.biometrics.BiometricEnrollBase
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.EnrollFirstFingerprint
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettings
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FinishSettingsWithResult
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.LaunchConfirmDeviceCredential
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.NextStepViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.ShowSettings
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.EnrollFirstFingerprint
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettings
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FinishSettingsWithResult
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.LaunchConfirmDeviceCredential
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.NextStepViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.ShowSettings
import com.android.settings.fingerprint2.domain.interactor.FakeFingerprintManagerInteractor
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.Dispatchers
diff --git a/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsViewModelTest.kt b/tests/unit/src/com/android/settings/fingerprint2/settings/viewmodel/FingerprintSettingsViewModelTest.kt
similarity index 96%
rename from tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsViewModelTest.kt
rename to tests/unit/src/com/android/settings/fingerprint2/settings/viewmodel/FingerprintSettingsViewModelTest.kt
index 8bd0b10..e8a4d55 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/viewmodel/FingerprintSettingsViewModelTest.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/settings/viewmodel/FingerprintSettingsViewModelTest.kt
@@ -14,17 +14,17 @@
* limitations under the License.
*/
-package com.android.settings.fingerprint2.viewmodel
+package com.android.settings.fingerprint2.settings.viewmodel
import android.hardware.biometrics.SensorProperties
import android.hardware.fingerprint.FingerprintSensorProperties
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintAuthAttemptViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintSettingsViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.FingerprintViewModel
-import com.android.settings.biometrics.fingerprint2.ui.viewmodel.PreferenceViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintAuthAttemptViewModel
+import com.android.settings.biometrics.fingerprint2.shared.model.FingerprintViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsNavigationViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.FingerprintSettingsViewModel
+import com.android.settings.biometrics.fingerprint2.ui.settings.viewmodel.PreferenceViewModel
import com.android.settings.fingerprint2.domain.interactor.FakeFingerprintManagerInteractor
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.Dispatchers
diff --git a/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java b/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java
index 5ac367e..31b8e79 100644
--- a/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/localepicker/LocaleHelperPreferenceControllerTest.java
@@ -19,14 +19,12 @@
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.verify;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Looper;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
-import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settingslib.widget.FooterPreference;
import org.junit.Before;
@@ -39,7 +37,6 @@
public class LocaleHelperPreferenceControllerTest {
private Context mContext;
private LocaleHelperPreferenceController mLocaleHelperPreferenceController;
- private FakeFeatureFactory mFeatureFactory;
@Mock
private FooterPreference mMockFooterPreference;
@@ -52,16 +49,11 @@
}
mContext = ApplicationProvider.getApplicationContext();
mLocaleHelperPreferenceController = new LocaleHelperPreferenceController(mContext);
- mFeatureFactory = FakeFeatureFactory.setupForTest();
}
@Test
public void updateFooterPreference_setFooterPreference_hasClickAction() {
mLocaleHelperPreferenceController.updateFooterPreference(mMockFooterPreference);
verify(mMockFooterPreference).setLearnMoreText(anyString());
- mMockFooterPreference.setLearnMoreAction(v -> {
- verify(mFeatureFactory.metricsFeatureProvider).action(
- mContext, SettingsEnums.ACTION_LANGUAGES_LEARN_MORE);
- });
}
}
diff --git a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
index 5c42ad9..0a67824 100644
--- a/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
+++ b/tests/unit/src/com/android/settings/regionalpreferences/NumberingSystemItemControllerTest.java
@@ -24,7 +24,6 @@
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
-import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Bundle;
import android.os.LocaleList;
@@ -52,7 +51,6 @@
private NumberingPreferencesFragment mFragment;
private PreferenceScreen mPreferenceScreen;
private LocaleList mCacheLocale;
- private FakeFeatureFactory mFeatureFactory;
@Before
@UiThreadTest
@@ -61,7 +59,6 @@
Looper.prepare();
}
mApplicationContext = ApplicationProvider.getApplicationContext();
- mFeatureFactory = FakeFeatureFactory.setupForTest();
mFragment = spy(new NumberingPreferencesFragment());
PreferenceManager preferenceManager = new PreferenceManager(mApplicationContext);
mPreferenceScreen = preferenceManager.createPreferenceScreen(mApplicationContext);
@@ -97,10 +94,6 @@
}
assertTrue(isCallingStartActivity);
- verify(mFeatureFactory.metricsFeatureProvider).action(
- mApplicationContext,
- SettingsEnums.ACTION_CHOOSE_LANGUAGE_FOR_NUMBERS_PREFERENCES,
- "I_am_the_key");
}
@Test
@@ -121,9 +114,6 @@
mController.handlePreferenceTreeClick(preference);
verify(mFragment).setArguments(any());
- verify(mFeatureFactory.metricsFeatureProvider).action(
- mApplicationContext, SettingsEnums.ACTION_SET_NUMBERS_PREFERENCES,
- "test_key");
}
@Test
diff --git a/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.java b/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.java
deleted file mode 100644
index a232034..0000000
--- a/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.sim;
-
-import static android.os.UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.UserManager;
-
-import androidx.test.annotation.UiThreadTest;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.Spy;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-@UiThreadTest
-public class SimDialogActivityTest {
- @Rule
- public final MockitoRule mMockitoRule = MockitoJUnit.rule();
- @Spy
- private final Context mContext = ApplicationProvider.getApplicationContext();
- @Mock
- private UserManager mUserManager;
-
- private MockSimDialogActivity mActivity;
-
- @Before
- public void setUp() {
- when(mContext.getSystemService(UserManager.class)).thenReturn(mUserManager);
- when(mUserManager.isGuestUser()).thenReturn(false);
- when(mUserManager.hasUserRestriction(DISALLOW_CONFIG_MOBILE_NETWORKS)).thenReturn(false);
-
- mActivity = new MockSimDialogActivity();
- }
-
- @Test
- public void isUiRestricted_normally_returnFalse() {
- assertThat(mActivity.isUiRestricted()).isFalse();
- }
-
- @Test
- public void isUiRestricted_isGuestUser_returnTrue() {
- when(mUserManager.isGuestUser()).thenReturn(true);
-
- assertThat(mActivity.isUiRestricted()).isTrue();
- }
-
- @Test
- public void isUiRestricted_hasUserRestriction_returnTrue() {
- when(mUserManager.hasUserRestriction(DISALLOW_CONFIG_MOBILE_NETWORKS)).thenReturn(true);
-
- assertThat(mActivity.isUiRestricted()).isTrue();
- }
-
- public class MockSimDialogActivity extends SimDialogActivity {
- @Override
- public Context getApplicationContext() {
- return mContext;
- }
- }
-}
diff --git a/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.kt b/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.kt
new file mode 100644
index 0000000..9546d69
--- /dev/null
+++ b/tests/unit/src/com/android/settings/sim/SimDialogActivityTest.kt
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.sim
+
+import android.content.Context
+import android.os.UserManager
+import androidx.test.annotation.UiThreadTest
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.spaprivileged.framework.common.userManager
+import com.google.common.truth.Truth.assertThat
+import org.junit.Before
+import org.junit.Rule
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.Mock
+import org.mockito.Spy
+import org.mockito.junit.MockitoJUnit
+import org.mockito.junit.MockitoRule
+import org.mockito.Mockito.`when` as whenever
+
+@RunWith(AndroidJUnit4::class)
+@UiThreadTest
+class SimDialogActivityTest {
+ @get:Rule
+ val mockito: MockitoRule = MockitoJUnit.rule()
+
+ @Spy
+ private val context: Context = ApplicationProvider.getApplicationContext()
+
+ @Mock
+ private lateinit var userManager: UserManager
+
+ private var activity = MockSimDialogActivity()
+
+ @Before
+ fun setUp() {
+ whenever(context.userManager).thenReturn(userManager)
+ whenever(userManager.isGuestUser).thenReturn(false)
+ whenever(userManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS))
+ .thenReturn(false)
+ }
+
+ @Test
+ fun isUiRestricted_normally_returnFalse() {
+ assertThat(activity.isUiRestricted).isFalse()
+ }
+
+ @Test
+ fun isUiRestricted_isGuestUser_returnTrue() {
+ whenever(userManager.isGuestUser).thenReturn(true)
+
+ assertThat(activity.isUiRestricted).isTrue()
+ }
+
+ @Test
+ fun isUiRestricted_hasUserRestriction_returnTrue() {
+ whenever(userManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS))
+ .thenReturn(true)
+
+ assertThat(activity.isUiRestricted).isTrue()
+ }
+
+ inner class MockSimDialogActivity : SimDialogActivity() {
+ override fun getApplicationContext() = context
+ }
+}
diff --git a/tests/unit/src/com/android/settings/wifi/repository/SharedConnectivityRepositoryTest.java b/tests/unit/src/com/android/settings/wifi/repository/SharedConnectivityRepositoryTest.java
new file mode 100644
index 0000000..4aef552
--- /dev/null
+++ b/tests/unit/src/com/android/settings/wifi/repository/SharedConnectivityRepositoryTest.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF 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.repository;
+
+import static android.app.PendingIntent.FLAG_IMMUTABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+public class SharedConnectivityRepositoryTest {
+
+ @Rule
+ public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+ @Spy
+ private Context mContext = ApplicationProvider.getApplicationContext();
+ @Mock
+ private SharedConnectivityManager mManager;
+
+ private SharedConnectivityRepository mRepository;
+ private PendingIntent mIntent = PendingIntent
+ .getActivity(mContext, 0, new Intent("test"), FLAG_IMMUTABLE);
+ private SharedConnectivitySettingsState mState = new SharedConnectivitySettingsState.Builder()
+ .setInstantTetherSettingsPendingIntent(mIntent).build();
+
+ @Before
+ public void setUp() {
+ when(mContext.getSystemService(SharedConnectivityManager.class)).thenReturn(mManager);
+ when(mManager.getSettingsState()).thenReturn(mState);
+
+ mRepository = spy(new SharedConnectivityRepository(mContext, true /* isConfigEnabled */));
+ }
+
+ @Test
+ public void constructor_configEnabled_registerCallback() {
+ verify(mManager).registerCallback(any(), any());
+ }
+
+ @Test
+ public void constructor_configNotEnabled_doNotRegisterCallback() {
+ SharedConnectivityManager manager = mock(SharedConnectivityManager.class);
+ when(mContext.getSystemService(SharedConnectivityManager.class)).thenReturn(manager);
+
+ mRepository = new SharedConnectivityRepository(mContext, false /* isConfigEnabled */);
+
+ verify(manager, never()).registerCallback(any(), any());
+ }
+
+ @Test
+ public void isServiceAvailable_configEnabled_returnTrue() {
+ mRepository = new SharedConnectivityRepository(mContext, true /* isConfigEnabled */);
+
+ assertThat(mRepository.isServiceAvailable()).isTrue();
+ }
+
+ @Test
+ public void isServiceAvailable_configNotEnabled_returnFalse() {
+ mRepository = new SharedConnectivityRepository(mContext, false /* isConfigEnabled */);
+
+ assertThat(mRepository.isServiceAvailable()).isFalse();
+ }
+
+ @Test
+ public void getSettingsState_isNotNull() {
+ assertThat(mRepository.getSettingsState()).isNotNull();
+ }
+
+ @Test
+ public void handleLaunchSettings_managerNull_doNothing() {
+ when(mContext.getSystemService(SharedConnectivityManager.class)).thenReturn(null);
+ mRepository = spy(new SharedConnectivityRepository(mContext, true /* isConfigEnabled */));
+
+ mRepository.handleLaunchSettings();
+
+ verify(mRepository, never()).sendSettingsIntent(mIntent);
+ }
+
+ @Test
+ public void handleLaunchSettings_stageNull_doNothing() {
+ when(mManager.getSettingsState()).thenReturn(null);
+
+ mRepository.handleLaunchSettings();
+
+ verify(mRepository, never()).sendSettingsIntent(mIntent);
+ }
+
+ @Test
+ public void handleLaunchSettings_intentNull_doNothing() {
+ mState = new SharedConnectivitySettingsState.Builder()
+ .setInstantTetherSettingsPendingIntent(null).build();
+ when(mManager.getSettingsState()).thenReturn(mState);
+
+ mRepository.handleLaunchSettings();
+
+ verify(mRepository, never()).sendSettingsIntent(mIntent);
+ }
+
+ @Test
+ public void handleLaunchSettings_allReady_sendSettingsIntent() {
+ mRepository.handleLaunchSettings();
+
+ verify(mRepository).sendSettingsIntent(mIntent);
+ }
+}
diff --git a/tests/unit/src/com/android/settings/wifi/tether/WifiTetherViewModelTest.java b/tests/unit/src/com/android/settings/wifi/tether/WifiTetherViewModelTest.java
index af1f62b..1c1473f 100644
--- a/tests/unit/src/com/android/settings/wifi/tether/WifiTetherViewModelTest.java
+++ b/tests/unit/src/com/android/settings/wifi/tether/WifiTetherViewModelTest.java
@@ -16,6 +16,9 @@
package com.android.settings.wifi.tether;
+import static com.android.settings.wifi.tether.WifiTetherViewModel.RES_INSTANT_HOTSPOT_SUMMARY_OFF;
+import static com.android.settings.wifi.tether.WifiTetherViewModel.RES_INSTANT_HOTSPOT_SUMMARY_ON;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.verify;
@@ -23,12 +26,15 @@
import android.app.Application;
import android.net.wifi.SoftApConfiguration;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
import androidx.lifecycle.MutableLiveData;
import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.wifi.repository.SharedConnectivityRepository;
import com.android.settings.wifi.repository.WifiHotspotRepository;
import org.junit.Before;
@@ -36,6 +42,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
+import org.mockito.Spy;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
@@ -45,8 +52,8 @@
public class WifiTetherViewModelTest {
@Rule
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
- @Mock
- Application mApplication;
+ @Spy
+ Application mApplication = ApplicationProvider.getApplicationContext();
@Mock
Executor mExecutor;
@Mock
@@ -57,6 +64,12 @@
MutableLiveData<Integer> mSpeedType;
@Mock
private MutableLiveData<Boolean> mRestarting;
+ @Mock
+ private SharedConnectivityRepository mSharedConnectivityRepository;
+ @Mock
+ private MutableLiveData<SharedConnectivitySettingsState> mSettingsState;
+ @Mock
+ private MutableLiveData<String> mInstantHotspotSummary;
WifiTetherViewModel mViewModel;
@@ -70,8 +83,18 @@
when(mWifiHotspotRepository.getSecurityType()).thenReturn(mSecurityType);
when(mWifiHotspotRepository.getSpeedType()).thenReturn(mSpeedType);
when(mWifiHotspotRepository.getRestarting()).thenReturn(mRestarting);
+ when(featureFactory.getWifiFeatureProvider().getSharedConnectivityRepository())
+ .thenReturn(mSharedConnectivityRepository);
+ when(mSharedConnectivityRepository.isServiceAvailable()).thenReturn(true);
+ when(mSharedConnectivityRepository.getSettingsState()).thenReturn(mSettingsState);
mViewModel = new WifiTetherViewModel(mApplication);
+ mViewModel.mInstantHotspotSummary = mInstantHotspotSummary;
+ }
+
+ @Test
+ public void constructor_observeData() {
+ verify(mSettingsState).observeForever(mViewModel.mInstantHotspotStateObserver);
}
@Test
@@ -83,6 +106,7 @@
verify(mSecurityType).removeObserver(mViewModel.mSecurityTypeObserver);
verify(mSpeedType).removeObserver(mViewModel.mSpeedTypeObserver);
+ verify(mSettingsState).removeObserver(mViewModel.mInstantHotspotStateObserver);
}
@Test
@@ -141,4 +165,59 @@
public void getRestarting_shouldNotReturnNull() {
assertThat(mViewModel.getRestarting()).isNotNull();
}
+
+ @Test
+ public void isInstantHotspotFeatureAvailable_serviceAvailable_returnTrue() {
+ when(mSharedConnectivityRepository.isServiceAvailable()).thenReturn(true);
+
+ assertThat(mViewModel.isInstantHotspotFeatureAvailable()).isTrue();
+ }
+
+ @Test
+ public void isInstantHotspotFeatureAvailable_serviceNotAvailable_returnFalse() {
+ when(mSharedConnectivityRepository.isServiceAvailable()).thenReturn(false);
+
+ assertThat(mViewModel.isInstantHotspotFeatureAvailable()).isFalse();
+ }
+
+ @Test
+ public void getInstantHotspotSummary_isNotNull() {
+ assertThat(mViewModel.getInstantHotspotSummary()).isNotNull();
+ }
+
+ @Test
+ public void onInstantHotspotStateChanged_stageNull_summarySetValueNull() {
+ mViewModel.onInstantHotspotStateChanged(null);
+
+ verify(mInstantHotspotSummary).setValue(null);
+ }
+
+ @Test
+ public void onInstantHotspotStateChanged_stateEnabled_summarySetValueOn() {
+ SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder()
+ .setInstantTetherEnabled(true).build();
+
+ mViewModel.onInstantHotspotStateChanged(state);
+
+ verify(mInstantHotspotSummary)
+ .setValue(mApplication.getString(RES_INSTANT_HOTSPOT_SUMMARY_ON));
+ }
+
+ @Test
+ public void onInstantHotspotStateChanged_stateNotEnabled_recordVisibleSummaryOff() {
+ SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder()
+ .setInstantTetherEnabled(false).build();
+
+ mViewModel.onInstantHotspotStateChanged(state);
+
+ verify(mInstantHotspotSummary)
+ .setValue(mApplication.getString(RES_INSTANT_HOTSPOT_SUMMARY_OFF));
+ }
+
+ @Test
+ public void launchInstantHotspotSettings_launchSettingsByRepository() {
+ mViewModel.launchInstantHotspotSettings();
+
+ verify(mSharedConnectivityRepository).launchSettings();
+ }
}