Merge "ModuleLicenseProviderTest converted to JUnit"
diff --git a/Android.bp b/Android.bp
index c84dc1e..5470e70 100644
--- a/Android.bp
+++ b/Android.bp
@@ -82,6 +82,7 @@
"settings-platform-compat-config",
],
static_libs: ["Settings-core"],
+ uses_libs: ["org.apache.http.legacy"],
resource_dirs: [],
optimize: {
proguard_flags_files: ["proguard.flags"],
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
index 883e968..5100c03 100644
--- a/PREUPLOAD.cfg
+++ b/PREUPLOAD.cfg
@@ -4,3 +4,5 @@
strings_lint_hook = ${REPO_ROOT}/frameworks/base/tools/stringslint/stringslint_sha.sh ${PREUPLOAD_COMMIT}
checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT}
+
+robolectric_hook = ${REPO_ROOT}/packages/apps/Settings/tests/robotests/new_tests_hook.sh ${REPO_PROJECT}
diff --git a/res/drawable/ic_airplane_safe_networks_24dp.xml b/res/drawable/ic_airplane_safe_networks_24dp.xml
new file mode 100644
index 0000000..6c0d9f7
--- /dev/null
+++ b/res/drawable/ic_airplane_safe_networks_24dp.xml
@@ -0,0 +1,35 @@
+<!--
+ Copyright (C) 2020 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License
+ -->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24"
+ android:tint="?android:attr/colorControlNormal">
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M16,17.5V16l-5.89,-3.75V8.12C10.11,7.5 9.61,7 9,7S7.89,7.5 7.89,8.12v4.12L2,16v1.5l5.89,-1.88v4.12l-1.47,1.12V22L9,21.25L11.58,22v-1.12l-1.47,-1.12v-4.12L16,17.5z"/>
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M18.05,9.59C17.69,9.22 17.19,9 16.64,9c-0.55,0 -1.05,0.22 -1.41,0.59L16.64,11L18.05,9.59z"/>
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M16.64,7.5c0.96,0 1.84,0.39 2.47,1.03l1.42,-1.42c-1,-1 -2.37,-1.61 -3.89,-1.61s-2.89,0.62 -3.89,1.61l1.42,1.42C14.8,7.89 15.67,7.5 16.64,7.5z"/>
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M16.64,4c1.93,0 3.68,0.79 4.95,2.05L23,4.64C21.37,3.01 19.12,2 16.64,2c-2.49,0 -4.74,1.01 -6.36,2.64l1.42,1.42C12.96,4.79 14.71,4 16.64,4z"/>
+</vector>
diff --git a/res/layout-land/choose_lock_pattern.xml b/res/layout-land/choose_lock_pattern.xml
index df40ed4..29c3350 100644
--- a/res/layout-land/choose_lock_pattern.xml
+++ b/res/layout-land/choose_lock_pattern.xml
@@ -37,7 +37,7 @@
android:layout_width="0dip"
android:layout_height="match_parent"
android:layout_weight="1.0"
- android:layout_marginStart="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
android:layout_marginBottom="@dimen/sud_content_frame_padding_bottom"
android:clipChildren="false"
android:clipToPadding="false"
diff --git a/res/layout-land/confirm_lock_password.xml b/res/layout-land/confirm_lock_password.xml
index 7872585..775f9ad 100644
--- a/res/layout-land/confirm_lock_password.xml
+++ b/res/layout-land/confirm_lock_password.xml
@@ -33,16 +33,16 @@
style="@style/SudDescription.Glif"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides" />
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd" />
<Button
android:id="@+id/forgotButton"
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_gravity="center"
android:visibility="gone" />
@@ -75,8 +75,8 @@
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginBottom="80dp"
android:layout_gravity="center_horizontal"
android:text="@string/cancel" />
diff --git a/res/layout-land/confirm_lock_pattern.xml b/res/layout-land/confirm_lock_pattern.xml
index 861c00a..1fd6824 100644
--- a/res/layout-land/confirm_lock_pattern.xml
+++ b/res/layout-land/confirm_lock_pattern.xml
@@ -58,16 +58,16 @@
style="@style/SudDescription.Glif"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides" />
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd" />
<Button
android:id="@+id/cancelButton"
style="@style/SetupWizardButton.Negative"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:text="@string/cancel" />
<Button
@@ -75,8 +75,8 @@
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_gravity="center"
android:visibility="gone" />
@@ -91,8 +91,8 @@
android:id="@+id/errorText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginBottom="24dp"
android:gravity="center_vertical"/>
diff --git a/res/layout-land/confirm_lock_pattern_normal.xml b/res/layout-land/confirm_lock_pattern_normal.xml
index ded8d1a..7a59894 100644
--- a/res/layout-land/confirm_lock_pattern_normal.xml
+++ b/res/layout-land/confirm_lock_pattern_normal.xml
@@ -58,16 +58,16 @@
android:id="@+id/sud_layout_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides" />
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd" />
<Button
android:id="@+id/cancelButton"
style="@style/SetupWizardButton.Negative"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:text="@string/cancel" />
<Space
@@ -81,8 +81,8 @@
android:id="@+id/errorText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginBottom="24dp"
android:gravity="center_vertical"/>
</LinearLayout>
diff --git a/res/layout-land/fingerprint_enroll_enrolling.xml b/res/layout-land/fingerprint_enroll_enrolling.xml
index 3b77b84..184c9c6 100644
--- a/res/layout-land/fingerprint_enroll_enrolling.xml
+++ b/res/layout-land/fingerprint_enroll_enrolling.xml
@@ -42,7 +42,7 @@
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
- android:layout_marginStart="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
android:layout_marginBottom="@dimen/sud_content_frame_padding_bottom"
android:clipChildren="false"
android:clipToPadding="false"
diff --git a/res/layout-land/fingerprint_enroll_find_sensor.xml b/res/layout-land/fingerprint_enroll_find_sensor.xml
index fe9b3d7..5d3e851 100644
--- a/res/layout-land/fingerprint_enroll_find_sensor.xml
+++ b/res/layout-land/fingerprint_enroll_find_sensor.xml
@@ -34,7 +34,7 @@
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="match_parent"
- android:layout_marginStart="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
android:layout_marginBottom="@dimen/sud_content_frame_padding_bottom"
android:clipChildren="false"
android:clipToPadding="false"
diff --git a/res/layout-land/wifi_dpp_qrcode_scanner_fragment.xml b/res/layout-land/wifi_dpp_qrcode_scanner_fragment.xml
index 240dbb5..95fef90 100644
--- a/res/layout-land/wifi_dpp_qrcode_scanner_fragment.xml
+++ b/res/layout-land/wifi_dpp_qrcode_scanner_fragment.xml
@@ -33,8 +33,8 @@
style="@style/TextAppearance.SudGlifBody"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:textAlignment="center"/>
<LinearLayout
@@ -63,8 +63,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:textAlignment="center"
android:visibility="invisible"/>
diff --git a/res/layout/adb_qrcode_scanner_fragment.xml b/res/layout/adb_qrcode_scanner_fragment.xml
index 9a337d9..5b83cb2 100644
--- a/res/layout/adb_qrcode_scanner_fragment.xml
+++ b/res/layout/adb_qrcode_scanner_fragment.xml
@@ -41,8 +41,8 @@
style="@style/TextAppearance.SudGlifBody"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:textAlignment="center"
android:accessibilityLiveRegion="polite"/>
@@ -72,8 +72,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:textAlignment="center"
android:visibility="invisible"/>
diff --git a/res/layout/choose_lock_pattern_common.xml b/res/layout/choose_lock_pattern_common.xml
index 0a2294f..556bdd0 100644
--- a/res/layout/choose_lock_pattern_common.xml
+++ b/res/layout/choose_lock_pattern_common.xml
@@ -74,7 +74,8 @@
style="@style/SudDescription.Glif"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:minLines="2" />
<TextView android:id="@+id/headerText"
@@ -82,7 +83,8 @@
android:layout_height="wrap_content"
android:minLines="2"
android:gravity="center"
- android:paddingHorizontal="?attr/sudMarginSides"
+ android:paddingStart="?attr/sudMarginStart"
+ android:paddingEnd="?attr/sudMarginEnd"
android:textSize="12sp" />
<com.google.android.setupdesign.view.FillContentLayout
diff --git a/res/layout/confirm_lock_password_base.xml b/res/layout/confirm_lock_password_base.xml
index a0935bf..a1525b7 100644
--- a/res/layout/confirm_lock_password_base.xml
+++ b/res/layout/confirm_lock_password_base.xml
@@ -51,16 +51,16 @@
style="@style/SudDescription.Glif"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides" />
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd" />
<Button
android:id="@+id/forgotButton"
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_gravity="center"
android:visibility="gone" />
</LinearLayout>
@@ -108,8 +108,8 @@
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginBottom="80dp"
android:layout_gravity="center_horizontal"
android:text="@string/cancel" />
diff --git a/res/layout/confirm_lock_password_normal.xml b/res/layout/confirm_lock_password_normal.xml
index 9021f24..089ecdc 100644
--- a/res/layout/confirm_lock_password_normal.xml
+++ b/res/layout/confirm_lock_password_normal.xml
@@ -32,8 +32,8 @@
style="@style/SudDescription.Glif"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides" />
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd" />
<Space
android:layout_width="match_parent"
@@ -78,8 +78,8 @@
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginBottom="80dp"
android:layout_gravity="center_horizontal"
android:text="@string/cancel" />
diff --git a/res/layout/confirm_lock_pattern_base.xml b/res/layout/confirm_lock_pattern_base.xml
index 9a37eaa..895bb8a 100644
--- a/res/layout/confirm_lock_pattern_base.xml
+++ b/res/layout/confirm_lock_pattern_base.xml
@@ -52,16 +52,16 @@
style="@style/SudDescription.Glif"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides" />
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd" />
<Button
android:id="@+id/cancelButton"
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginBottom="80dp"
android:text="@string/cancel" />
@@ -70,8 +70,8 @@
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_gravity="center"
android:visibility="gone" />
@@ -107,7 +107,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:layout_marginHorizontal="?attr/sudMarginSides"
+ android:paddingStart="?attr/sudMarginStart"
+ android:paddingEnd="?attr/sudMarginEnd"
android:layout_marginTop="12dp"
android:gravity="center_vertical"/>
diff --git a/res/layout/confirm_lock_pattern_normal_base.xml b/res/layout/confirm_lock_pattern_normal_base.xml
index 7e2cf8e..7c1502d 100644
--- a/res/layout/confirm_lock_pattern_normal_base.xml
+++ b/res/layout/confirm_lock_pattern_normal_base.xml
@@ -51,8 +51,8 @@
android:id="@+id/sud_layout_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides" />
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd" />
</LinearLayout>
@@ -86,7 +86,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:layout_marginHorizontal="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginTop="12dp"
android:gravity="center_vertical"/>
@@ -95,8 +96,8 @@
style="@style/SudGlifButton.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:layout_marginBottom="80dp"
android:text="@string/cancel" />
diff --git a/res/layout/emergency_gesture_number_override_dialog.xml b/res/layout/emergency_gesture_number_override_dialog.xml
index 6ac8ad0..429cff8 100644
--- a/res/layout/emergency_gesture_number_override_dialog.xml
+++ b/res/layout/emergency_gesture_number_override_dialog.xml
@@ -32,7 +32,8 @@
android:imeOptions="actionDone"
android:inputType="numberSigned"
android:layout_width="match_parent"
- android:layout_height="wrap_content"/>
+ android:layout_height="wrap_content"
+ android:minHeight="@dimen/min_tap_target_size"/>
<LinearLayout
android:layout_width="match_parent"
diff --git a/res/layout/emergency_gesture_switch_bar.xml b/res/layout/emergency_gesture_switch_bar.xml
index 30c32f5..2524601 100644
--- a/res/layout/emergency_gesture_switch_bar.xml
+++ b/res/layout/emergency_gesture_switch_bar.xml
@@ -20,7 +20,8 @@
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:layout_width="match_parent"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:importantForAccessibility="no">
<com.android.settings.widget.SwitchBar
android:id="@+id/switch_bar"
diff --git a/res/layout/storage_wizard_init.xml b/res/layout/storage_wizard_init.xml
index 8d9870f..e1e78331 100644
--- a/res/layout/storage_wizard_init.xml
+++ b/res/layout/storage_wizard_init.xml
@@ -41,7 +41,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:layout_marginStart="@dimen/sud_glif_margin_sides"
+ android:layout_marginStart="@dimen/sud_glif_margin_start"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
@@ -108,7 +108,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:layout_marginStart="@dimen/sud_glif_margin_sides"
+ android:layout_marginStart="@dimen/sud_glif_margin_start"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
diff --git a/res/layout/wifi_dpp_add_device_fragment.xml b/res/layout/wifi_dpp_add_device_fragment.xml
index 8ad6391..3eef1ab 100644
--- a/res/layout/wifi_dpp_add_device_fragment.xml
+++ b/res/layout/wifi_dpp_add_device_fragment.xml
@@ -33,8 +33,8 @@
style="@style/TextAppearance.SudGlifBody"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:textAlignment="center"
android:accessibilityLiveRegion="polite"/>
diff --git a/res/layout/wifi_dpp_choose_saved_wifi_network_fragment.xml b/res/layout/wifi_dpp_choose_saved_wifi_network_fragment.xml
index 534f32e..10b4702 100644
--- a/res/layout/wifi_dpp_choose_saved_wifi_network_fragment.xml
+++ b/res/layout/wifi_dpp_choose_saved_wifi_network_fragment.xml
@@ -33,8 +33,8 @@
style="@style/TextAppearance.SudGlifBody"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:textAlignment="center"
android:accessibilityLiveRegion="polite"/>
diff --git a/res/layout/wifi_dpp_qrcode_generator_fragment.xml b/res/layout/wifi_dpp_qrcode_generator_fragment.xml
index 1d9656c..d283bfd 100644
--- a/res/layout/wifi_dpp_qrcode_generator_fragment.xml
+++ b/res/layout/wifi_dpp_qrcode_generator_fragment.xml
@@ -33,8 +33,8 @@
style="@style/TextAppearance.SudGlifBody"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:textAlignment="center"
android:accessibilityLiveRegion="polite"/>
diff --git a/res/layout/wifi_dpp_qrcode_scanner_fragment.xml b/res/layout/wifi_dpp_qrcode_scanner_fragment.xml
index 3d1e99b..209619c 100644
--- a/res/layout/wifi_dpp_qrcode_scanner_fragment.xml
+++ b/res/layout/wifi_dpp_qrcode_scanner_fragment.xml
@@ -33,8 +33,8 @@
style="@style/TextAppearance.SudGlifBody"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:textAlignment="center"
android:accessibilityLiveRegion="polite"/>
@@ -64,8 +64,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:layout_marginStart="?attr/sudMarginSides"
- android:layout_marginEnd="?attr/sudMarginSides"
+ android:layout_marginStart="?attr/sudMarginStart"
+ android:layout_marginEnd="?attr/sudMarginEnd"
android:textAlignment="center"
android:visibility="invisible"/>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 116d251..dee0df0 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-adresse"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Gestoorde netwerke"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Intekeninge"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Ander netwerke"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-instellings"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi‑Fi se gevorderde instellngs is nie vir hierdie gebruiker beskikbaar nie"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Stoor"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Vee toegangspunt uit"</string>
<string name="menu_new" msgid="6571230342655509006">"Nuwe toegangspunt"</string>
<string name="menu_save" msgid="6611465355127483100">"Stoor"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Gooi weg"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Kanselleer"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Die naamveld kan nie leeg wees nie."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Die APN kan nie leeg wees nie."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet is meer as gewoonlik gebruik"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Toestel is meer as gewoonlik gebruik"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Battery kan gouer as gewoonlik afloop"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Battery word tydelik beperk"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Help om batterygesondheid in stand te hou. Tik om meer te wete te kom."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Battery word tydelik beperk. Tik om meer te wete te kom."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Jou foon is meer as normaalweg gebruik. Jou battery kan gouer as verwag afloop.\n\nTopprogramme volgens batterygebruik:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Jou tablet is meer as normaalweg gebruik. Jou battery kan gouer as verwag afloop.\n\nTopprogramme volgens batterygebruik:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Jou toestel is meer as normaalweg gebruik. Jou battery kan gouer as verwag afloop.\n\nTopprogramme volgens batterygebruik:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Moenie installeer nie"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Installeer tog"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifikaat is nie geïnstalleer nie"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Laat <xliff:g id="APP_NAME">%s</xliff:g> toe om sertifikate op hierdie toestel te installeer?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Hierdie sertifikate sal jou aan die programme en URL\'e hieronder identifiseer"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Moenie toelaat nie"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Laat toe"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Wys meer"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Sertifikaatbestuurprogram"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Geen"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Sertifikate wat deur hierdie program geïnstalleer is, sal jou aan die programme en URL\'e hieronder identifiseer"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Verwyder"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Noodoproepsein"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Stel gedrag wanneer \'n noodoproep gemaak word"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Rugsteun"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksimum aantal sigbare datastelle"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Stel terug na verstekwaardes"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Outovul-ontwikkelaaropsies is teruggestel"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Dwing vol GNSS-metings af"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Spoor alle GNSS-konstellasies en -frekwensies na sonder enige dienssiklussering"</string>
<string name="device_theme" msgid="5027604586494772471">"Toesteltema"</string>
<string name="default_theme" msgid="4815428567082263639">"Verstek"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Netwerknaam"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Onderbreek kennisgewings om gefokus te bly"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Kenmerk is nie beskikbaar nie"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Hierdie kenmerk is afgeskakel omdat dit jou foon stadiger maak"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Dwing vol GNSS-metings af"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Spoor alle GNSS-konstellasies en -frekwensies na sonder enige dienssiklussering"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Wys altyd omvaldialoog"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Wys dialoog elke keer as \'n program omval"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Kies ANGLE-geaktiveerde program"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Aan (demp)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Af"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Netwerkbesonderhede"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Programme op jou foon kan jou toestelnaam sien. Ander mense sal dit dalk ook kan sien wanneer jy aan Bluetooth-toestelle koppel of \'n Wi-Fi-warmkol opstel."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Programme op jou foon kan jou toestelnaam sien. Ander mense sal dit dalk ook kan sien wanneer jy aan Bluetooth-toestelle koppel, aan \'n wi-fi-netwerk koppel of \'n wi-fi-warmkol opstel."</string>
<string name="devices_title" msgid="649715719278562515">"Toestelle"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Alle instellings"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Voorstelle"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Kan nie SIM aktiveer nie"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Verwyder die SIM en voeg dit weer in. Herbegin jou toestel as die probleem voortduur."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Probeer weer om die SIM aan te skakel. Herbegin jou toestel as die probleem voortduur."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Netwerkaktivering"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is aktief"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tik om SIM-instellings op te dateer"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-kaart"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Vee hierdie afgelaaide SIM uit?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"As jy hierdie SIM uitvee, word <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-diens van hierdie toestel verwyder.\n\nDiens vir <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> sal nie gekanselleer word nie."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Vee uit"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Met Wi-fi-oproepe kan jy oproepe oor niediensverskaffer-netwerke soos sommige wi-fi-netwerke maak en ontvang."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Oproepe"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"voorkeur"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"verkies oproepe"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"verkies SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"nie beskikbaar nie"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Geen SIM nie"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Voorkeure"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Koppel aan publieke netwerke"</string>
<string name="keywords_internet" msgid="7674082764898690310">"netwerkverbinding, internet, draadloos, data, wifi, wi-fi, wi fi, sellulêr, mobiel, selfoondiensverskaffer, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Bekyk netwerke veilig vir vliegtuie"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Skakel vliegtuigmodus af"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nie beskikbaar nie omdat slaaptydmodus aan is"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Terugstelling van kennisgewingbelangrikheid is voltooi."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Programme"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 4e520d4..ad4805e 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"የIPv6 አድራሻዎች"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"የተቀመጡ አውታረ መረቦች"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"የደንበኝነት ምዝገባዎች"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"ሌሎች አውታረ መረቦች"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP ቅንብሮች"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"የላቁ የWi‑Fi ቅንብሮች ለዚህ ተጠቃሚ አይገኙም"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"አስቀምጥ"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN ሰርዝ"</string>
<string name="menu_new" msgid="6571230342655509006">"አዲስ APN"</string>
<string name="menu_save" msgid="6611465355127483100">"አስቀምጥ"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"ጣለው"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"ይቅር"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"የስም መስክ ባዶ ሊሆን አይችልም"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ባዶ መሆን አይችልም።"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ጡባዊው ከተለመደው በላይ ስራ ላይ ውሏል"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"መሣሪያው ከተለመደው በላይ ስራ ላይ ውሏል"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ባትሪ ከተጠበቀው ጊዜ ቀድሞ ሊያልቅ ይችላል"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"ባትሪ ለጊዜው ተገድቧል"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"የባትሪ ጤናን ለማቆየት ይረዳል። የበለጠ ለመረዳት መታ ያድርጉ።"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"ባትሪ ለጊዜው ተገድቧል። የበለጠ ለመረዳት መታ ያድርጉ።"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"የእርስዎ ስልክ ከመደበኛው በላይ ሥራ ላይ ውሏል። የእርስዎ ባትሪ ከተጠበቀው ቀድሞ ሊያልቅ ይችል ይሆናል።\n\nበባትሪ አጠቃቀም ረገድ ከፍተኛ መተግበሪያዎች፦"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"የእርስዎ ጡባዊ ከመደበኛው በላይ ሥራ ላይ ውሏል። የእርስዎ ባትሪ ከተጠበቀው ቀድሞ ሊያልቅ ይችል ይሆናል።\n\nበባትሪ አጠቃቀም ረገድ ከፍተኛ መተግበሪያዎች፦"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"የእርስዎ መሣሪያ ከተለመደው ጊዜ በላይ ጥቅም ላይ ውሏል። የእርስዎ ባትሪ ከተጠበቀው ቀድሞ ሊያልቅ ይችል ይሆናል።\n\nበባትሪ አጠቃቀም ረገድ ከፍተኛ መተግበሪያዎች፦"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"አትጫን"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"የሆነው ሆኖ ጫን"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"የእውቅና ማረጋገጫ አልተጫነም"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"የምስክር ወረቀቶችን በዚህ መሣሪያ ላይ ለመጫን <xliff:g id="APP_NAME">%s</xliff:g> ይፈቀድ?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"እነዚህ የምስክር ወረቀቶች ከዚህ በታች ላሉት መተግበሪያዎች እና ዩ አር ኤልዎች እርስዎን ለይተው ያውቃሉ"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"አትፍቀድ"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"ፍቀድ"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"ተጨማሪ አሳይ"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"የምስክር ወረቀት አስተዳደር መተግበሪያ"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ምንም"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"በዚህ መተግበሪያ የተጫኑ የምስክር ወረቀቶች ከዚህ በታች ላሉት መተግበሪያዎች እና ዩ.አር.ኤል.ዎች እርስዎን ለይተው ያውቃሉ"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"አስወግድ"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"የድንገተኛ አደጋ መወደያ ሲግናል"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"የአደጋጊዜ ጥሪ ሲደረግ ባህሪ አዘጋጅ"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"ምትኬ"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"ከፍተኛ የሚታዩ የውሂብ ስብስቦች"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ወደ ነባሪ እሴቶች ዳግም አስጀምር"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"የራስ-ሙላ ገንቢ አማራጮች ዳግም ተጀምረዋል"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ሙሉ የGNSS መለኪያዎች አስገድድ"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ሁሉንም የGNSS ህብረ ፎቶዎችን እና ድግምግሞሾችን ያለምንም የሥራ ብስክሌት ግልቢያ ዱካቸውን ይከታተሉ"</string>
<string name="device_theme" msgid="5027604586494772471">"የመሣሪያ ገጽታ"</string>
<string name="default_theme" msgid="4815428567082263639">"ነባሪ"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"የአውታረ መረብ ስም"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ትኩረት እንደሰጡ ለመቆየት ማሳወቂያዎችን ባሉበት አቁም"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ባህሪ አይገኝም"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"የእርስዎን ስልክ ፍጥነት ስለሚቀንስ ይህ ባህሪ ጠፍቷል"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ሙሉ የGNSS መለኪያዎች አስገድድ"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ሁሉንም የGNSS ህብረ ፎቶዎችን እና ድግምግሞሾችን ያለምንም የሥራ ብስክሌት ግልቢያ ዱካቸውን ይከታተሉ"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"የስንክል ንግግር ሳጥንን ሁልጊዜ አሳይ"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"መተግበሪያ በሚሰናከልበት እያንዳንዱ ጊዜ የንግግር ሳጥን አሳይ"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"በANGLE የነቃ መተግበሪያ ይምረጡ"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"በርቷል (ድምጸ ተዘግቷል)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ጠፍቷል"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"የአውታረ መረብ ዝርዝሮች"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"የእርስዎ መሣሪያ በእርስዎ ስልክ ላይ ላሉ መተግበሪያዎች የሚታይ ነው። ወድ ብሉቱዝ መሣሪያዎች ሲያገኙ ወይም የWi-Fi መገናኛ ነጥብን ሲያቀናብሩ በተጨማሪ በሌሎች ሰዎች የሚታይ ይሆናል።"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"የመሣሪያዎ ስም በእርስዎ ስልክ ላይ ላሉ መተግበሪያዎች ይታያል። እንዲሁም ከብሉቱዝ መሣሪያዎች ጋር ሲገናኙ፣ ከWi-Fi አውታረ መረብ ሲገናኙ ወይም የWi-Fi መገናኛ ነጥብን ሲያቀናብሩ በሌሎች ሰዎች የሚታይ ሊሆን ይችላል።"</string>
<string name="devices_title" msgid="649715719278562515">"መሣሪያዎች"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"ሁሉም ቅንብሮች"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"የአስተያየት ጥቆማዎች"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"ሲምን ማግበር አልተቻለም"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"ሲሙን ያስወጡትና እንደገና ያስገቡት። ችግሩ ከቀጠለ መሣሪያዎን ዳግም ያስነሱት።"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ሲሙን እንደገና ለማብራት ይሞክሩ። ችግሩ ከቀጠለ መሣሪያዎን ዳግም ያስነሱት።"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"አውታረ መረብን ማግበር"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ገቢር ነው"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"የሲም ቅንብሮችን ለማዘመን መታ ያድርጉ"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"ሲም ካርድ"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ይህ የወረደ ሲም ይደምሰስ?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ይህን ሲም መደምሰስ የ<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> አገልግሎቱን ከዚህ መሣሪያ ያስወግደዋል።\n\nለ<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> የሆነ አገልግሎት አይሰረዝም።"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"ደምስስ"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"የWi‑Fi ጥሪ እንደ አንዳንድ የWi-Fi አውታረ መረቦች ያሉ የአገልግሎት አቅራቢ ባልሆኑ አውታረ መረቦች ላይ ጥሪዎችን እንዲያደርጉ እና እንዲቀበሉ ያስችልዎታል።"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"ጥሪዎች"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"ኤስኤምኤስ"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"የተመረጡ"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"ጥሪዎች ተመርጠዋል"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"ኤስኤምኤስ ተመርጧል"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"አይገኝም"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM የለም"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ምርጫዎች"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"ከይፋዊ አውታረ መረቦች ጋር አገናኝ"</string>
<string name="keywords_internet" msgid="7674082764898690310">"የአውታረ መረብ ግንኙነት በይነመረብ፣ ገመድ-አልባ፣ ውሂብ፣ wifi፣ wi-fi፣ wi fi፣ ተንቀሳቃሽ ስልክ፣ ሞባይል፣ የተንቀሳቃሽ ስልክ አገልግሎት አቅራቢ፣ 4ጂ፣ 3ጂ፣ 2ጂ፣ lte፣ ኤልቲኢ"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"ለአውሮፕላን አደጋ የሌላቸው አውታረ መረቦችን ይመልከቱ"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"የአውሮፕላን ሁነታን አጥፋ"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"የመኝታ ሰዓት ሁነታ ስለበራ የማይገኝ"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"የማሳወቂያ አስፈላጊነት ዳግም አስጀምር ተጠናቅቋል።"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"መተግበሪያዎች"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index bd515e9..34c8119 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -1102,8 +1102,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"عناوين IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"الشبكات المحفوظة"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"الاشتراكات"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"الشبكات الأخرى"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"إعدادات IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"إعدادات Wi‑Fi المتقدمة ليست متاحة لهذا المستخدم."</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"حفظ"</string>
@@ -1681,7 +1680,7 @@
<string name="menu_delete" msgid="9199740901584348273">"حذف APN"</string>
<string name="menu_new" msgid="6571230342655509006">"اسم نقطة وصول جديد"</string>
<string name="menu_save" msgid="6611465355127483100">"حفظ"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"إلغاء"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"إلغاء"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"لا يمكن أن يكون حقل الاسم فارغًا."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"لا يمكن أن يكون APN فارغًا."</string>
@@ -2580,8 +2579,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"الجهاز اللوحي المستخدَم أكثر من المعتاد"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"الجهاز المستخدَم أكثر من المعتاد"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"قد تنفد البطارية قبل الوقت المعتاد."</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"تأثير محدود على البطارية مؤقتًا"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"يحافظ هذا على سلامة البطارية. انقر لمعرفة مزيد من المعلومات."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"تأثير محدود على البطارية مؤقتًا، انقر لمعرفة مزيد من المعلومات."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"تم استخدام هاتفك أكثر من المعتاد. قد ينفذ شحن البطارية قبل الوقت المتوقَّع.\n\nالتطبيقات الأكثر استخدامًا للبطارية:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"تم استخدام جهازك اللوحي أكثر من المعتاد. قد ينفذ شحن البطارية قبل الوقت المتوقَّع.\n\nالتطبيقات الأكثر استخدامًا للبطارية:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"تم استخدام جهازك أكثر من المعتاد. قد ينفذ شحن البطارية قبل الوقت المتوقَّع.\n\nالتطبيقات الأكثر استخدامًا للبطارية:"</string>
@@ -2875,6 +2875,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"عدم التثبيت"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"التثبيت على أي حال"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"لم يتم تثبيت الشهادة."</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"هل تريد السماح لتطبيق <xliff:g id="APP_NAME">%s</xliff:g> بتثبيت الشهادات على هذا الجهاز؟"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ستؤدي هذه الشهادات إلى تعرّف التطبيقات وعناوين URL التالية على بيانات اعتمادك."</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"عدم السماح"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"السماح"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"عرض المزيد"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"تطبيق إدارة الشهادات"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ما مِن تطبيقات لإدارة الشهادات"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"تؤدي الشهادات التي يثبتها هذا التطبيق إلى تعرّف التطبيقات وعناوين URL على بيانات اعتمادك."</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"إزالة"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"إشارة اتصال الطوارئ"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"تعيين السلوك عند إجراء اتصال بالطوارئ"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"الاحتفاظ بنسخة احتياطية"</string>
@@ -3277,7 +3286,7 @@
<string name="restriction_settings_title" msgid="4293731103465972557">"القيود"</string>
<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="help_label" msgid="2896538416436125883">"المساعدة والملاحظات والآراء"</string>
<string name="support_summary" msgid="1034146931237148885">"مقالات المساعدة والاتصال الهاتفي والمحادثة والبدء"</string>
<string name="user_account_title" msgid="6389636876210834864">"حساب المحتوى"</string>
<string name="user_picture_title" msgid="7176437495107563321">"معرف الصورة"</string>
@@ -4962,6 +4971,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"الحد الأقصى لعدد مجموعات البيانات المرئية"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"إعادة الضبط على القيم التلقائية"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"تمّت إعادة ضبط الملء التلقائي لخيارات مطوّري البرامج"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"فرض كامل لقياسات GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"تتبّع جميع مجموعات وفترات تكرار GNSS التي لا تحتوي على دورات عمل"</string>
<string name="device_theme" msgid="5027604586494772471">"مظهر الجهاز"</string>
<string name="default_theme" msgid="4815428567082263639">"تلقائي"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"اسم الشبكة"</string>
@@ -4978,8 +4995,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"إيقاف الإشعارات مؤقتًا للحفاظ على التركيز"</string>
<string name="disabled_feature" msgid="7151433782819744211">"الميزة غير متوفرة"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"تم إيقاف هذه الميزة لأنها تبطئ هاتفك."</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"فرض كامل لقياسات GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"تتبّع جميع مجموعات وفترات تكرار GNSS التي لا تحتوي على دورات عمل"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"عرض مربع حوار الأعطال دائمًا"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"عرض مربع الحوار في كل مرة يتعطل فيها تطبيق"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"اختيار التطبيق الذي يستخدم ANGLE"</string>
@@ -5047,7 +5062,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"تفعيل (كتم الصوت)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"غير مفعّل"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"تفاصيل الشبكة"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"اسم جهازك مرئي للتطبيقات على هاتفك. ويمكن أيضًا أن يراه أشخاص آخرون عند الاتصال بأجهزة بلوتوث أو إعداد نقطة اتصال Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"اسم جهازك مرئي للتطبيقات على هاتفك. ويمكن أيضًا للآخرين الاطّلاع على اسم جهازك عند الاتصال بأجهزة تتضمّن بلوتوث أو الاتصال بشبكة Wi-Fi أو إعداد نقطة اتصال Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"الأجهزة"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"جميع الإعدادات"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"اقتراحات"</string>
@@ -5211,6 +5226,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"يتعذّر تفعيل شريحة SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"يجب إزالة شريحة SIM ثم إدخالها مرة أخرى. إذا استمرت المشكلة، عليك إعادة تشغيل الجهاز."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"حاوِل تفعيل شريحة SIM مرة أخرى. إذا استمرت المشكلة، عليك إعادة تشغيل الجهاز."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"تفعيل الشبكة"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"مشغّل شبكة الجوّال <xliff:g id="CARRIER_NAME">%1$s</xliff:g> مفعّل"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"انقر لتعديل إعدادات شريحة SIM."</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"شريحة SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"هل تريد محو بيانات شريحة SIM هذه التي تم تنزيلها؟"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"سيؤدي محو بيانات شريحة SIM هذه إلى إزالة خدمة <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> من هذا الجهاز.\n\nولن يتم إلغاء خدمة <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"محو البيانات"</string>
@@ -5371,9 +5390,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"تسمح لك ميزة \"الاتصال عبر Wi-Fi\" بإجراء مكالمات وتلقّيها عبر شبكات غير تابعة لمشغّلي شبكات الجوّال."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"المكالمات"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"مفضّلة"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"المكالمات مفضّلة"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"الرسائل القصيرة مفضّلة"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"غير متاحة"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"بلا شريحة SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"التفضيلات"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"الاتصال بشبكات Wi-Fi عامة"</string>
<string name="keywords_internet" msgid="7674082764898690310">"الاتصال بالشبكة، الإنترنت، لاسلكي، بيانات، wifi، wi-fi، wi fi، خلوي، جهاز جوّال، مشغل شبكة الجوال، جيل رابع، جيل ثالث، جيل ثاني، lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"عرض الشبكات الآمنة في وضع الطيران"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"إيقاف \"وضع الطيران\""</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"الميزة غير متاحة لأن وضع \"وقت النوم\" مفعّل."</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"اكتملت عملية إعادة ضبط درجة الأهمية الخاصة بالإشعارات."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"التطبيقات"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 866aab0..1291203 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 ঠিকনাবোৰ"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ছেভ কৰি ৰখা নেটৱৰ্কসমূহ"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"গ্ৰাহকভুক্তি"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"অন্য নেটৱৰ্ক"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"আইপি ছেটিংসমূহ"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"এই ব্যৱহাৰকাৰীৰ বাবে ৱাই-ফাইৰ উচ্চখাপৰ ছেটিংসমূহ উপলব্ধ নহয়"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"ছেভ কৰক"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"এপিএন মচক"</string>
<string name="menu_new" msgid="6571230342655509006">"নতুন এপিএন"</string>
<string name="menu_save" msgid="6611465355127483100">"ছেভ কৰক"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"অগ্ৰাহ্য কৰক"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"বাতিল কৰক"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"নামৰ ঠাইখন খালী থাকিব নোৱাৰে"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"এপিএন খালী থাকিব নোৱাৰে।"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"টেবলেট সামান্য অৱস্থাতকৈ বেছি ব্যৱহাৰ কৰা হ’ল"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"ডিভাইচ সামান্য অৱস্থাতকৈ বেছি ব্যৱহাৰ কৰা হ’ল"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"বেটাৰি আনদিনাতকৈ আগতেই শেষ হ’ব পাৰে"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"বেটাৰী সাময়িকভাৱে সীমিত কৰা হৈছে"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"বেটাৰীৰ অৱস্থা ভালে ৰখাত সহায় কৰে। অধিক জানিবলৈ টিপক।"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"বেটাৰী সাময়িকভাৱে সীমিত কৰা হৈছে। অধিক জানিবলৈ টিপক।"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"আপোনাৰ ফ’নটো স্বাভাৱিকতকৈ বেছি ব্যৱহাৰ কৰা হৈছে। আপোনাৰ বেটাৰি আশা কৰাতকৈ আগতেই শেষ হ’ব পাৰে।\n\nআটাইতকৈ বেছি বেটাৰি ব্যৱহাৰ কৰা এপ্সমূহ:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"আপোনাৰ টেবলেটটো স্বাভাৱিকতকৈ বেছি ব্যৱহাৰ কৰা হৈছে। আপোনাৰ বেটাৰি আশা কৰাতকৈ আগতেই শেষ হ’ব পাৰে।\n\nআটাইতকৈ বেছি বেটাৰি ব্যৱহাৰ কৰা এপ্সমূহ:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"আপোনাৰ ডিভাইচটো স্বাভাৱিকতকৈ বেছি ব্যৱহাৰ কৰা হৈছে। আপোনাৰ বেটাৰি আশা কৰাতকৈ আগতেই শেষ হ’ব পাৰে।\n\nআটাইতকৈ বেছি বেটাৰি ব্যৱহাৰ কৰা এপ্সমূহ:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ইনষ্টল নকৰিব"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"যিহ’লেও ইনষ্টল কৰক"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"প্ৰমাণপত্ৰ ইনষ্টল নহ’ল"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g>ক এই ডিভাইচটোত প্ৰমাণপত্ৰসমূহ ইনষ্টল কৰিবলৈ দিবনে?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"এই প্ৰমাণপত্ৰসমূহে তলৰ এপ্ আৰু URLসমূহৰ সৈতে আপোনাৰ পৰিচয় কৰাব"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"অনুমতি নিদিব"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"অনুমতি দিয়ক"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"অধিক দেখুৱাওক"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"প্ৰমাণপত্ৰ পৰিচালনা এপ্"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"একো নাই"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"এই এপ্টোৱে ইনষ্টল কৰা প্ৰমাণপত্ৰই তলৰ এপ্ আৰু URLসমূহৰ সৈতে আপোনাৰ পৰিচয় কৰাব"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"আঁতৰাওক"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"জৰুৰীকালীন অৱস্থাত ডায়েল কৰা ছিগনেল"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"জৰুৰীকালীন কল কৰোতে কৰিবলগীয়া আচৰণ ছেট কৰক"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"বেকআপ"</string>
@@ -3883,12 +3892,9 @@
<string name="switch_on_text" msgid="5664542327776075105">"অন কৰক"</string>
<string name="switch_off_text" msgid="1315547447393646667">"অফ কৰক"</string>
<string name="screen_pinning_title" msgid="6927227272780208966">"এপ্ পিন কৰা"</string>
- <!-- no translation found for app_pinning_intro (6409063008733004245) -->
- <skip />
- <!-- no translation found for screen_pinning_description (7289730998890213708) -->
- <skip />
- <!-- no translation found for screen_pinning_guest_user_description (5826264265872938958) -->
- <skip />
+ <string name="app_pinning_intro" msgid="6409063008733004245">"এপ্ পিন কৰা সুবিধাটোৱে আপোনাক আপুনি বৰ্তমানৰ এপ্টো আনপিন নকৰা পৰ্যন্ত সেইটোক দেখা পোৱা কৰি ৰাখিবলৈ দিয়ে। কোনো বিশ্বাসী বন্ধুক এটা নিৰ্দিষ্ট গে’ম খেলিবলৈ দিয়াৰ দৰে কাৰ্যৰ বাবে এই সুবিধাটো ব্যৱহাৰ কৰিব পাৰি।"</string>
+ <string name="screen_pinning_description" msgid="7289730998890213708">"কোনো এটা এপ্ পিন কৰি ৰখাৰ সময়ত, পিন কৰি ৰখা এপ্টোৱে হয়তো অন্য এপ্সমূহ খুলিব পাৰে আৰু ব্যক্তিগত ডেটা এক্সেছ কৰিব পাৰে। \n\nএপ্ পিন কৰা সুবিধাটো ব্যৱহাৰ কৰিবলৈ: \n১) এপ্ পিন কৰা সুবিধাটো অন কৰক \n২) ৰূপৰেখা খোলক \n৩) স্ক্ৰীনখনৰ একেবাৰে ওপৰত থকা এপৰ চিহ্নটোত টিপক, তাৰ পাছত পিন কৰকত টিপক"</string>
+ <string name="screen_pinning_guest_user_description" msgid="5826264265872938958">"কোনো এটা এপ্ পিন কৰি ৰখাৰ সময়ত, পিন কৰি ৰখা এপ্টোৱে হয়তো অন্য এপ্সমূহ খুলিব পাৰে আৰু ব্যক্তিগত ডেটা এক্সেছ কৰিব পাৰে। \n\nযদি আপুনি নিজৰ ডিভাইচটো কাৰোবাৰ সৈতে সুৰক্ষিতভাৱে শ্বেয়াৰ কৰিব বিচাৰে, তেন্তে ইয়াৰ পৰিৱৰ্তে এটা অতিথি প্ৰ’ফাইল ব্যৱহাৰ কৰি চাওক। \n\nএপ্ পিন কৰা সুবিধাটো ব্যৱহাৰ কৰিবলৈ: \n১) এপ্ পিন কৰা সুবিধাটো অন কৰক \n২) ৰূপৰেখা খোলক \n৩) স্ক্ৰীনখনৰ একেবাৰে ওপৰত থকা এপৰ চিহ্নটোত টিপক, তাৰ পাছত পিন কৰকত টিপক"</string>
<string name="screen_pinning_dialog_message" msgid="8144925258679476654">"কোনো এটা এপ্ পিন কৰি ৰখাৰ সময়ত: \n\n• ব্যক্তিগত ডেটা এক্সেছ কৰিব পৰা যাব পাৰে \n (যেনে সম্পর্কসমূহ আৰু ইমেইলৰ সমল) \n• পিন কৰি ৰখা এপ্টোৱে হয়তো অন্য এপ্সমূহ খুলিব পাৰে \n\nআপুনি বিশ্বাস কৰা লোকসকলৰ সৈতেহে এপ্ পিন কৰা সুবিধাটো ব্যৱহাৰ কৰক।"</string>
<string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"আনপিন কৰাৰ পূৰ্বে আনলক আৰ্হি দিবলৈ কওক"</string>
<string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"আনপিন কৰোতে পাছৱৰ্ড বিচাৰক"</string>
@@ -4511,8 +4517,7 @@
<string name="ambient_display_tap_screen_title" product="device" msgid="4423803387551153840">"ডিভাইচটো পৰীক্ষা কৰিবলৈ টিপক"</string>
<string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"সময়, জাননী আৰু অন্য তথ্য চাবলৈ আপোনাৰ স্ক্ৰীণত টিপক।"</string>
<string name="emergency_gesture_screen_title" msgid="3280543310204360902">"জৰুৰীকালীন SOS"</string>
- <!-- no translation found for emergency_gesture_switchbar_title (7494629420708117232) -->
- <skip />
+ <string name="emergency_gesture_switchbar_title" msgid="7494629420708117232">"জৰুৰীকালীন SOS ব্যৱহাৰ কৰক"</string>
<string name="emergency_gesture_entrypoint_summary" msgid="4730874229911208834">"<xliff:g id="APP_NAME">%1$s</xliff:g>এ পৰিচালনা কৰা"</string>
<string name="emergency_gesture_screen_summary" msgid="458991229689082120">"পাৱাৰ বুটামটো ক্ষিপ্ৰতাৰে ৫ অথবা তাতকৈ অধিক বাৰ টিপি তলত দিয়া কাৰ্যবিলাক আৰম্ভ কৰক"</string>
<string name="emergency_gesture_sound_setting_title" msgid="7153948164862156536">"কাউণ্টডাউন এলাৰ্ম প্লে’ কৰক"</string>
@@ -4646,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"দেখিব পৰা অধিকতম ডেটাছেট"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ডিফ’ল্ট মানলৈ ৰিছেট কৰক"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"বিকাশকৰ্তাৰ স্বয়ংপূৰ্তি হোৱা বিকল্পসমূহ ৰিছেট কৰা হৈছে"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"সম্পূৰ্ণ জিএনএছএছ পৰিমাপ প্ৰয়োগ কৰক"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"কোনো উপযোগীতা অনুপাতৰ সহায় নোলোৱাকৈ GNSS কনষ্টেলেশ্বন আৰু ফ্ৰিকুৱেন্সী নিৰীক্ষণ কৰক"</string>
<string name="device_theme" msgid="5027604586494772471">"ডিভাইচৰ থিম"</string>
<string name="default_theme" msgid="4815428567082263639">"ডিফ\'ল্ট"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"নেটৱৰ্কৰ নাম"</string>
@@ -4662,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"মনোযোগ বৰ্তাই ৰাখিবলৈ জাননী বন্ধ কৰক"</string>
<string name="disabled_feature" msgid="7151433782819744211">"সুবিধাসমূহ উপলব্ধ নহয়"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"এই সুবিধাটোৱে আপোনাৰ ফ\'নটোৰ কার্যকলাপ লেহেমীয়া কৰে বাবে ইয়াক অফ কৰা হৈছে"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"সম্পূৰ্ণ জিএনএছএছ পৰিমাপ প্ৰয়োগ কৰক"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"কোনো উপযোগীতা অনুপাতৰ সহায় নোলোৱাকৈ GNSS কনষ্টেলেশ্বন আৰু ফ্ৰিকুৱেন্সী নিৰীক্ষণ কৰক"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"সদায় ক্ৰেশ্ব ডায়ল\'গ দেখুৱাওক"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"কোনো এপ্ ক্ৰেশ্ব হ\'লে প্ৰতিবাৰতে ডায়ল\'গ দেখুৱাওক"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE সক্ষম কৰি ৰখা এপ্লিকেশ্বন বাছনি কৰক"</string>
@@ -4731,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"অন আছে (মিউট)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"অফ আছে"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"নেটৱৰ্কৰ সবিশেষ"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"আপোনাৰ ডিভাইচটোৰ নাম আপোনাৰ ফ\'নটোত থকা এপসমূহৰ বাবে দৃশ্যমান। আপুনি ব্লুটুথ ডিভাইচৰ সৈতে সংযোগ কৰোঁতে বা ৱাই-ফাই হটস্পট ছেট আপ কৰোঁতেও নামটো অইনে দেখা পাব পাৰে।"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"আপোনাৰ ডিভাইচটোৰ নাম আপোনাৰ ফ’নটোত থকা এপ্সমূহৰ বাবে দৃশ্যমান। আপুনি ব্লুটুথ ডিভাইচৰ সৈতে সংযোগ কৰোঁতে, ৱাই-ফাই নেটৱৰ্কৰ সৈতে সংযোগ কৰোঁতে অথবা ৱাই-ফাই হটস্পট ছেট আপ কৰোঁতেও এইটো অন্য লোকে দেখা পাব পাৰে।"</string>
<string name="devices_title" msgid="649715719278562515">"ডিভাইচসমূহ"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"সকলো ছেটিং"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"পৰামৰ্শ"</string>
@@ -4891,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"ছিমখন সক্ৰিয় কৰিব নোৱাৰি"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"ছিমখন আঁতৰাওক আৰু পুনৰ ভৰাওক। সমস্যাটো অব্যাহত থাকিলে আপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰক।"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ছিমখন পুনৰ অন কৰিবলৈ চেষ্টা কৰক। সমস্যাটো অব্যাহত থাকিলে আপোনাৰ ডিভাইচটো ৰিষ্টাৰ্ট কৰক।"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"নেটৱৰ্ক সক্ৰিয়কৰণ"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> সক্ৰিয় হৈ আছে"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"ছিমৰ ছেটিং আপডে’ট কৰিবলৈ টিপক"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"ছিম কাৰ্ড"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"এই ডাউনল’ড কৰা ছিমখন মচিবনে?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"এই ছিমখন আঁতৰালে এই ডিভাইচটোৰ পৰা <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> সেৱা আঁতৰোৱা হ’ব।\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>ৰ সেৱা বাতিল কৰা নহয়।"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"মচক"</string>
@@ -4968,12 +4983,9 @@
<string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"জৰুৰীকালীন কল"</string>
<string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"আপোনাৰ বাহকত ৱাই-ফাই কলিং ব্যৱহাৰ কৰি জৰুৰীকালীন কল কৰাৰ সুবিধা নাই।\nজৰুৰীকালীন কল কৰিবলৈ ডিভাইচটোৱে স্বয়ংক্ৰিয়ভাৱে চেলুলাৰ নেটৱৰ্কলৈ সলনি কৰে।\nকেৱল চেলুলাৰ নেটৱৰ্ক থকা ঠাইৰ পৰাহে জৰুৰীকালীন কল কৰিব পৰা যায়।"</string>
<string name="wifi_calling_summary" msgid="8566648389959032967">"মান উন্নত কৰিবলৈ কল কৰোঁতে ৱাই-ফাই ব্যৱহাৰ কৰক"</string>
- <!-- no translation found for cross_sim_calling_settings_title (1179406214047299816) -->
- <skip />
- <!-- no translation found for cross_sim_calling_setting_summary (7960473304104701519) -->
- <skip />
- <!-- no translation found for keywords_cross_sim_calling (1702104511020507778) -->
- <skip />
+ <string name="cross_sim_calling_settings_title" msgid="1179406214047299816">"ক্ৰছ-ছিম কলিং"</string>
+ <string name="cross_sim_calling_setting_summary" msgid="7960473304104701519">"এইখন ছিমৰ জৰিয়তে অন্য ছিমৰ পৰা কল কৰাৰ আৰু এছএমএছ পঠিওৱাৰ অনুমতি দিয়ক।"</string>
+ <string name="keywords_cross_sim_calling" msgid="1702104511020507778">"ক্ৰছ-ছিম কলিং"</string>
<string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"অন্তৰ্গামী এমএমএছ বার্তা"</string>
<string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"এমএমএছ বার্তা পঠিয়াব নোৱাৰি"</string>
<string name="enable_mms_notification_summary" msgid="6432752438276672500">"ম’বাইল ডেটা অফ হৈ থকাৰ সময়তো <xliff:g id="OPERATOR_NAME">%1$s</xliff:g>ত এমএমএছ বার্তা পঠিওৱাৰ অনুমতি দিবলৈ টিপক"</string>
@@ -5046,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"ৱাই-ফাই কলিঙৰ সুবিধাটোৱে আপোনাক কিছুমান ৱাই-ফাই নেটৱৰ্কৰ দৰে বাহক বহিৰ্ভূত নেটৱৰ্কৰ জৰিয়তে কল কৰিবলৈ আৰু লাভ কৰিবলৈ সুবিধা দিয়ে।"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"কল"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"এছএমএছ"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"অগ্ৰাধিকাৰ দিয়া"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"কলক অগ্ৰাধিকাৰ দিয়া হৈছে"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"এছএমএছক অগ্ৰাধিকাৰ দিয়া হৈছে"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"উপলব্ধ নহয়"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"ছিম নাই"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"অগ্ৰাধিকাৰ"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"ৰাজহুৱা নেটৱৰ্কসমূহৰ সৈতে সংযোগ কৰক"</string>
<string name="keywords_internet" msgid="7674082764898690310">"নেটৱৰ্ক সংযোগ, ইণ্টাৰনেট, বেতাঁৰ, ডেটা, ৱাইফাই, ৱাই-ফাই, ৱাই ফাই, চেলুলাৰ, ম’বাইল, চেল কেৰিয়াৰ, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"এয়াৰপ্লেন-সুৰক্ষিত নেটৱৰ্ক চাওক"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"এয়াৰপ্লেন ম’ডটো অফ কৰক"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"শোৱাৰ সময়ৰ ম’ড অন হৈ থকাৰ বাবে উপলব্ধ নহয়"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"জাননীৰ গুৰুত্ব ৰিছেট কৰাটো সম্পূৰ্ণ হৈছে।"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"এপ্"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 2a2f21e..76678c7 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 ünvanları"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saxlanmış şəbəkələr"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abunəliklər"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Digər şəbəkələr"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP ayarları"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Təkmilləşmiş Wi‑Fi ayarları bu istifadəçi üçün əlçatmazdır"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Yadda saxlayın"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN silin"</string>
<string name="menu_new" msgid="6571230342655509006">"Yeni APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Yadda saxla"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Kənarlaşdır"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Ləğv edin"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Ad sahəsi boş ola bilməz."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN boş ola bilməz."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Planşet hədindən çox istifadə etdi"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Cihaz həddindən çox istifadə etdi"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Batareya həmişə olduğundan daha tez bitə bilər"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batareya müvəqqəti məhdudlaşdırılıb"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Batareyanın vəziyyətini qorumağa yardım edir. Ətraflı məlumat üçün toxunun."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batareya müvəqqəti məhdudlaşdırılıb. Ətraflı məlumat üçün toxunun."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefon həddindən artıq çox işlədilib. Batareya gözləniləndən tez bitə bilər.\n\nƏn çox batareya işlədən tətbiqlər:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Planşet həddindən artıq çox işlədilib. Batareya gözləniləndən tez bitə bilər.\n\nƏn çox batareya işlədən tətbiqlər:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Cihaz həddindən artıq çox işlədilib. Batareya gözləniləndən tez bitə bilər.\n\nƏn çox batareya işlədən tətbiqlər:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Quraşdırmayın"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"İstənilən halda quraşdırın"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifikat quraşdırılmadı"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g> tətbiqinə bu cihazda sertifikatları quraşdırmaq üçün icazə verilsin?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Bu sertifikatlar aşağıdakı tətbiqlər və URL\'lar üçün kimliyinizi doğrulayacaq"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"İcazə verməyin"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"İcazə verin"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Daha çoxunu göstərin"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Sertifikat idarəetmə tətbiqi"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Yoxdur"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Bu tətbiq tərəfindən quraşdırılan sertifikatlar aşağıdakı tətbiqlər və URL\'lar üçün kimliyinizi doğrulayır"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Silin"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Təcili zəng siqnalı"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Təcili zəng olduqda davranış təyin et"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Yedək"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksimum görünən datasetlər"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Defolt dəyərlərə sıfırlayın"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Avto doldurma developer seçimləri sıfırlanıb"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Tam GNSS ölçülərini icra edin"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"İş sistemi olmadan bütün GNSS qruplaşmaları və tezliklərini izləyin"</string>
<string name="device_theme" msgid="5027604586494772471">"Cihaz teması"</string>
<string name="default_theme" msgid="4815428567082263639">"Defolt"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Şəbəkə adı"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Foksulanmağa davam etmək üçün bildirişləri dayandırın"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funksiya əlçatan deyil"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Bu funksiya telefonu yavaşlatdığı üçün deaktiv edilib"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Tam GNSS ölçülərini icra edin"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"İş sistemi olmadan bütün GNSS qruplaşmaları və tezliklərini izləyin"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Xəta dialoqunu həmişə göstərin"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Tətbiqdə xəta baş verdiyi zaman dialoqu göstərin"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE aktiv olan tətbiq seçin"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Aktiv (səssiz)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Deaktiv"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Şəbəkə bilgisi"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Cihazın adı telefondakı tətbiqlərdə görünəcək. Bluetooth cihazlarına qoşulduqda və ya Wi-Fi hotspotu ayarladıqda digərləri də onu görə bilər."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Cihazın adı telefondakı tətbiqlərdə görünəcək. Bluetooth cihazlarına qoşulduqda və ya Wi-Fi hotspotu ayarladıqda digərləri də onu görə bilər."</string>
<string name="devices_title" msgid="649715719278562515">"Cihazlar"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Bütün Ayarlar"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Təkliflər"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-i aktiv etmək mümkün deyil"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM-i çıxarıb yenidən taxın. Problem həll olmasa, cihazı yenidən başladın."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM-i yenidən aktiv etməyə çalışın. Problem həll olmasa, cihazı yenidən başladın."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Şəbəkənin aktiv edilməsi"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> aktivdir"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM ayarlarını yeniləmək üçün toxunun"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM kart"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Endirilən SIM silinsin?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Bu SIM silindikdə <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> xidməti bu cihazdan silinəcək.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> üçün xidmət ləğv edilməyəcək."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Silin"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi zəngi bəzi Wi‑Fi şəbəkələri kimi operator olmayan şəbəkələr üzərindən zəng etmək və qəbul etməyinizə imkan verir."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Zənglər"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"tərcih edilənlər"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"tərcih edilən zənglər"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS tərcih edilir"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"əlçatmazdır"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM yoxdur"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Tərcihlər"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"İctimai şəbəkələrə qoşulun"</string>
<string name="keywords_internet" msgid="7674082764898690310">"şəbəkə bağlantısı, internet, simsiz, data, wifi, wi-fi, wi fi, mobil şəbəkə, mobil, mobil operator, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Təyyarə üçün güvənli şəbəkələrə baxın"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Təyyarə Rejimini deaktiv edin"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Yuxu vaxtı rejimi aktiv olduğuna görə əlçatan deyil"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Bildiriş əhəmiyyətinin sıfırlanması tamamlandı."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Tətbiqlər"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 82ec8de..f29d825 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -1042,8 +1042,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 adrese"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Sačuvane mreže"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Pretplate"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Ostale mreže"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP podešavanja"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Napredna podešavanja Wi‑Fi mreže nisu dostupna za ovog korisnika"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Sačuvaj"</string>
@@ -1390,7 +1389,7 @@
<string name="storage_settings_summary" product="default" msgid="267557695753980969">"Oslobađanje SD kartice, prikaz dostupnog skladišta"</string>
<string name="imei_multi_sim" msgid="71477088017585479">"IMEI (otvor za SIM: %1$d)"</string>
<string name="view_saved_network" msgid="1232387673095080910">"Da biste videli, odaberite sačuvanu mrežu"</string>
- <string name="status_number" product="tablet" msgid="3597945414666253183">"Broj mobilnog direktorijuma"</string>
+ <string name="status_number" product="tablet" msgid="3597945414666253183">"Broj mobilnog foldera"</string>
<string name="status_number" product="default" msgid="8407999629121682207">"Broj telefona"</string>
<string name="status_number_sim_slot" product="tablet" msgid="6582203988975619529">"MDN (otvor za SIM: %1$d)"</string>
<string name="status_number_sim_slot" product="default" msgid="5724823197745786398">"Br. tel. (otvor za SIM: %1$d)"</string>
@@ -1618,7 +1617,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Izbriši naziv pristupne tačke"</string>
<string name="menu_new" msgid="6571230342655509006">"Nov naziv pristupne tačke"</string>
<string name="menu_save" msgid="6611465355127483100">"Sačuvaj"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Odbaci"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Otkaži"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Polje Naziv ne sme da bude prazno."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Polje Naziv pristupne tačke ne sme da bude prazno."</string>
@@ -2487,8 +2486,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet ste koristili duže nego obično"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Uređaj ste koristili duže nego obično"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Baterija može da se isprazni ranije nego obično"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Baterija je trenutno ograničena"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Pomaže u očuvanju stanja baterije. Dodirnite da biste saznali više."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Baterija je trenutno ograničena. Dodirnite da biste saznali više."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Uređaj ste koristili duže nego obično. Baterija može da se isprazni ranije od očekivanog.\n\nAplikacije sa najvećom potrošnjom baterije:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tablet ste koristili duže nego obično. Baterija može da se isprazni ranije od očekivanog.\n\nAplikacije sa najvećom potrošnjom baterije:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Uređaj ste koristili duže nego obično. Baterija može da se isprazni ranije od očekivanog.\n\nAplikacije sa najvećom potrošnjom baterije:"</string>
@@ -2761,6 +2761,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ne instaliraj"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Ipak instaliraj"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifikat nije instaliran"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Želite da dozvolite da <xliff:g id="APP_NAME">%s</xliff:g> instalira sertifikate na ovom uređaju?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Ovi sertifikati će potvrditi vaš identitet za aplikacije i URL-ove u nastavku"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ne dozvoli"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Dozvoli"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Prikaži više"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Upravljanje sertifikatima"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nema"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Sertifikati koje ova aplikacija instalira identifikuju vas aplikacijama i URL-ovima u nastavku"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Ukloni"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signal za hitne pozive"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Podešavanje ponašanja kada se uspostavlja hitan poziv"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Rezervne kopije"</string>
@@ -3509,7 +3518,7 @@
<string name="work_sync_dialog_yes" msgid="9161415252411868574">"Zameni"</string>
<string name="work_sync_dialog_message" msgid="1328692374812258546">"Zvukovi sa ličnog profila će se koristiti za poslovni profil"</string>
<string name="ringtones_install_custom_sound_title" msgid="3885712267015760638">"Dodati prilagođeni zvuk?"</string>
- <string name="ringtones_install_custom_sound_content" msgid="5844996763705884979">"Ova datoteka će biti kopirana u direktorijum <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
+ <string name="ringtones_install_custom_sound_content" msgid="5844996763705884979">"Ova datoteka će biti kopirana u folder <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
<string name="ringtones_category_preference_title" msgid="26680768777533727">"Melodije zvona"</string>
<string name="other_sound_category_preference_title" msgid="8182757473602586634">"Drugi zvukovi i vibracije"</string>
<string name="configure_notification_settings" msgid="1492820231694314376">"Obaveštenja"</string>
@@ -4722,6 +4731,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksimalan broj vidljivih skupova podataka"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Resetuj na podrazumevane vrednosti"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Opcije za programera za automatsko popunjavanje su resetovane"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Prinudno pokreni puna GNSS merenja"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Prati sve GNSS konstalacije i frekvencije bez ciklusa rada"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema uređaja"</string>
<string name="default_theme" msgid="4815428567082263639">"Podrazumevana"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Naziv mreže"</string>
@@ -4738,8 +4755,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pauzirajte obaveštenja radi bolje koncentracije"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funkcija nije dostupna"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Ova funkcija je isključena jer usporava telefon"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Prinudno pokreni puna GNSS merenja"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Prati sve GNSS konstalacije i frekvencije bez ciklusa rada"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Uvek prikazuj dijalog o otkazivanju"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Prikaži dijalog svaki put kada aplikacija otkaže"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Izaberi aplikaciju omogućenu za ANGLE"</string>
@@ -4807,7 +4822,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Uključeno (zvuk je isključen)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Isključeno"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalji o mreži"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Ime uređaja vide aplikacije na telefonu. Mogu da ga vide i drugi ljudi kad se povežete sa Bluetooth uređajima ili podesite WiFi hotspot."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Aplikacije na telefonu mogu da vide naziv uređaja. I drugi ljudi mogu da vide naziv uređaja mogu kada se povežete sa Bluetooth uređajima ili WiFi mrežom ili podesite WiFi hotspot."</string>
<string name="devices_title" msgid="649715719278562515">"Uređaji"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Sva podešavanja"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Predlozi"</string>
@@ -4966,8 +4981,12 @@
<string name="sim_action_no_thanks" msgid="435717748384544195">"Ne, hvala"</string>
<string name="sim_switch_button" msgid="1405772571706095387">"Pređi"</string>
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Aktiviranje SIM kartice nije uspelo"</string>
- <string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Uklonite SIM karticu, pa je umetnite ponovo. Ako se problem i dalje javlja, restartujte uređaj."</string>
+ <string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Uklonite SIM karticu, pa je stavite ponovo. Ako se problem i dalje javlja, restartujte uređaj."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Probajte ponovo da uključite SIM karticu. Ako se problem i dalje javlja, restartujte uređaj."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivacija mreže"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Mobilni operater <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktivan"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Dodirnite da biste ažurirali podešavanja SIM-a"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM kartica"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Želite li da obrišete ovaj preuzeti SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Brisanjem ove SIM kartice uklonićete <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> uslugu sa ovog uređaja.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> usluga neće biti otkazana."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Obriši"</string>
@@ -5122,9 +5141,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Pozivanje preko WiFi-ja vam omogućava da primate i upućujete pozive preko mreža koje ne pripadaju mobilnom operateru, na primer, nekih WiFi mreža."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Pozivi"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"prednost"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"prednost imaju pozivi"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"prednost ima SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"nedostupno"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Nema SIM kartice"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Podešavanja"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Povežite se sa javnim mrežama"</string>
<string name="keywords_internet" msgid="7674082764898690310">"mrežna veza, internet, bežično, podaci, wifi, wi-fi, wi fi, mobilni telefon, mobilni, mobilni operater, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Prikaži mreže bezbedne za avion"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Isključi režim rada u avionu"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nedostupno je jer je noćni režim uključen"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Resetovanje važnosti obaveštenja je dovršeno."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikacije"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 6892820..a807800 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -1062,8 +1062,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-адрасы"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Захаваныя сеткі"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Падпіскі"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Іншыя сеткі"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Налады IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Пашыраныя налады Wi-Fi не даступныя для гэтага карыстальніка"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Захаваць"</string>
@@ -1639,7 +1638,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Выдаліць APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Новы APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Захаваць"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Адхіліць"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Скасаваць"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Поле «Імя» не можа быць пустым."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Значэнне APN не можа быць пустым."</string>
@@ -2518,8 +2517,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Планшэт выкарыстоўваецца больш, чым звычайна"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Прылада выкарыстоўваецца больш, чым звычайна"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Акумулятар можа разрадзіцца хутчэй, чым звычайна"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Зарад акумулятара часова абмежаваны"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Дапамагае павялічыць тэрмін службы акумулятара. Націсніце, каб даведацца больш."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Зарад акумулятара часова абмежаваны. Націсніце, каб даведацца больш."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Тэлефон выкарыстоўваецца больш, чым звычайна. Акумулятар хутка разрадзіцца.\n\nПраграмы з самым высокім спажываннем энергіі:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Планшэт выкарыстоўваецца больш, чым звычайна. Акумулятар хутка разрадзіцца.\n\nПраграмы з самым высокім спажываннем энергіі:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Ваша прылада выкарыстоўваецца больш, чым звычайна. Акумулятар хутка разрадзіцца.\n\nПраграмы з самым высокім спажываннем энергіі:"</string>
@@ -2799,6 +2799,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Не ўсталёўваць"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Усё роўна ўсталяваць"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Сертыфікат не ўсталяваны"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Дазволіць, каб праграма <xliff:g id="APP_NAME">%s</xliff:g> магла ўсталяваць сертыфікаты на гэтай прыладзе?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Дзякуючы гэтым сертыфікатам пералічаныя ніжэй праграмы і вэб-старонкі змогуць вызначаць вас"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Не дазваляць"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Дазволіць"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Разгарнуць"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Праграма кантролю сертыфікатаў"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Няма"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Дзякуючы ўсталяваным гэтай праграмай сертыфікатам пералічаныя ніжэй праграмы і вэб-старонкі змогуць вызначаць вас"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Выдаліць"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Сігнал набору нумару ў аварыйнай сітуацыі"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Задаць паводзіны на выпадак экстранага выкліку"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Рэзервовае капіраванне"</string>
@@ -4802,6 +4811,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Максімальная колькасць бачных набораў даных"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Скінуць значэнні да стандартных"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Аўтазапаўненне параметраў распрацоўшчыка было скінута"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Прымусова правесці поўныя вымярэнні GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Адсочваць усе групы і частоты GNSS з выключаным працоўным цыклам"</string>
<string name="device_theme" msgid="5027604586494772471">"Тэма прылады"</string>
<string name="default_theme" msgid="4815428567082263639">"Стандартная"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Назва сеткі"</string>
@@ -4818,8 +4835,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Прыпыніце апавяшчэнні, каб яны не адцягвалі ўвагу"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Функцыя недаступная"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Гэта функцыя выключана, таму што яна запавольвае працу вашага тэлефона"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Прымусова правесці поўныя вымярэнні GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Адсочваць усе групы і частоты GNSS з выключаным працоўным цыклам"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Заўсёды паказваць дыялогавыя вокны з памылкамі"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Паказваць дыялогавае акно кожны раз, калі адбываецца збой праграмы"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Выбраць праграму з падтрымкай ANGLE"</string>
@@ -4887,7 +4902,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Уключана (без гуку)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Выключана"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Інфармацыя аб сетцы"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Назва вашай прылады даступная для праграм на вашым тэлефоне. Яе таксама будуць бачыць іншыя людзі, калі вы падключыцеся да прылад праз Bluetooth ці наладзіце хот-спот Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Назва вашай прылады даступная для праграм на вашым тэлефоне. Яе таксама будуць бачыць іншыя людзі, калі вы падключыцеся да прылад праз Bluetooth, падключыцеся да сеткі Wi-Fi ці наладзіце хот-спот Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Прылады"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Усе налады"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Прапановы"</string>
@@ -5049,6 +5064,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Не ўдалося актываваць SIM-карту"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Выдаліце SIM-карту і ўстаўце яе зноў. Калі праблема застанецца, перазапусціце прыладу."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Паспрабуйце зноў уключыць SIM-карту. Калі праблема застанецца, перазапусціце прыладу."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Актывацыя сеткі"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Сетка \"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>\" актыўная"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Націсніце, каб абнавіць налады SIM-карты"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-карта"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Сцерці даныя гэтай спампаванай SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Сціранне даных гэтай SIM-карты выдаляе з прылады магчымасць карыстацца паслугамі аператара \"<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>\".\n\nАбслугоўванне ў аператара \"<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>\" будзе працягнута."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Сцерці"</string>
@@ -5205,9 +5224,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi-тэлефанія дазваляе рабіць і прымаць выклікі праз сеткі, якія не належаць аператарам, напрыклад праз некаторыя сеткі Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Выклікі"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"прыярытэтны"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"прыярытэтныя выклікі"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"прыярытэтныя SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"недаступны"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Няма SIM-карты"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Параметры"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Падключацца да агульнадаступных сетак"</string>
<string name="keywords_internet" msgid="7674082764898690310">"падключэнне да сеткі, інтэрнэт, бесправадны, даныя, wifi, wi-fi, wi fi, сотавая сетка, мабільны, аператар сотавай сувязі, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Праглядзець бяспечныя ў самалёце сеткі"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Выключыць рэжым палёту"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Недаступна, бо ўключаны начны рэжым"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Скід налад важнасці апавяшчэнняў завершаны."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Праграмы"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 4239e45..706d586 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 адреси"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Запазени мрежи"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Абонаменти"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Други мрежи"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Настройки за IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Разширените настройки за Wi-Fi не са налице за този потребител"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Запазване"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Изтриване на името на точката за достъп (APN)"</string>
<string name="menu_new" msgid="6571230342655509006">"Ново име на точка за достъп (APN)"</string>
<string name="menu_save" msgid="6611465355127483100">"Запазване"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Отхвърляне"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Отказ"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Полето за име трябва да се попълни."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Името на точката за достъп (APN) трябва да се попълни."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Таблетът е използван повече от обикновено"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Устройството е използвано повече от обикновено"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Батерията може да се изтощи по-рано от обикновено"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Батерията е временно ограничена"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Помага за запазване на състоянието на батерията. Докоснете, за да научите повече."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Батерията е временно ограничена. Докоснете, за да научите повече."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Телефонът ви е използван повече от обикновено. Батерията може да се изтощи по-рано от очакваното.\n\nПриложения с най-висок разход на батерията:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Таблетът ви е използван повече от обикновено. Батерията може да се изтощи по-рано от очакваното.\n\nПриложения с най-висок разход на батерията:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Устройството ви е използвано повече от обикновено. Батерията може да се изтощи по-рано от очакваното.\n\nПриложения с най-висок разход на батерията:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Без инсталиране"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Инсталиране въпреки това"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Сертификатът не е инсталиран"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Разрешавате ли на <xliff:g id="APP_NAME">%s</xliff:g> да инсталира сертификати на това устройство?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Тези сертификати ще ви идентифицират пред приложенията и URL адресите по-долу"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Забраняване"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Разрешаване"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Показване на още"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Прил. за управл. на сертифик."</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Няма"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Сертификатите, инсталирани от това приложение, ви идентифицират пред приложенията и URL адресите по-долу"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Премахване"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал за набиране при спешен случай"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Задаване на поведение при спешно обаждане"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Резервно копие"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Максимален брой видими набори от данни"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Възстановяване на стандартните стойности"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Опциите за автоматично попълване за програмисти са нулирани"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Налагане на пълно проследяване на измерванията с GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Проследяване на всички констелации и честоти на GNSS без използване на коефициент на запълване"</string>
<string name="device_theme" msgid="5027604586494772471">"Тема на устройството"</string>
<string name="default_theme" msgid="4815428567082263639">"Стандартно"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Име на мрежата"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Поставете известията на пауза, за да не ви разсейват"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Функцията не е налице"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Тази функция бе изключена, защото забавя телефона ви"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Налагане на пълно проследяване на измерванията с GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Проследяване на всички констелации и честоти на GNSS без използване на коефициент на запълване"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Диалоговият прозорец за сривове да се показва винаги"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Диалоговият прозорец да се показва всеки път, когато дадено приложение претърпи срив"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Избиране на активирано за ANGLE приложение"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Вкл. (заглушаване)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Изкл."</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Подробности за мрежата"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Името на устройството ви е видимо за приложенията на телефона ви. То може да се вижда и от други хора, когато се свържете с устройства с Bluetooth или настроите точка за достъп до Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Името на устройството ви е видимо за приложенията на телефона ви. То може да се вижда и от други хора, когато се свържете с устройства с Bluetooth или настроите точка за достъп до Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Устройства"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Всички настройки"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Предложения"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM картата не може да се активира"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Премахнете SIM картата и я поставете отново. Ако проблемът не се отстрани, рестартирайте устройството си."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Включете отново SIM картата. Ако проблемът не се отстрани, рестартирайте устройството си."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активиране на мрежа"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Услугата <xliff:g id="CARRIER_NAME">%1$s</xliff:g> е активна"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Докоснете, за да актуализирате настройките за SIM картата"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM карта"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Да се изтрие ли тази изтеглена SIM карта?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"С изтриването на тази SIM карта услугата на <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> се премахва от устройството.\n\nУслугата за <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> няма да бъде анулирана."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Изтриване на данните"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Функцията за обаждания през Wi-Fi ви дава възможност да извършвате и получавате обаждания през мрежи, които не са на мобилни оператори, като например някои Wi-Fi мрежи."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Обаждания"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"предпочитани"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"предпочитат се обаждания"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"предпочитат се SMS съобщения"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"не е налице"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Няма SIM карта"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Предпочитания"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Свързване с обществени мрежи"</string>
<string name="keywords_internet" msgid="7674082764898690310">"връзка с мрежата, интернет, безжична мрежа, данни, Wi-Fi, мобилни данни, мобилна мрежа, мобилен оператор, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Мрежи, безопасни за ползване по време на полет"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Изключете самолетния режим"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Не е налице, тъй като режимът „Време за сън“ е включен"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Нулирането на настройките за важност на известията завърши."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Приложения"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index d0c1cda..1961763 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 অ্যাড্রেসগুলি"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"সেভ করা নেটওয়ার্ক"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"সাবস্ক্রিপশন"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"অন্য নেটওয়ার্ক"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP সেটিংস"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"এই ব্যবহারকারীর জন্য ওয়াই-ফাই এর উন্নত সেটিংস উপলব্ধ নয়"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"সেভ করুন"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN মুছে দিন"</string>
<string name="menu_new" msgid="6571230342655509006">"নতুন APN"</string>
<string name="menu_save" msgid="6611465355127483100">"সেভ করুন"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"খারিজ করুন"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"বাতিল করুন"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"নাম ফিল্ডটি খালি থাকতে পারে না।"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN খালি থাকতে পারে না।"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ট্যাবলেট স্বাভাবিকের চেয়ে বেশি ব্যবহৃত হয়েছে"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"ডিভাইস স্বাভাবিকের চেয়ে বেশি ব্যবহৃত হয়েছে"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"প্রত্যাশিত সময়ের আগেই চার্জ শেষ হয়ে যেতে পারে"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"ব্যাটারি কিছুক্ষণের জন্য সীমিত করা হয়েছে"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ব্যাটারির চার্জ সাশ্রয় করতে সাহায্য করে। আরও জানতে ট্যাপ করুন।"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"ব্যাটারির ব্যবহার কিছুক্ষণের জন্য সীমিত করা হয়েছে। আরও জানতে ট্যাপ করুন।"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"আপনার ফোন স্বাভাবিকের চেয়ে বেশি ব্যবহার হয়েছে। প্রত্যাশিত সময়ের আগেই ব্যাটারির চার্জ শেষ হয়ে যেতে পারে।\n\nব্যাটারি বেশি ব্যবহার করে এমন অ্যাপ:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"আপনার ট্যাবলেট স্বাভাবিকের চেয়ে বেশি ব্যবহার হয়েছে। প্রত্যাশিত সময়ের আগেই ব্যাটারির চার্জ শেষ হয়ে যেতে পারে।\n\nব্যাটারি বেশি ব্যবহার করে এমন অ্যাপ:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"আপনার ডিভাইস স্বাভাবিকের চেয়ে বেশি ব্যবহার হয়েছে। প্রত্যাশিত সময়ের আগেই ব্যাটারির চার্জ শেষ হয়ে যেতে পারে।\n\nব্যাটারি বেশি ব্যবহার করে এমন অ্যাপ:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ইনস্টল করবেন না"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"তা সত্ত্বেও ইনস্টল করুন"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"সার্টিফিকেট ইনস্টল করা হয়নি"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"এই ডিভাইসে সার্টিফিকেট ইনস্টল করতে <xliff:g id="APP_NAME">%s</xliff:g> অ্যাপকে অনুমতি দেবেন?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"নীচে দেওয়া অ্যাপ এবং ইউআরএল-এ এই সব সার্টিফিকেটের মাধ্যমে আপনাকে শনাক্ত করা হবে"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"অনুমতি দেবেন না"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"অনুমতি দিন"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"আরও দেখুন"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"সার্টিফিকেট ম্যানেজমেন্ট অ্যাপ"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"কোনওটিই নয়"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"এই অ্যাপ দিয়ে যে সার্টিফিকেট ইনস্টল করা হয়েছে সেই অ্যাপ ও নিচের ইউআরএল দিয়ে আপনাকে শনাক্ত করে"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"সরান"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"আপদকালীন ডায়ালিং সিগন্যাল"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"জরুরি কল স্থাপন করা সময় কি ধরণের অ্যাক্টিভিটি করবে তা সেট করুন"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"ব্যাক-আপ"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"সবচেয়ে বেশিবার দেখা ডেটাসেট"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ডিফল্ট মানে রিসেট করুন"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"অটো-ফিল ডেভেলপার বিকল্প রিসেট করা হয়েছে"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GnssMeasurement সম্পূর্ণভাবে ট্র্যাক করুন"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ডিউটি-সাইক্লিং বাদে সমস্ত কন্সটেলেশন এবং ফ্রিকোয়েন্সি ট্র্যাক করুন"</string>
<string name="device_theme" msgid="5027604586494772471">"ডিভাইসের থিম"</string>
<string name="default_theme" msgid="4815428567082263639">"ডিফল্ট"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"নেটওয়ার্কের নাম"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"যাতে বিরক্ত হতে না হয় তার জন্য বিজ্ঞপ্তি পজ করুন"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ফিচারটি উপলভ্য নেই"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"এই ফিচারটি বন্ধ করা হয়েছে কারণ এটি আপনার ফোনের স্পিড কমিয়ে দেয়"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GnssMeasurement সম্পূর্ণভাবে ট্র্যাক করুন"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ডিউটি-সাইক্লিং বাদে সমস্ত কন্সটেলেশন এবং ফ্রিকোয়েন্সি ট্র্যাক করুন"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"প্রত্যেকবার ক্র্যাশ ডায়ালগ দেখাতে দিন"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"কোনও অ্যাপ ক্র্যাশ করলে প্রত্যেকবার ডায়ালগ দেখাতে দিন"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE চালু আছে এমন অ্যাপ বেছে নিন"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"চালু (মিউট)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"বন্ধ"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"নেটওয়ার্কের বিবরণ"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"আপনার ডিভাইসের নাম আপনার ফোনে থাকা অ্যাপে দেখা যাবে। আপনি যখন এটিকে ব্লুটুথ ডিভাইসের সাথে কানেক্ট করেন বা ওয়াই-ফাই হটস্পট সেট-আপ করেন তখন এটি অন্যরাও দেখতে পেতে পারেন।"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"আপনার ফোনের অ্যাপে আপনার ডিভাইসের নাম দেখা যাবে। আপনি ব্লুটুথ ডিভাইসে বা ওয়াই-ফাই নেটওয়ার্কে কানেক্ট করলে অথবা ওয়াই-ফাই হটস্পট সেট আপ করলে এটি অন্যরাও হয়ত দেখতে পাবেন।"</string>
<string name="devices_title" msgid="649715719278562515">"ডিভাইস"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"সমস্ত সেটিংস"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"সাজেশন"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"সিম চালু করা যাচ্ছে না"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"সিম কার্ডটি বের করে আবার ইনসার্ট করুন। এতেও সমস্যা ঠিক না হলে, ডিভাইস রিস্টার্ট করুন।"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"সিমটি আবার চালু করার চেষ্টা করুন। এতেও সমস্যা ঠিক না হলে, ডিভাইস রিস্টার্ট করুন।"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"নেটওয়ার্ক চালু করা"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> চালু আছে"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"সিম সেটিংস আপডেট করতে ট্যাপ করুন"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"সিম কার্ড"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"এই ডাউনলোড করা সিম মুছে ফেলতে চান?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"এই সিম মুছে দিলে এই ডিভাইসে <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> পরিষেবা আর পাওয়া যাবে না।\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> পরিষেবা কিন্তু বাতিল হবে না।"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"মুছুন"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"ওয়াই-ফাই কলিংয়ের সাহায্যে ওয়াই-ফাই নেটওয়ার্কের মতো কিছু পরিষেবা প্রদানকারী নয় এমন নেটওয়ার্ক ব্যবহার করে কল করতে এবং কল রিসিভ করতে পারবেন।"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"কল"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"এসএমএস"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"পছন্দসই"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"কল করা যেতে পারে"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"এসএমএস করা যেতে পারে"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"উপলভ্য নেই"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"কোনও সিম নেই"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"অভিরুচি"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"সর্বজনীন নেটওয়ার্কে কানেক্ট করুন"</string>
<string name="keywords_internet" msgid="7674082764898690310">"নেটওয়ার্ক কানেকশন, ইন্টারনেট, ওয়্যারলেস, ডেটা, ওয়াই-ফাই, ওয়াই-ফাই, ওয়াই-ফাই, মোবাইল ডেটা, মোবাইল, মোবাইল পরিষেবা প্রদানকারী, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"বিমানে ব্যবহার করার মতো নেটওয়ার্ক দেখুন"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"বিমান মোড বন্ধ করুন"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"বেডটাইম মোড চালু থাকায় এই সুবিধা উপলভ্য নয়"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"বিজ্ঞপ্তির দেখানোর অগ্রাধিকার রিসেট করার প্রক্রিয়া সম্পূর্ণ হয়েছে।"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"অ্যাপ"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 241a13a..e14dd8e 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1042,8 +1042,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 adrese"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Sačuvane mreže"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Pretplate"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Druge mreže"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP postavke"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Napredne WiFi postavke nisu dostupne za ovog korisnika"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Sačuvaj"</string>
@@ -1618,7 +1617,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Izbriši APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Novi APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Sačuvaj"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Odbaci"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Otkaži"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Polje Ime ne može ostati prazno."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Naziv pristupne tačke ne može biti prazan."</string>
@@ -2487,8 +2486,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Koristili ste tablet više nego obično"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Koristili ste uređaj više nego obično"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Baterija bi vam se mogla isprazniti brže nego obično"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Baterija je privremeno ograničena"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Pomaže prilikom očuvanja stanja baterije. Dodirnite da saznate više."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Baterija je privremeno ograničena. Dodirnite da saznate više."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Vaš telefon je korišten više nego obično. Baterija se može istrošiti brže nego što je predviđeno.\n\nAplikacije koje najviše troše bateriju:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Vaš tablet je korišten više nego obično. Baterija se može istrošiti brže nego što je predviđeno.\n\nAplikacije koje najviše troše bateriju:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Vaš uređaj je korišten više nego obično. Baterija se može istrošiti brže nego što je predviđeno.\n\nAplikacije koje najviše troše bateriju:"</string>
@@ -2761,6 +2761,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Nemoj instalirati"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Ipak instaliraj"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Potvrda nije instalirana"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Dozvoliti aplikaciji <xliff:g id="APP_NAME">%s</xliff:g> da instalira certifikate na ovaj uređaj?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Ovi certifikati će vas identificirati aplikacijama i URL-ovima ispod"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Nemoj dozvoliti"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Dozvoli"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Prikaži više"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Apl. za upravljanje certifik."</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nema"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certifikati koje je instalirala ova aplikacija vas identificiraju aplikacijama i URL-ovima navedenim u nastavku"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Ukloni"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signal za hitne pozive"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Postavi ponašanje prilikom upućivanja poziva za hitne situacije"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Izrada sigurnosnih kopija"</string>
@@ -4722,6 +4731,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksimalan broj vidljivih kompleta podataka"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Vraćanje na zadane vrijednosti"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Opcije za programere za automatsko popunjavanje su vraćene na zadane postavke"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Prisilno omogući potpuno GNSS mjerenje"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Praćenje svih konstelacija i frekvencija GNSS-a bez ciklusa rada"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema uređaja"</string>
<string name="default_theme" msgid="4815428567082263639">"Zadano"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Naziv mreže"</string>
@@ -4738,8 +4755,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pauzirajte obavještenja da ostanete fokusirani"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funkcija nije dostupna"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Ova funkcija je isključena jer usporava vaš telefon"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Prisilno omogući potpuno GNSS mjerenje"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Praćenje svih konstelacija i frekvencija GNSS-a bez ciklusa rada"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Uvijek prikaži dijaloški okvir za pad aplikacije"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Prikaz dijaloškog okvira pri svakom padu aplikacije"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Odaberite aplikaciju u kojoj je omogućen ANGLE"</string>
@@ -4807,7 +4822,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Uključeno (isključen zvuk)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Isključeno"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalji o mreži"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Naziv uređaja mogu vidjeti aplikacije na telefonu. Mogu ga vidjeti i druge osobe kada se povežete na Bluetooth uređaje ili postavite WiFi pristupnu tačku."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Aplikacije na vašem telefonu će moći vidjeti naziv vašeg uređaja. Također će ga moći vidjeti druge osobe prilikom povezivanja s Bluetooth uređajima i WiFi mrežom ili prilikom postavljanja WiFi pristupne tačke."</string>
<string name="devices_title" msgid="649715719278562515">"Uređaji"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Sve postavke"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Prijedlozi"</string>
@@ -4968,6 +4983,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nije moguće aktivirati SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Izvadite SIM karticu i ponovo je umetnite. Ako se problem ne riješi, ponovo pokrenite uređaj."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Pokušajte ponovo uključiti SIM. Ako se problem ne riješi, ponovo pokrenite uređaj."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktiviranje mreže"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operater <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktivan"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Dodirnite da ažurirate postavke SIM-a"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM kartica"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Potpuno izbrisati ovaj preuzeti SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Ako potpuno izbrišete ovaj SIM, s ovog uređaja će se ukloniti usluga operatera <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>.\n\nUsluga za operatera <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> neće se otkazati."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Potpuno izbriši"</string>
@@ -5122,9 +5141,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Pozivanje putem WiFi-ja vam omogućava da uspostavite i primate pozive putem mreža koje ne pripadaju mobilnom operateru, kao što su neke WiFi mreže."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Pozivi"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferirano"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferiraju se pozivi"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferiraju se SMS-ovi"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"nedostupno"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Nema SIM-a"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Postavke"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Povežite se s javnim mrežama"</string>
<string name="keywords_internet" msgid="7674082764898690310">"mrežna veza, internet, bežični, podaci, wifi, wi-fi, wi fi, celularni, mobilni, mobilni operater, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Pogledajte mreže sigurne za avion"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Isključite način rada u avionu"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nedostupno jer je uključen način rada za spavanje"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Poništavanje važnosti obavještenja je završeno."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikacije"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index b480409..831b79e 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Adreces IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Xarxes desades"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subscripcions"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Altres xarxes"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Configuració IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"La configuració avançada de la Wi‑Fi no està disponible per a aquest usuari"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Desa"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Suprimeix l\'APN"</string>
<string name="menu_new" msgid="6571230342655509006">"APN nou"</string>
<string name="menu_save" msgid="6611465355127483100">"Desa"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Descarta"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancel·la"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"El camp Nom no pot ser buit."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"L\'APN no pot ser buit."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"La tauleta s\'ha utilitzat més del que és habitual"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"El dispositiu s\'ha utilitzat més del que és habitual"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Pot ser que la bateria s\'esgoti massa ràpid"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Bateria limitada temporalment"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Ajuda a mantenir el bon estat de la bateria. Toca per obtenir més informació."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Bateria limitada temporalment. Toca per obtenir més informació."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"El telèfon s\'ha fet servir més del que és habitual i és possible que la bateria s\'esgoti abans del previst.\n\nAplicacions que han consumit més bateria:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"La tauleta s\'ha fet servir més del que és habitual i és possible que la bateria s\'esgoti abans del previst.\n\nAplicacions que han consumit més bateria:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"El dispositiu s\'ha fet servir més del que és habitual i és possible que la bateria s\'esgoti abans del previst.\n\nAplicacions que han consumit més bateria:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"No instal·lis"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instal·la igualment"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"No s\'ha instal·lat el certificat"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Vols permetre a <xliff:g id="APP_NAME">%s</xliff:g> que instal·li certificats en aquest dispositiu?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Aquests certificats t\'identificaran a les aplicacions i als URL que hi ha a continuació"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"No permetis"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Permet"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Mostra\'n més"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App de gestió de certificats"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Cap"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Els certificats instal·lats per aquesta aplicació t\'identifiquen a les aplicacions i als URL que hi ha a continuació"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Suprimeix"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Senyal de trucada d\'emergència"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Defineix el comportament quan es fa una trucada d\'emergència"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Còpia de seguretat"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Màxim de conjunts de dades visibles"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Restableix els valors predeterminats"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"S\'han restablert les opcions d\'emplenament automàtic per a desenvolupadors"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Força mesuraments de GNSS complets"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Fes un seguiment de totes les freqüències i constel·lacions de GNSS sense cicle de treball"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema del dispositiu"</string>
<string name="default_theme" msgid="4815428567082263639">"Predeterminat"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nom de la xarxa"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Posa en pausa les notificacions per centrar l\'atenció"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funció no disponible"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Aquesta funció s\'ha desactivat perquè alenteix el telèfon"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Força mesuraments de GNSS complets"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Fes un seguiment de totes les freqüències i constel·lacions de GNSS sense cicle de treball"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Mostra sempre el quadre de diàleg de bloqueig"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Mostra el quadre de diàleg cada vegada que una aplicació es bloquegi"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Selecciona l\'aplicació compatible amb ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Activat (silenci)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Desactivat"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalls de la xarxa"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"El nom del dispositiu és visible per a les aplicacions del telèfon. També el poden veure altres persones si el connectes a un dispositiu Bluetooth o si configures un punt d\'accés Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"El nom del dispositiu és visible per a les aplicacions del telèfon. També el poden veure altres persones si el connectes a un dispositiu Bluetooth o a una xarxa Wi‑Fi, o si configures un punt d\'accés Wi‑Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Dispositius"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Tota la configuració"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggeriments"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"No s\'ha pogut activar la SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Treu la SIM i torna-la a inserir. Si el problema continua, reinicia el dispositiu."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prova de tornar a activar la SIM. Si el problema continua, reinicia el dispositiu."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activació de la xarxa"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> està actiu"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Toca per actualitzar la configuració de la targeta SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Targeta SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Vols esborrar la SIM que has baixat?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Si esborres aquesta targeta SIM, el servei <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> se suprimirà del dispositiu.\n\nEl servei <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> no es cancel·larà."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Esborra"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"La funció Trucades per Wi‑Fi et permet fer i rebre trucades per xarxes sense operador, com ara algunes xarxes Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Trucades"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferit"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"es prefereixen les trucades"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"es prefereixen els SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"no disponible"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"No hi ha cap SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferències"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Connecta\'t a xarxes públiques"</string>
<string name="keywords_internet" msgid="7674082764898690310">"connexió a la xarxa, internet, sense fil, dades, wifi, wi‑fi, wi fi, mòbils, mòbil, operador de telefonia mòbil, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Mostra xarxes segures per al mode d\'avió"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Desactiva el mode d\'avió"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"No està disponible perquè el mode d\'hora de dormir està activat"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"S\'ha completat el restabliment de la importància de les notificacions."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplicacions"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 32f11b7..2d2f1e7 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -1062,8 +1062,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Adresy IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Uložené sítě"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Odběry"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Ostatní sítě"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Nastavení IP adresy"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Rozšířená nastavení sítě Wi-Fi nejsou pro tohoto uživatele dostupná."</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Uložit"</string>
@@ -1639,7 +1638,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Smazat přístupový bod"</string>
<string name="menu_new" msgid="6571230342655509006">"Nový přístupový bod"</string>
<string name="menu_save" msgid="6611465355127483100">"Uložit"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Zahodit"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Zrušit"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Pole Jméno nesmí být prázdné."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Název přístupového bodu nesmí být prázdný."</string>
@@ -2518,8 +2517,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet byl využíván víc než obvykle"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Zařízení bylo využíváno víc než obvykle"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Baterie se možná vybije dříve než obvykle"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Baterie dočasně omezena"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Pomáhá udržet stav baterie. Klepnutím zobrazíte další informace."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Baterie je dočasně omezena. Klepnutím zobrazíte další informace."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefon byl využíván víc než obvykle. Baterie se možná vybije dříve, než bylo očekáváno.\n\nAplikace, které nejvíce spotřebovávají baterii:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tablet byl využíván víc než obvykle. Baterie se možná vybije dříve, než bylo očekáváno.\n\nAplikace, které nejvíce spotřebovávají baterii:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Zařízení bylo využíváno víc než obvykle. Baterie se možná vybije dříve, než bylo očekáváno.\n\nAplikace, které nejvíce spotřebovávají baterii:"</string>
@@ -2799,6 +2799,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Neinstalovat"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Přesto nainstalovat"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certifikát nebyl nainstalován"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Povolit aplikaci <xliff:g id="APP_NAME">%s</xliff:g> instalovat certifikáty do tohoto zařízení?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Tyto certifikáty vás identifikují pro níže uvedené aplikace a adresy URL"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Nepovolovat"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Povolit"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Zobrazit více"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Aplikace na správu certifikátů"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"–"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certifikáty nainstalované touto aplikací vás identifikují pro níže uvedené aplikace a adresy URL"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Odstranit"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signál nouzového vytáčení"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Nastavit chování při tísňovém volání"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Zálohování"</string>
@@ -4802,6 +4811,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max. viditelných datových sad"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Resetovat na výchozí hodnoty"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Možnosti automatického vyplňování pro vývojáře byly resetovány"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Vynutit úplné měření GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Sledovat všechny konstelace a frekvence GNSS bez cyklického vypínání a zapínání"</string>
<string name="device_theme" msgid="5027604586494772471">"Motiv zařízení"</string>
<string name="default_theme" msgid="4815428567082263639">"Výchozí"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Název sítě"</string>
@@ -4818,8 +4835,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pokud nechcete být rušeni, oznámení pozastavte"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funkce není k dispozici"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Tato funkce byla vypnuta, protože zpomaluje telefon"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Vynutit úplné měření GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Sledovat všechny konstelace a frekvence GNSS bez cyklického vypínání a zapínání"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Vždy zobrazit dialog o pádu"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Zobrazit dialog při každém pádu aplikace"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Vyberte aplikaci podporující ANGLE"</string>
@@ -4887,7 +4902,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Zapnuto (ztlumeno)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Vypnuto"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Podrobnosti sítě"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Název vašeho zařízení je viditelný pro aplikace v telefonu. Mohou ho vidět také ostatní uživatelé, když se připojíte k zařízení Bluetooth nebo hotspotu Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Název vašeho zařízení je viditelný pro aplikace v telefonu. Mohou ho vidět také ostatní uživatelé, když se připojíte k zařízení Bluetooth nebo síti Wi-Fi, případně když vytvoříte hotspot Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Zařízení"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Všechna nastavení"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Návrhy"</string>
@@ -5049,6 +5064,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM kartu nelze aktivovat"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Vyjměte SIM kartu a znovu ji vložte. Pokud problém přetrvává, restartujte zařízení."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Zkuste SIM kartu znovu zapnout. Pokud problém přetrvává, restartujte zařízení."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivace sítě"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Číslo <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktivní"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Klepnutím aktualizujete nastavení SIM karty"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM karta"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Vymazat staženou SIM kartu?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Když vymažete tuto SIM kartu, ze zařízení bude odebrán operátor <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>.\n\nSlužba operátora <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> zrušena nebude."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Vymazat"</string>
@@ -5205,9 +5224,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Volání přes Wi-Fi umožňuje uskutečňovat a přijímat hovory ze sítí nespravované operátory, jako jsou některé sítě Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Volání"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferované"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferované hovory"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferované SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"není k dispozici"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Žádná SIM karta"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Předvolby"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Připojovat k veřejným sítím"</string>
<string name="keywords_internet" msgid="7674082764898690310">"připojení k síti, internet, bezdrátové, data, wifi, wi-fi, wi fi, mobilní síť, mobilní operátor, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Zobrazit sítě bezpečné pro letadlo"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Vypnout režim Letadlo"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nedostupné, protože je zapnutý režim večerky"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Reset důležitosti oznámení byl dokončen."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikace"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index a5ad463..bfd3db3 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-adresser"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Gemte netværk"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonnementer"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Andre netværk"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-indstillinger"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Avancerede Wi-Fi-indstillinger er ikke tilgængelige for denne bruger"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Gem"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Slet adgangspunkt"</string>
<string name="menu_new" msgid="6571230342655509006">"Nyt adgangspunkt"</string>
<string name="menu_save" msgid="6611465355127483100">"Gem"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Kassér"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Luk"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Feltet Navn skal udfyldes."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Du skal angive et adgangspunkt."</string>
@@ -1837,7 +1836,7 @@
<string name="lock_settings_title" msgid="665707559508132349">"Enhedssikkerhed"</string>
<string name="lockpattern_change_lock_pattern_label" msgid="5853706275279878879">"Skift oplåsningsmønster"</string>
<string name="lockpattern_change_lock_pin_label" msgid="7327409886587802756">"Skift pinkode til oplåsning"</string>
- <string name="lockpattern_recording_intro_header" msgid="8325736706877916560">"Tegn et oplåsningsmønster"</string>
+ <string name="lockpattern_recording_intro_header" msgid="8325736706877916560">"Tegn et mønster til at låse op"</string>
<string name="lockpattern_recording_intro_footer" msgid="2656868858594487197">"Tryk på Menu for at få hjælp."</string>
<string name="lockpattern_recording_inprogress" msgid="7268008332694009191">"Slip, når du er færdig"</string>
<string name="lockpattern_recording_incorrect_too_short" msgid="3351522018450593723">"Forbind mindst <xliff:g id="NUMBER">%d</xliff:g> punkter. Prøv igen."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Din tablet er blevet brugt mere end normalt"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Enheden er blevet brugt mere end normalt"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Batteriet aflades muligvis hurtigere end normalt"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batteriet er midlertidigt begrænset"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Hjælper med at holde batteriet sundt. Tryk for at få flere oplysninger."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batteriet er midlertidigt begrænset. Tryk for at få flere oplysninger."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Din telefon er blevet brugt mere end normalt. Dit batteri aflades muligvis hurtigere end forventet.\n\nHer kan du se apps sorteret efter batteriforbrug:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Din tablet er blevet brugt mere end normalt. Dit batteri aflades muligvis hurtigere end forventet.\n\nHer kan du se apps sorteret efter batteriforbrug:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Din enhed er blevet brugt mere end normalt. Dit batteri aflades muligvis hurtigere end forventet.\n\nHer kan du se apps sorteret efter batteriforbrug:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Installer ikke"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Installer alligevel"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certifikatet er ikke installeret"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Vil du give <xliff:g id="APP_NAME">%s</xliff:g> tilladelse til at installere certifikater på denne enhed?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Disse certifikater lader nedenstående apps og webadresser identificere dig"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Tillad ikke"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Tillad"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Se mere"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App til certifikatadministration"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Ingen"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certifikater, som installeres af denne app, lader nedenstående apps og webadresser identificere dig"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Fjern"</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>
@@ -3402,7 +3411,7 @@
<string name="zen_mode_block_effect_light" msgid="1997222991427784993">"Undlad at bruge blinkende lys"</string>
<string name="zen_mode_block_effect_peek" msgid="2525844009475266022">"Undlad at vise notifikationer på skærmen"</string>
<string name="zen_mode_block_effect_status" msgid="5765965061064691918">"Skjul statusbjælkeikoner øverst på skærmen"</string>
- <string name="zen_mode_block_effect_badge" msgid="332151258515152429">"Skjul notifikationscirkler på appikoner"</string>
+ <string name="zen_mode_block_effect_badge" msgid="332151258515152429">"Skjul notifikationsprikker på appikoner"</string>
<string name="zen_mode_block_effect_ambient" msgid="1247740599476031543">"Væk ikke ved notifikationer"</string>
<string name="zen_mode_block_effect_list" msgid="7549367848660137118">"Skjul i panelet, der trækkes ned"</string>
<string name="zen_mode_block_effect_summary_none" msgid="6688519142395714659">"Aldrig"</string>
@@ -3496,7 +3505,7 @@
<string name="snooze_options_title" msgid="2109795569568344617">"Tillad udsættelse af notifikationer"</string>
<string name="hide_silent_icons_title" msgid="5951392023601167577">"Skjul ikoner fra diskrete notifikationer"</string>
<string name="hide_silent_icons_summary" msgid="623763437631637232">"Ikoner fra diskrete notifikationer vises ikke på statusbjælken"</string>
- <string name="notification_badging_title" msgid="5469616894819568917">"Notifikationscirkel på appikon"</string>
+ <string name="notification_badging_title" msgid="5469616894819568917">"Notifikationsprik på appikon"</string>
<string name="notification_people_strip_title" msgid="1185857822541001139">"Vis linje med seneste samtaler"</string>
<string name="notification_bubbles_title" msgid="5681506665322329301">"Bobler"</string>
<string name="bubbles_feature_education" msgid="4088275802688887634">"Nogle notifikationer og andet indhold kan blive vist som bobler på skærmen. Tryk på en boble for at åbne den. Træk den ned ad skærmen for at lukke den."</string>
@@ -3709,8 +3718,8 @@
<string name="app_notification_block_summary" msgid="1804611676339341551">"Vis aldrig disse notifikationer"</string>
<string name="notification_content_block_title" msgid="6689085826061361351">"Vis notifikationer"</string>
<string name="notification_content_block_summary" msgid="329171999992248925">"Vis aldrig notifikationer i underretningspanelet eller på eksterne enheder"</string>
- <string name="notification_badge_title" msgid="6854537463548411313">"Tillad notifikationscirkel"</string>
- <string name="notification_channel_badge_title" msgid="6505542437385640049">"Vis notifikationscirkel"</string>
+ <string name="notification_badge_title" msgid="6854537463548411313">"Tillad notifikationsprik"</string>
+ <string name="notification_channel_badge_title" msgid="6505542437385640049">"Vis notifikationsprik"</string>
<string name="app_notification_override_dnd_title" msgid="3769539356442226691">"Tilsidesæt Forstyr ikke"</string>
<string name="app_notification_override_dnd_summary" msgid="4894641191397562920">"Bliv ved med at få disse notifikationer, når Forstyr ikke er aktiveret"</string>
<string name="app_notification_visibility_override_title" msgid="7778628150022065920">"Låseskærm"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Højeste antal synlige datasæt"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Nulstil til standardværdierne"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Udviklerindstillingerne for autofyld blev nulstillet"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Gennemtving fuld GNSS-måling"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Registrer alle GNSS-konstellationer og -frekvenser uden opgavegennemløb"</string>
<string name="device_theme" msgid="5027604586494772471">"Enhedstema"</string>
<string name="default_theme" msgid="4815428567082263639">"Standard"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Netværksnavn"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Sæt notifikationer på pause, så du kan koncentrere dig"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funktionen er ikke tilgængelig"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Denne funktion er blevet deaktiveret, fordi den gør din telefon langsom"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Gennemtving fuld GNSS-måling"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Registrer alle GNSS-konstellationer og -frekvenser uden opgavegennemløb"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Vis altid dialogboks med nedbrud"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Vis dialogboks, hver gang en app går ned"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Vælg ANGLE-aktiveret app"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Til (lydløs)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Fra"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Netværksoplysninger"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Navnet på din enhed er synligt for apps på din telefon. Det kan muligvis også ses af andre, når du opretter forbindelse til Bluetooth-enheder eller konfigurerer et Wi-Fi-hotspot."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Din enheds navn er synligt for apps på din telefon. Det kan muligvis også ses af andre, når du opretter forbindelse til Bluetooth-enheder eller et Wi-Fi-netværk, eller når du konfigurerer et Wi-Fi-hotspot."</string>
<string name="devices_title" msgid="649715719278562515">"Enheder"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Alle indstillinger"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Forslag"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-kortet kunne ikke aktiveres"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Tag SIM-kortet ud, og sæt det i igen. Genstart enheden, hvis problemet fortsætter."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prøv at aktivere SIM-kortet igen. Genstart enheden, hvis problemet fortsætter."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Netværksaktivering"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> er aktiv"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tryk for at opdatere indstillingerne for SIM-kort"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-kort"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Vil du rydde dette downloadede SIM-kort?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Hvis du rydder dette SIM-kort, fjernes tjenesten fra <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> på denne enhed.\n\nTjenesten fra <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> opsiges ikke."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Ryd"</string>
@@ -5039,9 +5058,21 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Med Wi-Fi-opkald kan du foretage og modtage opkald via netværk, der ikke er mobilnetværk, f.eks. Wi‑Fi-netværk."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Opkald"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"Sms"</string>
+ <!-- no translation found for calls_sms_preferred (6016477652522583496) -->
+ <skip />
+ <!-- no translation found for calls_sms_calls_preferred (252913858812799809) -->
+ <skip />
+ <!-- no translation found for calls_sms_sms_preferred (5826706870873784062) -->
+ <skip />
+ <!-- no translation found for calls_sms_unavailable (4055729705246556529) -->
+ <skip />
+ <!-- no translation found for calls_sms_no_sim (2336377399761819718) -->
+ <skip />
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Præferencer"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Opret forbindelse til offentlige netværk"</string>
<string name="keywords_internet" msgid="7674082764898690310">"netværksforbindelse, internet, trådløs, data, wifi, wi-fi, mobilnetværk, mobil, mobilselskab, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Se netværk til brug i fly"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Deaktiver flytilstand"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Ikke tilgængelig, da sengetidstilstand er aktiveret"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Vigtigheden af notifikationer blev nulstillet."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index d6ab561..0ecd435 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -1023,8 +1023,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-Adressen"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Gespeicherte WLANs"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abos"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Andere Netzwerke"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-Einstellungen"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Erweiterte WLAN-Einstellungen sind für diesen Nutzer nicht verfügbar"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Speichern"</string>
@@ -1598,7 +1597,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN löschen"</string>
<string name="menu_new" msgid="6571230342655509006">"Neuer APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Speichern"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Verwerfen"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Abbrechen"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Das Namensfeld darf nicht leer sein."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN darf nicht leer sein."</string>
@@ -2457,8 +2456,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet mehr als üblich genutzt"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Gerät mehr als üblich genutzt"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Der Akku könnte früher als üblich leer sein"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Akku vorübergehend eingeschränkt"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Hierdurch wird der Akku geschont. Für weitere Informationen tippen."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Akku vorübergehend eingeschränkt. Für weitere Informationen tippen."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Dein Smartphone wurde intensiver als üblich genutzt. Der Akku könnte deshalb früher als erwartet leer sein.\n\nApps mit höchstem Akkuverbrauch:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Dein Tablet wurde intensiver als üblich genutzt. Der Akku könnte deshalb früher als erwartet leer sein.\n\nApps mit höchstem Akkuverbrauch:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Dein Gerät wurde intensiver als üblich genutzt. Der Akku könnte deshalb früher als erwartet leer sein.\n\nApps mit höchstem Akkuverbrauch:"</string>
@@ -2724,6 +2724,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Nicht installieren"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Trotzdem installieren"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Zertifikat nicht installiert"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Darf <xliff:g id="APP_NAME">%s</xliff:g> Zertifikate auf diesem Gerät installieren?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Mit diesen Zertifikaten wirst du in den unten genannten Apps und bei den unten genannten URLs identifiziert"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Nicht zulassen"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Zulassen"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Mehr anzeigen"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Zertifikatsverwaltungs-App"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Keine"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Mit den von dieser App installierten Zertifikaten wirst du in den unten genannten Apps und bei den unten genannten URLs identifiziert"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Entfernen"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Notrufsignal"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Verhalten bei einem Notruf festlegen"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Sicherung"</string>
@@ -4643,6 +4652,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maximale Zahl sichtbarer Datensätze"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Auf Standardwerte zurücksetzen"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Die Optionen für automatisches Ausfüllen für Entwickler wurden zurückgesetzt"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Vollständige GNSS-Messung erzwingen"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Alle GNSS-Konstellationen und -Frequenzen ohne GNSS-Zyklus erfassen"</string>
<string name="device_theme" msgid="5027604586494772471">"Gerätedesign"</string>
<string name="default_theme" msgid="4815428567082263639">"Standard"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Netzwerkname"</string>
@@ -4659,8 +4676,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Zur besseren Konzentration Benachrichtigungen pausieren"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funktion nicht verfügbar"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Diese Funktion wurde deaktiviert, weil sie dein Smartphone langsamer macht"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Vollständige GNSS-Messung erzwingen"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Alle GNSS-Konstellationen und -Frequenzen ohne GNSS-Zyklus erfassen"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Bei Absturz immer Absturz-Dialogfeld anzeigen"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Bei App-Abstürzen immer Dialogfeld anzeigen"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE-App auswählen"</string>
@@ -4728,7 +4743,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"An (stumm)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Aus"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Netzwerkdetails"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Dein Gerätename ist für Apps auf deinem Smartphone sichtbar. Wenn du dich mit Bluetooth-Geräten verbindest oder einen WLAN-Hotspot einrichtest, kann er möglicherweise auch von anderen Personen gesehen werden."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Dein Gerätename ist für Apps auf deinem Smartphone sichtbar. Wenn du dein Gerät mit Bluetooth-Geräten oder einem WLAN verbindest oder einen WLAN-Hotspot einrichtest, kann der Name möglicherweise auch von anderen Personen gesehen werden."</string>
<string name="devices_title" msgid="649715719278562515">"Geräte"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Alle Einstellungen"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Vorschläge"</string>
@@ -4888,6 +4903,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM kann nicht aktiviert werden"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Nimm die SIM heraus und lege sie dann wieder ein. Sollte das Problem weiterhin bestehen, starte das Gerät neu."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Versuche, die SIM noch einmal zu aktivieren. Sollte das Problem weiterhin bestehen, starte das Gerät neu."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Netzwerkaktivierung"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ist aktiviert"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tippe, um die SIM-Einstellungen zu aktualisieren"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-Karte"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Diese heruntergeladene SIM löschen?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Wenn du diese SIM löschst, wird der <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-Dienst von diesem Gerät entfernt.\n\nDer Mobilfunkvertrag bei <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> wird dadurch nicht gekündigt."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Löschen"</string>
@@ -5040,9 +5059,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Mit WLAN-Telefonie kannst du Anrufe über Netzwerke ohne Mobilfunkanbieter starten und empfangen, wie etwa über einige WLAN-Netzwerke."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Anrufe"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"bevorzugt"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"Anrufe bevorzugt"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS bevorzugt"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"nicht verfügbar"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Keine SIM-Karte"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Einstellungen"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Mit öffentlichen Netzwerken verbinden"</string>
<string name="keywords_internet" msgid="7674082764898690310">"netzwerkverbindung, internet, kabellos, drahtlos, daten, wlan, w-lan, mobilfunk, mobil, mobilfunkanbieter, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Flugsichere Netzwerke anzeigen"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Flugmodus deaktivieren"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nicht verfügbar, weil der Modus „Schlafenszeit“ aktiviert ist"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Die Wichtigkeit von Benachrichtigungen wurde zurückgesetzt."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 0be82f9..c05f5f0 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Διευθύνσεις IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Αποθηκευμένα δίκτυα"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Συνδρομές"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Άλλα δίκτυα"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Ρυθμίσεις IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Οι σύνθετες ρυθμίσεις Wi‑Fi δεν είναι διαθέσιμες για αυτόν το χρήστη"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Αποθ/ση"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Διαγραφή APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Νέο APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Αποθ/ση"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Απόρριψη"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Ακύρωση"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Το πεδίο Όνομα δεν μπορεί να είναι κενό."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Το APN δεν μπορεί να είναι κενό."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Το tablet χρησιμοποιείται περισσότερο από το συνηθισμένο"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Η συσκευή χρησιμοποιείται περισσότερο από το συνηθισμένο"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Η μπαταρία μπορεί να εξαντληθεί νωρίτερα από το συνηθισμένο"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Η μπαταρία περιορίστηκε προσωρινά"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Συμβάλλει στη διατήρηση της καλής κατάστασης της μπαταρίας. Πατήστε για να μάθετε περισσότερα."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Η μπαταρία περιορίστηκε προσωρινά. Πατήστε για να μάθετε περισσότερα."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Το τηλέφωνό σας έχει χρησιμοποιηθεί περισσότερο από το συνηθισμένο. Η μπαταρία μπορεί να εξαντληθεί πιο σύντομα από το αναμενόμενο.\n\nΚορυφαίες εφαρμογές βάσει χρήσης μπαταρίας:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Το tablet έχει χρησιμοποιηθεί περισσότερο από το συνηθισμένο. Η μπαταρία μπορεί να εξαντληθεί πιο σύντομα από το αναμενόμενο.\n\nΚορυφαίες εφαρμογές βάσει χρήσης μπαταρίας:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Η συσκευή σας έχει χρησιμοποιηθεί περισσότερο από το συνηθισμένο. Η μπαταρία μπορεί να εξαντληθεί πιο σύντομα από το αναμενόμενο.\n\nΚορυφαίες εφαρμογές βάσει χρήσης μπαταρίας:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Να μην γίνει εγκατάσταση"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Εγκατάσταση ούτως ή άλλως"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Δεν εγκαταστάθηκε πιστοποιητικό"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Επιτρέπετε στην εφαρμογή <xliff:g id="APP_NAME">%s</xliff:g> να εγκαταστήσει πιστοποιητικά σε αυτήν τη συσκευή;"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Αυτά τα πιστοποιητικά θα σας ταυτοποιούν στις παρακάτω εφαρμογές και URL"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Να μην επιτρέπεται"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Να επιτρέπεται"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Εμφάνιση περισσότερων"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Εφαρμογή διαχ. πιστοποιητικών"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Καμία"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Τα πιστοποιητικά που έχουν εγκατασταθεί από αυτήν την εφαρμογή σας προσδιορίζουν στις παρακάτω εφαρμογές και URL."</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Κατάργηση"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Σήμα κλήσης έκτακτης ανάγκης"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Ορισμός συμπεριφοράς κατά την πραγματοποίηση κλήσης επείγουσας ανάγκης"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Δημιουργία αντιγράφων ασφαλείας"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Μέγιστα ορατά σύνολα δεδομένων"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Επαναφορά στις προεπιλεγμένες τιμές"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Έγινε επαναφορά των επιλογών προγραμματιστή αυτόματης συμπλήρωσης"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Αναγκαστικές πλήρεις μετρήσεις GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Παρακολούθηση όλων των πανοραμικών συνθέσεων και των συχνοτήτων GNSS χωρίς κύκλο λειτουργιών"</string>
<string name="device_theme" msgid="5027604586494772471">"Θέμα συσκευής"</string>
<string name="default_theme" msgid="4815428567082263639">"Προεπιλογή"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Όνομα δικτύου"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Θέστε σε παύση τις ειδοποιήσεις για να παραμένετε συγκεντρωμένοι"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Η λειτουργία δεν είναι διαθέσιμη"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Αυτή η λειτουργία απενεργοποιήθηκε επειδή καθυστερεί το τηλέφωνό σας"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Αναγκαστικές πλήρεις μετρήσεις GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Παρακολούθηση όλων των πανοραμικών συνθέσεων και των συχνοτήτων GNSS χωρίς κύκλο λειτουργιών"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Να εμφανίζεται πάντα το παράθυρο διαλόγου σφάλματος"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Να εμφανίζεται το παράθυρο διαλόγου κάθε φορά που παρουσιάζεται σφάλμα σε κάποια εφαρμογή"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Επιλογή εφαρμογής με δυνατότητα χρήσης ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Ενεργή (σίγαση)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Ανενεργή"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Λεπτομέρειες δικτύου"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Το όνομα της συσκευής σας είναι ορατό σε εφαρμογές στο τηλέφωνό σας. Ενδέχεται επίσης να είναι ορατό και σε άλλα άτομα, όταν συνδέεστε σε συσκευές Bluetooth ή ρυθμίζετε ένα σημείο πρόσβασης Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Το όνομα της συσκευής σας είναι ορατό σε εφαρμογές στο τηλέφωνό σας. Ενδέχεται επίσης να είναι ορατό και σε άλλα άτομα, όταν συνδέεστε σε συσκευές Bluetooth, συνδέεστε σε ένα δίκτυο Wi-Fi ή ρυθμίζετε ένα σημείο πρόσβασης Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Συσκευές"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Όλες οι ρυθμίσεις"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Προτάσεις"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Δεν είναι δυνατή η ενεργοποίηση της SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Αφαιρέστε τη SIM και τοποθετήστε τη ξανά. Εάν το πρόβλημα δεν επιλυθεί, επανεκκινήστε τη συσκευή σας."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Δοκιμάστε να ενεργοποιήσετε ξανά τη SIM. Εάν το πρόβλημα δεν επιλυθεί, επανεκκινήστε τη συσκευή σας."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ενεργοποίηση δικτύου"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Η εταιρεία κινητής τηλεφωνίας <xliff:g id="CARRIER_NAME">%1$s</xliff:g> είναι ενεργή"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Πατήστε για ενημέρωση των ρυθμίσεων SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Κάρτα SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Διαγραφή αυτής της SIM της οποίας έγινε λήψη;"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Η διαγραφή αυτής της SIM καταργεί την υπηρεσία <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> από αυτήν τη συσκευή.\n\nΗ υπηρεσία για <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> δεν θα ακυρωθεί."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Διαγραφή"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Με τη λειτουργία Κλήση Wi-Fi μπορείτε να πραγματοποιείτε και να λαμβάνετε κλήσεις μέσω δικτύων που δεν ανήκουν στην εταιρεία κινητής τηλεφωνίας, όπως ορισμένα δίκτυα Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Κλήσεις"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"προτιμώνται"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"προτιμώνται οι κλήσεις"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"προτιμώνται τα SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"μη διαθέσιμη"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Δεν υπάρχει SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Προτιμήσεις"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Σύνδεση σε δημόσια δίκτυα"</string>
<string name="keywords_internet" msgid="7674082764898690310">"σύνδεση δικτύου, διαδίκτυο, ασύρματο, δεδομένα, wifi, wi-fi, wi fi, δίκτυο κινητής τηλεφωνίας, κινητό, εταιρεία κινητής τηλεφωνίας, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Προβολή ασφαλών δικτύων για πτήση"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Απενεργοποίηση λειτουργίας πτήσης"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Μη διαθέσιμη επιλογή επειδή η λειτουργία ώρας ύπνου είναι ενεργή."</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Η επαναφορά σημασίας ειδοποίησης ολοκληρώθηκε."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Εφαρμογές"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 1725e19..a866c5a 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 addresses"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saved networks"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subscriptions"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Other networks"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP settings"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi‑Fi advanced settings are not available for this user"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Save"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Delete APN"</string>
<string name="menu_new" msgid="6571230342655509006">"New APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Save"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Discard"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancel"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"The Name field can\'t be empty."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"The APN cannot be empty."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet used more than usual"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Device used more than usual"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Battery may run out earlier than usual"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Battery limited temporarily"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Helps preserve battery health. Tap to learn more."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Battery limited temporarily. Tap to learn more."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Your phone has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Your tablet has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Your device has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Don’t install"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Install anyway"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificate not installed"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Allow <xliff:g id="APP_NAME">%s</xliff:g> to install certificates on this device?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"These certificates will identify you to the apps and URLs below"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Don\'t allow"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Allow"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Show more"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Certificate management app"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"None"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certificates installed by this app identify you to the apps and URLs below"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Remove"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Emergency dialling signal"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Set behaviour when an emergency call is placed"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max visible datasets"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Reset to default values"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Auto-fill developer options have been reset"</string>
+ <string name="location_category" msgid="3496759112306219062">"Location"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Status bar location indicator"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Show for all locations, including network and connectivity"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="device_theme" msgid="5027604586494772471">"Device theme"</string>
<string name="default_theme" msgid="4815428567082263639">"Default"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Network name"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pause notifications to stay focused"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Feature not available"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"This feature has been turned off because it slows down your phone"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Always show crash dialogue"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Show dialogue every time an app crashes"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Select ANGLE enabled app"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"On (mute)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Off"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Network details"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="649715719278562515">"Devices"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"All Settings"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggestions"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Can’t activate SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Remove the SIM and insert it again. If the problem continues, restart your device."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Try turning on the SIM again. If the problem continues, restart your device."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Network activation"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is active"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tap to update SIM settings"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM card"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Erase this downloaded SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Erasing this SIM removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> won\'t be cancelled."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Erase"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi‑Fi calling allows you to make and receive calls over non‑operator networks, such as some Wi‑Fi networks."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Calls"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferred"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"calls preferred"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS preferred"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"unavailable"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"No SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferences"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Connect to public networks"</string>
<string name="keywords_internet" msgid="7674082764898690310">"network connection, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, mobile operator, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"View aeroplane-safe networks"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Turn off aeroplane mode"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Unavailable because bedtime mode is on"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Reset notification importance completed."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 92cea3a..191cc9e 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 addresses"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saved networks"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subscriptions"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Other networks"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP settings"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi‑Fi advanced settings are not available for this user"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Save"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Delete APN"</string>
<string name="menu_new" msgid="6571230342655509006">"New APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Save"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Discard"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancel"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"The Name field can\'t be empty."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"The APN cannot be empty."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet used more than usual"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Device used more than usual"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Battery may run out earlier than usual"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Battery limited temporarily"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Helps preserve battery health. Tap to learn more."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Battery limited temporarily. Tap to learn more."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Your phone has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Your tablet has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Your device has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Don’t install"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Install anyway"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificate not installed"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Allow <xliff:g id="APP_NAME">%s</xliff:g> to install certificates on this device?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"These certificates will identify you to the apps and URLs below"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Don\'t allow"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Allow"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Show more"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Certificate management app"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"None"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certificates installed by this app identify you to the apps and URLs below"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Remove"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Emergency dialling signal"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Set behaviour when an emergency call is placed"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max visible datasets"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Reset to default values"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Auto-fill developer options have been reset"</string>
+ <string name="location_category" msgid="3496759112306219062">"Location"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Status bar location indicator"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Show for all locations, including network and connectivity"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="device_theme" msgid="5027604586494772471">"Device theme"</string>
<string name="default_theme" msgid="4815428567082263639">"Default"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Network name"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pause notifications to stay focused"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Feature not available"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"This feature has been turned off because it slows down your phone"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Always show crash dialogue"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Show dialogue every time an app crashes"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Select ANGLE enabled app"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"On (mute)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Off"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Network details"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="649715719278562515">"Devices"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"All Settings"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggestions"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Can’t activate SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Remove the SIM and insert it again. If the problem continues, restart your device."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Try turning on the SIM again. If the problem continues, restart your device."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Network activation"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is active"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tap to update SIM settings"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM card"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Erase this downloaded SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Erasing this SIM removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> won\'t be cancelled."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Erase"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi‑Fi calling allows you to make and receive calls over non‑operator networks, such as some Wi‑Fi networks."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Calls"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferred"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"calls preferred"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS preferred"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"unavailable"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"No SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferences"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Connect to public networks"</string>
<string name="keywords_internet" msgid="7674082764898690310">"network connection, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, mobile operator, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"View aeroplane-safe networks"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Turn off aeroplane mode"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Unavailable because bedtime mode is on"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Reset notification importance completed."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 6d677b1..28956e1 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 addresses"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saved networks"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subscriptions"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Other networks"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP settings"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi‑Fi advanced settings are not available for this user"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Save"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Delete APN"</string>
<string name="menu_new" msgid="6571230342655509006">"New APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Save"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Discard"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancel"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"The Name field can\'t be empty."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"The APN cannot be empty."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet used more than usual"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Device used more than usual"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Battery may run out earlier than usual"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Battery limited temporarily"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Helps preserve battery health. Tap to learn more."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Battery limited temporarily. Tap to learn more."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Your phone has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Your tablet has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Your device has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Don’t install"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Install anyway"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificate not installed"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Allow <xliff:g id="APP_NAME">%s</xliff:g> to install certificates on this device?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"These certificates will identify you to the apps and URLs below"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Don\'t allow"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Allow"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Show more"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Certificate management app"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"None"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certificates installed by this app identify you to the apps and URLs below"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Remove"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Emergency dialling signal"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Set behaviour when an emergency call is placed"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max visible datasets"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Reset to default values"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Auto-fill developer options have been reset"</string>
+ <string name="location_category" msgid="3496759112306219062">"Location"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Status bar location indicator"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Show for all locations, including network and connectivity"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="device_theme" msgid="5027604586494772471">"Device theme"</string>
<string name="default_theme" msgid="4815428567082263639">"Default"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Network name"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pause notifications to stay focused"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Feature not available"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"This feature has been turned off because it slows down your phone"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Always show crash dialogue"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Show dialogue every time an app crashes"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Select ANGLE enabled app"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"On (mute)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Off"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Network details"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="649715719278562515">"Devices"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"All Settings"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggestions"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Can’t activate SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Remove the SIM and insert it again. If the problem continues, restart your device."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Try turning on the SIM again. If the problem continues, restart your device."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Network activation"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is active"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tap to update SIM settings"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM card"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Erase this downloaded SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Erasing this SIM removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> won\'t be cancelled."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Erase"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi‑Fi calling allows you to make and receive calls over non‑operator networks, such as some Wi‑Fi networks."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Calls"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferred"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"calls preferred"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS preferred"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"unavailable"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"No SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferences"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Connect to public networks"</string>
<string name="keywords_internet" msgid="7674082764898690310">"network connection, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, mobile operator, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"View aeroplane-safe networks"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Turn off aeroplane mode"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Unavailable because bedtime mode is on"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Reset notification importance completed."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 72e2580..b7216e0 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 addresses"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saved networks"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subscriptions"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Other networks"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP settings"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi‑Fi advanced settings are not available for this user"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Save"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Delete APN"</string>
<string name="menu_new" msgid="6571230342655509006">"New APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Save"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Discard"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancel"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"The Name field can\'t be empty."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"The APN cannot be empty."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet used more than usual"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Device used more than usual"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Battery may run out earlier than usual"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Battery limited temporarily"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Helps preserve battery health. Tap to learn more."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Battery limited temporarily. Tap to learn more."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Your phone has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Your tablet has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Your device has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Don’t install"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Install anyway"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificate not installed"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Allow <xliff:g id="APP_NAME">%s</xliff:g> to install certificates on this device?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"These certificates will identify you to the apps and URLs below"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Don\'t allow"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Allow"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Show more"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Certificate management app"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"None"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certificates installed by this app identify you to the apps and URLs below"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Remove"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Emergency dialling signal"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Set behaviour when an emergency call is placed"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max visible datasets"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Reset to default values"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Auto-fill developer options have been reset"</string>
+ <string name="location_category" msgid="3496759112306219062">"Location"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Status bar location indicator"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Show for all locations, including network and connectivity"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="device_theme" msgid="5027604586494772471">"Device theme"</string>
<string name="default_theme" msgid="4815428567082263639">"Default"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Network name"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pause notifications to stay focused"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Feature not available"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"This feature has been turned off because it slows down your phone"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Always show crash dialogue"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Show dialogue every time an app crashes"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Select ANGLE enabled app"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"On (mute)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Off"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Network details"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="649715719278562515">"Devices"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"All Settings"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggestions"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Can’t activate SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Remove the SIM and insert it again. If the problem continues, restart your device."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Try turning on the SIM again. If the problem continues, restart your device."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Network activation"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is active"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tap to update SIM settings"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM card"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Erase this downloaded SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Erasing this SIM removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> won\'t be cancelled."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Erase"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi‑Fi calling allows you to make and receive calls over non‑operator networks, such as some Wi‑Fi networks."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Calls"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferred"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"calls preferred"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS preferred"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"unavailable"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"No SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferences"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Connect to public networks"</string>
<string name="keywords_internet" msgid="7674082764898690310">"network connection, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, mobile operator, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"View aeroplane-safe networks"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Turn off aeroplane mode"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Unavailable because bedtime mode is on"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Reset notification importance completed."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index e8aca41..9542a35 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 addresses"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saved networks"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subscriptions"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Other networks"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP settings"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi‑Fi advanced settings are not available for this user"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Save"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Delete APN"</string>
<string name="menu_new" msgid="6571230342655509006">"New APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Save"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Discard"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancel"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"The Name field can’t be empty."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"The APN can’t be empty."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet used more than usual"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Device used more than usual"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Battery may run out earlier than usual"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Battery limited temporarily"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Helps preserve battery health. Tap to learn more."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Battery limited temporarily. Tap to learn more."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Your phone has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Your tablet has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Your device has been used more than usual. Your battery may run out sooner than expected.\n\nTop apps by battery usage:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Don’t install"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Install anyway"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificate not installed"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Allow <xliff:g id="APP_NAME">%s</xliff:g> to install certificates on this device?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"These certificates will identify you to the apps and URLs below"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Don’t allow"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Allow"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Show more"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Certificate management app"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"None"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certificates installed by this app identify you to the apps and URLs below"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Remove"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Emergency dialing signal"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Set behavior when an emergency call is placed"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max visible datasets"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Reset to default values"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Autofill developer options have been reset"</string>
+ <string name="location_category" msgid="3496759112306219062">"Location"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Status bar location indicator"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Show for all locations, including network and connectivity"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="device_theme" msgid="5027604586494772471">"Device theme"</string>
<string name="default_theme" msgid="4815428567082263639">"Default"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Network name"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pause notifications to stay focused"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Feature not available"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"This feature has been turned off because it slows down your phone"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Force full GNSS measurements"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Always show crash dialog"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Show dialog every time an app crashes"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Select ANGLE enabled app"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"On (mute)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Off"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Network details"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices or set up a Wi-Fi hotspot."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Your device name is visible to apps on your phone. It may also be seen by other people when you connect to Bluetooth devices, connect to a Wi-Fi network or set up a Wi-Fi hotspot."</string>
<string name="devices_title" msgid="649715719278562515">"Devices"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"All Settings"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggestions"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Can’t activate SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Remove the SIM and insert it again. If the problem continues, restart your device."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Try turning on the SIM again. If the problem continues, restart your device."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Network activation"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is active"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tap to update SIM settings"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM card"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Erase this downloaded SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Erasing this SIM removes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> service from this device.\n\nService for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> won\'t be canceled."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Erase"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi‑Fi calling allows you to make and receive calls over non‑carrier networks such as some Wi‑Fi networks."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Calls"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferred"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"calls preferred"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS preferred"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"unavailable"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"No SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferences"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Connect to public networks"</string>
<string name="keywords_internet" msgid="7674082764898690310">"network connection, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, cell carrier, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"View airplane-safe networks"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Turn off Airplane Mode"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Unavailable because bedtime mode is on"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Reset notification importance completed."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index bf0bc6d..a4c31d4 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Direcciones IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes guardadas"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Suscripciones"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Otras redes"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Configuración de IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"La configuración avanzada de Wi‑Fi no está disponible para este usuario"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Guardar"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Eliminar APN"</string>
<string name="menu_new" msgid="6571230342655509006">"APN nuevo"</string>
<string name="menu_save" msgid="6611465355127483100">"Guardar"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Descartar"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"El campo Nombre no puede estar vacío."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"El APN no puede estar vacío."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"La tablet se usó más de lo habitual"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"El dispositivo se usó más de lo habitual"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"La batería podría agotarse antes de lo habitual"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batería limitada temporalmente"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Ayuda a preservar el estado de la batería. Presiona para obtener más información."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batería limitada temporalmente. Presiona para obtener más información."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"El teléfono se usó más de lo habitual. Es posible que la batería se agote antes de lo esperado.\n\nEstas son las apps que más batería consumen:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"La tablet se usó más de lo habitual. Es posible que la batería se agote antes de lo esperado.\n\nEstas son las apps que más batería consumen:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"El dispositivo se usó más de lo habitual. Es posible que la batería se agote antes de lo esperado.\n\nEstas son las apps que más batería consumen:"</string>
@@ -2695,7 +2695,7 @@
<string name="tts_reset" msgid="9047681050813970031">"Restablecer"</string>
<string name="tts_play" msgid="2945513377250757221">"Reproducir"</string>
<string name="vpn_settings_title" msgid="9131315656202257272">"VPN"</string>
- <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Conectividad adaptable"</string>
+ <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Conectividad Adaptable"</string>
<string name="adaptive_connectivity_summary" msgid="3648731530666326885">"Extiende la duración de batería y mejora el rendimiento del dispositivo, ya que administra automáticamente las conexiones de red"</string>
<string name="credentials_title" msgid="7535942196886123656">"Almacenamiento de credenciales"</string>
<string name="credentials_install" msgid="3933218407598415827">"Instala un certificado"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"No instalar"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalar de todas formas"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"No se instaló el certificado"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"¿Deseas permitir que <xliff:g id="APP_NAME">%s</xliff:g> instale certificados en este dispositivo?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Estos certificados te identificarán en las siguientes apps y URL"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"No permitir"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Permitir"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Mostrar más"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App administrada de certificados"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Ninguna"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Los certificados que instaló esta app te identifican con las siguientes aplicaciones y URL"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Quitar"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Indicador de marcado de emergencia"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Establecer el comportamiento cuando se establece una llamada de emergencia"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Copia de seguridad"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Máximo de conjuntos de datos visibles"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Restablecer valores predeterminados"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Se restablecieron las opciones de autocompletar para desarrolladores"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forzar dimensiones GNSS completas"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Seguir todas las frecuencias y constelaciones de GNSS sin ciclo de funciones"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema del dispositivo"</string>
<string name="default_theme" msgid="4815428567082263639">"Predeterminado"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nombre de la red"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pausa las notificaciones para concentrarte"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Función no disponible"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Se desactivó esta función porque ralentiza el teléfono"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forzar dimensiones GNSS completas"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Seguir todas las frecuencias y constelaciones de GNSS sin ciclo de funciones"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Mostrar siempre el cuadro de diálogo de bloqueos"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Mostrar el cuadro de diálogo cada vez que falle una app"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Seleccionar app compatible con ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Activado (silencio)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Desactivado"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalles de la red"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"El nombre de tu dispositivo es visible para las apps del teléfono. Es posible que también lo vean otras personas cuando te conectes a dispositivos Bluetooth o configures un hotspot de Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"El nombre de tu dispositivo es visible para las apps del teléfono. Es posible que también lo vean otras personas cuando te conectes a dispositivos Bluetooth o a una red Wi-Fi, o cuando configures un hotspot de Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Dispositivos"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Toda la configuración"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Sugerencias"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"No se puede activar la SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Quita la SIM y vuelve a insertarla. Si el problema persiste, reinicia el dispositivo."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Vuelve a activar la SIM. Si el problema persiste, reinicia el dispositivo."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activación de red"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> está activo"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Presiona para actualizar la configuración de la tarjeta SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Tarjeta SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"¿Quieres borrar esta tarjeta SIM descargada?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Si borras esta tarjeta SIM, se quitará el servicio de <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> de este dispositivo.\n\nSin embargo, no se cancelará el servicio de <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Borrar"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Con las Llamadas por Wi‑Fi, puedes llamar y recibir llamadas a través de redes que no son de proveedores, como algunas redes Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Llamadas"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferencia"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferencia para llamadas"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferencia para SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"no disponible"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"No hay ninguna tarjeta SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferencias"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Conectarse a redes públicas"</string>
<string name="keywords_internet" msgid="7674082764898690310">"conexión de red, internet, inalámbrico, datos, wifi, wi-fi, wi fi, datos móviles, móvil, proveedor de telefonía, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Ver redes seguras para aviones"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Desactivar el Modo de avión"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"No disponible cuando el modo hora de dormir está activado"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Se restableció la prioridad de notificaciones."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index ec52cf6..056d755 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Direcciones IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes guardadas"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Suscripciones"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Otras redes"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Ajustes de IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Este usuario no puede utilizar los ajustes avanzados de Wi‑Fi"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Guardar"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Eliminar APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Nuevo APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Guardar"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Descartar"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"El campo Nombre no puede estar vacío."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"El campo APN no puede estar vacío."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"El tablet se ha usado más de lo normal"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"El dispositivo se ha usado más de lo normal"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Quizás se agote la batería antes de lo normal"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batería limitada temporalmente"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Ayuda a mantener la batería en buen estado. Toca para ver más información."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batería limitada temporalmente. Toca para ver más información."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Tu teléfono se ha usado más de lo normal y es posible te quedes sin batería antes de lo esperado.\n\nEstas son las aplicaciones que más batería consumen:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tu tablet se ha usado más de lo normal y es posible te quedes sin batería antes de lo esperado.\n\nEstas son las aplicaciones que más batería consumen:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Tu dispositivo se ha usado más de lo normal y es posible te quedes sin batería antes de lo esperado.\n\nEstas son las aplicaciones que más batería consumen:"</string>
@@ -2695,7 +2695,7 @@
<string name="tts_reset" msgid="9047681050813970031">"Restablecer"</string>
<string name="tts_play" msgid="2945513377250757221">"Reproducir"</string>
<string name="vpn_settings_title" msgid="9131315656202257272">"VPN"</string>
- <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Conectividad adaptable"</string>
+ <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Conectividad adaptativa"</string>
<string name="adaptive_connectivity_summary" msgid="3648731530666326885">"Alarga la duración de la batería y mejora el rendimiento del dispositivo gestionando automáticamente las conexiones de red"</string>
<string name="credentials_title" msgid="7535942196886123656">"Almacenamiento de credenciales"</string>
<string name="credentials_install" msgid="3933218407598415827">"Instalar certificados"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"No instalar"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalar (no seguro)"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"No se ha instalado el certificado"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"¿Permitir que <xliff:g id="APP_NAME">%s</xliff:g> instale certificados en este dispositivo?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Con estos certificados, las aplicaciones y las URL que se indican a continuación podrán identificarte"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"No permitir"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Permitir"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Mostrar más"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App de gestión de certificados"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Ninguna"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Con los certificados que instale esta aplicación, te podrán identificar las aplicaciones y la URL que se indican a continuación"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Quitar"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Señal de llamada de emergencia"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Establecer comportamiento al realizar una llamada de emergencia"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Copia de seguridad"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Número máximo de conjuntos de datos visibles"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Restablecer valores predeterminados"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Se ha restablecido la opción de autocompletar las opciones del desarrollador"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forzar mediciones de GNSS completas"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Registrar todas las frecuencias y constelaciones de GNSS sin ciclo de servicio"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema del dispositivo"</string>
<string name="default_theme" msgid="4815428567082263639">"Predeterminado"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nombre de la red"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pausa las notificaciones para concentrarte"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Función no disponible"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Esta función se ha desactivado porque ralentiza el teléfono"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forzar mediciones de GNSS completas"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Registrar todas las frecuencias y constelaciones de GNSS sin ciclo de servicio"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Mostrar siempre el cuadro de diálogo de fallos"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Mostrar el cuadro de diálogo cuando una aplicación falle"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Seleccionar una aplicación para usar ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Activado (silenciar)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Desactivado"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalles de la red"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Las aplicaciones de tu teléfono pueden ver el nombre de tu dispositivo. También es posible que lo vean otros usuarios si lo conectas con dispositivos Bluetooth o configuras un punto de acceso Wi‑Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Las aplicaciones de tu teléfono pueden ver el nombre de tu dispositivo. También es posible que lo vean otros usuarios si lo conectas con dispositivos Bluetooth, si te conectas a una red Wi-Fi o si configuras un punto de acceso Wi‑Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Dispositivos"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Todos los ajustes"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Sugerencias"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"No se ha podido activar la tarjeta SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Extrae la tarjeta SIM e insértala de nuevo. Si el problema continúa, reinicia el dispositivo."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prueba a activar la tarjeta SIM de nuevo. Si el problema continúa, reinicia el dispositivo."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activación de la red"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> está activo"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Toca para actualizar los ajustes de la tarjeta SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Tarjeta SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"¿Borrar esta SIM descargada?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Si borras esta SIM, el servicio de <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> dejará de estar disponible en este dispositivo.\n\nNo se cancelará el servicio de <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Borrar"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Con las llamadas por Wi‑Fi, puedes llamar y recibir llamadas por redes que no son de operadores, como ciertas redes Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Llamadas"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferida"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferida para las llamadas"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferida para los SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"no disponible"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Sin tarjeta SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferencias"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Conectarse a redes públicas"</string>
<string name="keywords_internet" msgid="7674082764898690310">"conexión de red, internet, inalámbrico, datos, wifi, wi-fi, wi fi, datos móviles, móvil, operador de telefonía, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Ver redes seguras para aviones"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Desactivar modo avión"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"No disponible porque el modo Descanso está activado"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Borrado de la importancia de las notificaciones completado."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplicaciones"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 3eb9ea7..b8e4c58 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-aadressid"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Salvestatud võrgud"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Tellimused"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Muud võrgud"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-seaded"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"WiFi täpsemad seaded pole selle kasutaja jaoks saadaval"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Salvesta"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Kustuta pääsupunktinimi"</string>
<string name="menu_new" msgid="6571230342655509006">"Uus pääsupunkt"</string>
<string name="menu_save" msgid="6611465355127483100">"Salvesta"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Loobu"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Tühista"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Nimeväli ei tohi tühi olla."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ei saa olla tühi."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tahvelarvutit on kasutatud tavapärasest rohkem"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Seadet on kasutatud tavapärasest rohkem"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Aku võib tavapärasest kiiremini tühjaks saada"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Akutase on ajutiselt piiratud"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Aitab säilitada aku seisukorda. Lisateabe saamiseks puudutage."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Akutase on ajutiselt piiratud. Lisateabe saamiseks puudutage."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Teie telefoni on kasutatud tavapärasest rohkem. Aku võib oodatust kiiremini tühjaks saada.\n\nEnim akut kasutanud rakendused:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Teie tahvelarvutit on kasutatud tavapärasest rohkem. Aku võib oodatust kiiremini tühjaks saada.\n\nEnim akut kasutanud rakendused:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Teie seadet on kasutatud tavapärasest rohkem. Aku võib oodatust kiiremini tühjaks saada.\n\nEnim akut kasutanud rakendused:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ära installi"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Installi ikkagi"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifikaat on installimata"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Kas lubada rakendusel <xliff:g id="APP_NAME">%s</xliff:g> sellesse seadmesse sertifikaadid installida?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Need sertifikaadid tuvastavad teid allolevate rakenduste ja URL-ide jaoks"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ära luba"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Luba"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Kuva rohkem"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Sertifikaadihalduse rakendus"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Pole"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Selle rakenduse installitud sertifikaadid tuvastavad teid allolevates rakendustes ja URL-idel"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Eemalda"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Hädaabikõne signaal"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Määra käitumine hädaabikõne korral"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Varundamine"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max nähtavate andmekomplektide arv"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Vaikeväärtustele lähtestamine"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Arendaja automaattäite valikud on lähtestatud"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Jõusta GNSS-i täielikud mõõtmistulemused"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Jälgi kõiki GNSS-i radu ja sagedusi ilma töötsüklita"</string>
<string name="device_theme" msgid="5027604586494772471">"Seadme teema"</string>
<string name="default_theme" msgid="4815428567082263639">"Vaikeseade"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Võrgu nimi"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Keskendumiseks peatage märguanded"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funktsioon pole saadaval"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"See funktsioon on välja lülitatud, kuna see muudab teie telefoni aeglaseks"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Jõusta GNSS-i täielikud mõõtmistulemused"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Jälgi kõiki GNSS-i radu ja sagedusi ilma töötsüklita"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Kuva alati kokkujooksmise dialoog"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Dialoog kuvatakse alati, kui rakendus kokku jookseb"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Valige rakendus, milles ANGLE on lubatud"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Sees (vaigistatud)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Väljas"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Võrgu üksikasjad"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Teie seadme nimi on telefonis rakendustele nähtav. Bluetoothi seadmetega ühendamisel või WiFi-pääsupunkti loomisel võivad seda näha ka teised inimesed."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Teie seadme nimi on teie telefonis olevatele rakendustele nähtav. Bluetooth-seadmetega või WiFi-võrguga ühenduse loomisel või WiFi-kuumkoha seadistamisel võivad seda näha ka teised inimesed."</string>
<string name="devices_title" msgid="649715719278562515">"Seadmed"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Kõik seaded"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Soovitused"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-kaarti ei saa aktiveerida"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Eemaldage SIM-kaart ja sisestage uuesti. Kui probleem jätkub, taaskäivitage seade."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Lülitage SIM-kaart uuesti sisse. Kui probleem jätkub, taaskäivitage seade."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Võrgu aktiveerimine"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> on aktiivne"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Puudutage SIM-kaardi seadete värskendamiseks"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-kaart"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Kas soovite allalaaditud SIM-kaardi kustutada?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"SIM-kaardi kustutamisel eemaldatakse seadmest operaatori <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> teenus.\n\nOperaatori <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> teenust ei tühistata."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Kustuta"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"WiFi-kõned võimaldavad teil helistada ja kõnesid vastu võtta operaatoriväliste võrkude kaudu (nt mõned WiFi-võrgud)."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Kõned"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"eelistatud"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"eelistatud on kõned"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"eelistatud on SMS-id"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"pole saadaval"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM-kaarti pole"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Eelistused"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Ühenda avalike võrkudega"</string>
<string name="keywords_internet" msgid="7674082764898690310">"võrguühendus, internet, juhtmeta, andmeside, wifi, wi-fi, wi fi, mobiilside, mobiilsideoperaator, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Kuva lennukikindlad võrgud"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Lennukirežiimi väljalülitamine"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Pole saadaval, kuna uneaja režiim on sisse lülitatud"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Märguande olulisuse lähtestamine viidi lõpule."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Rakendused"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index abbfc40..b639049 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 helbideak"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Gordetako sareak"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Harpidetzak"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Beste sare batzuk"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IParen ezarpenak"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Erabiltzaile honek ezin ditu erabili Wi-Fi aurreratuaren ezarpenak"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Gorde"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Ezabatu APNa"</string>
<string name="menu_new" msgid="6571230342655509006">"APN berria"</string>
<string name="menu_save" msgid="6611465355127483100">"Gorde"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Baztertu"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Utzi"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Izena eremuak ezin du hutsik egon."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APNak ezin du hutsik egon."</string>
@@ -1837,7 +1836,7 @@
<string name="lock_settings_title" msgid="665707559508132349">"Gailuaren segurtasuna"</string>
<string name="lockpattern_change_lock_pattern_label" msgid="5853706275279878879">"Aldatu desblokeatzeko eredua"</string>
<string name="lockpattern_change_lock_pin_label" msgid="7327409886587802756">"Aldatu desblokeatzeko PINa"</string>
- <string name="lockpattern_recording_intro_header" msgid="8325736706877916560">"Marraztu desblokeatzeko eredua"</string>
+ <string name="lockpattern_recording_intro_header" msgid="8325736706877916560">"Marraztu desblokeatzeko eredu bat"</string>
<string name="lockpattern_recording_intro_footer" msgid="2656868858594487197">"Laguntza lortzeko, sakatu Menua."</string>
<string name="lockpattern_recording_inprogress" msgid="7268008332694009191">"Bukatutakoan, jaso hatza"</string>
<string name="lockpattern_recording_incorrect_too_short" msgid="3351522018450593723">"Konektatu <xliff:g id="NUMBER">%d</xliff:g> puntu gutxienez. Saiatu berriro."</string>
@@ -1858,7 +1857,7 @@
<string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="2202430156268094229">"<xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> fidagarritasun-agenteak desblokeatuta mantentzen duenean izan ezik"</string>
<string name="lockpattern_settings_choose_lock_pattern" msgid="2193588309557281466">"Ezarri desblokeatzeko eredua"</string>
<string name="lockpattern_settings_change_lock_pattern" msgid="7614155083815661347">"Aldatu desblokeatzeko eredua"</string>
- <string name="lockpattern_settings_help_how_to_record" msgid="2093801939046625774">"Desblokeatzeko eredua nola marraztu"</string>
+ <string name="lockpattern_settings_help_how_to_record" msgid="2093801939046625774">"Desblokeatzeko eredu bat nola marraztu"</string>
<string name="lockpattern_too_many_failed_confirmation_attempts" msgid="7891484005551794824">"Saiakera oker gehiegi egin dituzu. Saiatu berriro <xliff:g id="NUMBER">%d</xliff:g> segundo barru."</string>
<string name="activity_not_found" msgid="5464331414465894254">"Ez duzu aplikazioa telefonoan instalatu."</string>
<string name="lock_settings_profile_title" msgid="103605580492566086">"Laneko profilaren segurtasuna"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tableta ohi baino gehiago erabili da"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Gailua ohi baino gehiago erabili da"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Baliteke bateria ohi baino lehenago agortzea"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Bateria mugatuta egongo da aldi batez"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Horrela, bateria egoera onean mantentzen da. Informazio gehiago lortzeko, sakatu hau."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Bateria mugatuta egongo da aldi batez. Informazio gehiago lortzeko, sakatu hau."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefonoa ohi baino gehiago erabili da. Baliteke bateria espero baino lehenago agortzea.\n\nBateria gehien erabili duten aplikazioak:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tableta ohi baino gehiago erabili da. Baliteke bateria espero baino lehenago agortzea.\n\nBateria gehien erabili duten aplikazioak:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Gailua ohi baino gehiago erabili da. Baliteke bateria espero baino lehenago agortzea.\n\nBateria gehien erabili duten aplikazioak:"</string>
@@ -2625,7 +2625,7 @@
<string name="battery_saver_auto_percentage" msgid="558533724806281980">"Bateria-mailaren ehunekoan oinarrituta"</string>
<string name="battery_saver_auto_routine_summary" msgid="3913145448299472628">"Bateria kargatzeko ohiko ordua iritsi aurretik bateria agortzeko arriskua badago aktibatzen da bateria-aurrezlea"</string>
<string name="battery_saver_auto_percentage_summary" msgid="6190884450723824287">"Bateria-maila <xliff:g id="PERCENT">%1$s</xliff:g> denean aktibatuko da"</string>
- <string name="battery_saver_schedule_settings_title" msgid="3688019979950082237">"Ezarri programazioa"</string>
+ <string name="battery_saver_schedule_settings_title" msgid="3688019979950082237">"Ezarri programazio bat"</string>
<string name="battery_saver_turn_on_summary" msgid="1433919417587171160">"Luzatu bateriaren iraupena"</string>
<string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Desaktibatu kargatuta dagoenean"</string>
<string name="battery_saver_sticky_description_new" product="default" msgid="4969508893424116609">"Telefonoaren bateria <xliff:g id="PERCENT">%1$s</xliff:g> baino gehiago kargatu denean, desaktibatu egiten da bateria-aurrezlea"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ez instalatu"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalatu halere"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Ziurtagiria ez dago instalatuta"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Gailu honetan ziurtagiriak instalatzeko baimena eman nahi diozu <xliff:g id="APP_NAME">%s</xliff:g> aplikazioari?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Ziurtagiri hauek beheko aplikazioetan eta URLtan identifikatuko zaituzte"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ez eman baimenik"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Eman baimena"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Erakutsi gehiago"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Ziurtagiriak kudeatzeko aplikazioa"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Bat ere ez"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Aplikazio honek instalatzen dituen ziurtagiriek beheko aplikazioetan eta URLtan identifikatuko zaituzte"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Kendu"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Larrialdi-deien seinalea"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Ezarri larrialdi-deiak egitean izan beharreko portaera."</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Babeskopiak"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Ikusgai dauden gehieneko datu multzoak"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Berrezarri balio lehenetsiak"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Garatzaileak ez ditu berrezarri betetze automatikoko aukerak"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Behartu GNSS neurketa osoak gauzatzera"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Egin GNSS konstelazio eta maiztasun guztien jarraipena, eginbeharren ziklorik gabe"</string>
<string name="device_theme" msgid="5027604586494772471">"Gailuaren gaia"</string>
<string name="default_theme" msgid="4815428567082263639">"Lehenetsia"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Sarearen izena"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pausatu jakinarazpenak arreta ez galtzeko"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Eginbidea ez dago erabilgarri"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Eginbidea desaktibatu egin da, telefonoa moteltzen duelako"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Behartu GNSS neurketa osoak gauzatzera"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Egin GNSS konstelazio eta maiztasun guztien jarraipena, eginbeharren ziklorik gabe"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Erakutsi beti hutsegiteen leihoak"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Erakutsi leiho bat aplikazioren batek huts egiten duen bakoitzean"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Hautatu ANGLE-rekin bateragarria den aplikazio bat"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Aktibatuta (audioa desaktibatuta)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Desaktibatuta"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Sarearen xehetasunak"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Mugikorreko aplikazioek gailuaren izena ikus dezakete. Halaber, jendeak ere ikus dezake Bluetooth bidezko gailuetara konektatzean edo wifi-gune bat konfiguratzean."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Mugikorreko aplikazioek gailuaren izena ikus dezakete. Halaber, jendeak ere ikus dezake Bluetooth bidezko gailuetara edo wifi-sare batera konektatzean, edo wifi-gune bat konfiguratzean."</string>
<string name="devices_title" msgid="649715719278562515">"Gailuak"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Ezarpen guztiak"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Iradokizunak"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Ezin da aktibatu SIM txartela"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Kendu SIM txartela eta sar ezazu berriro. Arazoak badirau, berrabiarazi gailua."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Saiatu berriro SIM txartela aktibatzen. Arazoak badirau, berrabiarazi gailua."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Sarearen aktibazioa"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Aktibo dago <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Sakatu hau SIM txartelarenaren ezarpenak eguneratzeko"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM txartela"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Deskargatutako SIM txartel honetako eduki guztia ezabatu?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"SIM txartel honetako eduki guztia ezabatuz gero, <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> operadorearen zerbitzua kenduko da gailu honetatik.\n\nEz da utziko bertan behera <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> operadorearen zerbitzua."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Ezabatu eduki guztia"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wifi bidezko deiekin, deiak egin eta jaso ahalko dituzu operadore batenak ez diren sareen bitartez (adibidez, zenbait wifi-sare)."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Deiak"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMSa"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"hobetsiak"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"deiak hobesten dira"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMSak hobesten dira"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ez dago erabilgarri"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Ez dago SIM txartelik"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Hobespenak"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Konektatu sare publikoetara"</string>
<string name="keywords_internet" msgid="7674082764898690310">"sareko konexioa, internet, hari gabeko konexioak, datuak, wifia, mugikorra, telefono mugikorra, operadorea, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Ikusi hegaldietarako seguruak diren sareak"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Desaktibatu hegaldi modua"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Ez dago erabilgarri, lo egiteko garaiaren modua aktibatuta dagoelako"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Berrezarri da jakinarazpenen garrantzia."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikazioak"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 6e4c528..342f180 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"نشانیهای IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"شبکههای ذخیرهشده"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"اشتراکها"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"شبکههای دیگر"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"تنظیمات IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"تنظیمات پیشرفته Wi‑Fi برای این کاربر در دسترس نیست"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"ذخیره"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"حذف نام نقطه دستیابی"</string>
<string name="menu_new" msgid="6571230342655509006">"نام نقطه دستیابی جدید"</string>
<string name="menu_save" msgid="6611465355127483100">"ذخیره"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"صرفنظر"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"لغو"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"قسمت نام نباید خالی باشد."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"نام نقطه دستیابی نمیتواند خالی باشد."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"رایانه لوحی بیشتر از حد معمول استفاده شده است"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"دستگاه بیشتر از حد معمول استفاده شده است"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ممکن است شارژ باتری زودتر از معمول تمام شود"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"باتری موقتاً محدود شده است"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"به حفظ سلامت باتری کمک میکند. برای اطلاعات بیشتر ضربه بزنید."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"باتری موقتاً محدود شده است. برای اطلاعات بیشتر، ضربه بزنید."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"از تلفنتان بیشازحد معمول استفاده شده است. ممکن است باتری آن زودتر از موعد موردانتظار تمام شود.\n\nبرنامههای برتر براساس مصرف باتری:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"از رایانه لوحی بیش از حد معمول استفاده شده است. ممکن است باتری آن زودتر از موعد موردانتظار تمام شود.\n\nبرنامههای برتر براساس مصرف باتری:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"از دستگاه بیش از حد معمول استفاده شده است. ممکن است باتری آن زودتر از موعد موردانتظار تمام شود.\n\nبرنامههای برتر براساس مصرف باتری:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"نصب نشود"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"درهرحال نصب شود"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"گواهینامه نصب نشد"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"به <xliff:g id="APP_NAME">%s</xliff:g> اجازه داده شود گواهینامهها را در این دستگاه نصب کند؟"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"این گواهینامهها باعث میشوند برنامهها و نشانیهای وب زیر هویت شما را شناسایی کنند"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"مجاز نیست"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"مجاز است"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"بیشتر ببینید"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"برنامه مدیریت گواهینامه"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"برنامهای وجود ندارد"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"گواهینامههایی که این برنامه نصب کرده است هویت شما را در برنامهها و نشانیهای وب زیر شناسایی میکنند"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"برداشتن"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"سیگنال شمارهگیری اضطراری"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"واکنش موجود در هنگام برقراری تماس اضطراری را تنظیم کنید"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"پشتیبانگیری"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"حداکثر مجموعه دادههای مرئی"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"بازنشانی به مقادیر پیشفرض"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"گزینههای برنامهنویس تکمیل خودکار بازنشانی شد"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"اجرای کامل اندازهگیری GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"بدون دوره کاری، همه دسته عکسهای پانوراما و فرکانسها را ردیابی کنید."</string>
<string name="device_theme" msgid="5027604586494772471">"طرح زمینه دستگاه"</string>
<string name="default_theme" msgid="4815428567082263639">"پیشفرض"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"نام شبکه"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"توقف موقت اعلانها برای متمرکز ماندن"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ویژگی دردسترس نیست."</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"این ویژگی غیرفعال شده است چون سرعت تلفنتان را کاهش میدهد"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"اجرای کامل اندازهگیری GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"بدون دوره کاری، همه دسته عکسهای پانوراما و فرکانسها را ردیابی کنید."</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"همیشه کادر گفتگوی خرابی نمایش داده شود"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"نمایش کادر گفتگو هنگامی که برنامهای خراب میشود"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"برنامه دارای ANGLE فعال انتخاب کنید"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"روشن (بیصدا)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"خاموش"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"جزئیات شبکه"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"نام دستگاه شما برای برنامههای موجود در تلفنتان قابلمشاهده است. ممکن است وقتی به دستگاههای بلوتوث متصل میشوید یا نقطه اتصال Wi-Fi راهاندازی میکنید، برای سایر افراد نیز قابلمشاهده باشد."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"نام دستگاه شما برای برنامههای موجود در تلفنتان قابلمشاهده است. همچنین ممکن است هنگام اتصال به دستگاههای بلوتوث، اتصال به شبکه Wi-Fi، یا راهاندازی نقطه اتصال Wi-Fi، برای افراد دیگر قابلمشاهده باشد."</string>
<string name="devices_title" msgid="649715719278562515">"دستگاهها"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"همه تنظیمات"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"پیشنهادها"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"سیمکارت فعال نشد"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"سیمکارت را خارج کنید و دوباره در دستگاه بگذارید. اگر مشکل ادامه داشت، دستگاهتان را بازراهاندازی کنید."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"سیمکارت را دوباره روشن کنید. اگر مشکل ادامه داشت، دستگاهتان را بازراهاندازی کنید."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"فعالسازی شبکه"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> فعال است"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"برای بهروزرسانی تنظیمات سیمکارت ضربه بزنید"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"سیمکارت"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"این سیمکارت بارگیریشده پاکسازی شود؟"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"با پاکسازی این سیمکارت، سرویس <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> از این دستگاه برداشته میشود.\n\nسرویس مربوط به <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> لغو نمیشود."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"پاکسازی"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"«تماس ازطریق Wi-Fi» امکان برقراری و دریافت تماس ازطریق شبکههای غیرمخابراتی را (برای مثل برخی از شبکههای Wi-Fi) به شما میدهد."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"تماس"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"پیامک"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"دارای اولویت"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"اولویت با تماس"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"اولویت با پیامک"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"دردسترس نیست"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"سیمکارتی وجود ندارد"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"اولویتها"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"اتصال به شبکههای عمومی"</string>
<string name="keywords_internet" msgid="7674082764898690310">"اتصال شبکه، اینترنت، بیسیم، داده، wifi، wi-fi، wi fi، شبکه تلفن همراه، تلفن همراه، شرکت مخابراتی تلفن همراه، 4g، 3g، 2g، lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"مشاهده شبکههای ایمن در هواپیما"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"خاموش کردن «حالت هواپیما»"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"دردسترس نیست زیرا «حالت وقت خواب» روشن است"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"بازنشاندن اهمیت اعلان تکمیل شد."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"برنامهها"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index aa1bee8..fd5b0cb 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-osoitteet"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Tallennetut verkot"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Tilaukset"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Muut verkot"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-asetukset"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi‑Fi-lisäasetukset eivät ole tämän käyttäjän käytettävissä."</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Tallenna"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Poista APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Uusi APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Tallenna"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Hylkää"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Peru"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Nimi-kenttä ei voi olla tyhjä."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ei voi olla tyhjä."</string>
@@ -1837,7 +1836,7 @@
<string name="lock_settings_title" msgid="665707559508132349">"Laitteen suojaus"</string>
<string name="lockpattern_change_lock_pattern_label" msgid="5853706275279878879">"Vaihda lukituksenpoistokuvio"</string>
<string name="lockpattern_change_lock_pin_label" msgid="7327409886587802756">"Muuta lukituksen poistoon tarvittava PIN-koodi"</string>
- <string name="lockpattern_recording_intro_header" msgid="8325736706877916560">"Piirrä lukituksenpoistokuvio"</string>
+ <string name="lockpattern_recording_intro_header" msgid="8325736706877916560">"Piirrä lukituksen avaava kuvio"</string>
<string name="lockpattern_recording_intro_footer" msgid="2656868858594487197">"Saat ohjeita painamalla Valikko-painiketta."</string>
<string name="lockpattern_recording_inprogress" msgid="7268008332694009191">"Nosta sormi, kun olet valmis"</string>
<string name="lockpattern_recording_incorrect_too_short" msgid="3351522018450593723">"Yhdistä vähintään <xliff:g id="NUMBER">%d</xliff:g> pistettä. Yritä uudelleen."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablettia on käytetty tavallista enemmän"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Laitetta on käytetty tavallista enemmän"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Akku voi loppua odotettua aiemmin"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Akun käyttöä rajoitettu tilapäisesti"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Auttaa pitämään akun hyvässä kunnossa. Lue lisää napauttamalla."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Akun käyttöä rajoitettu tilapäisesti. Lue lisää napauttamalla."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Puhelinta käytetty tavallista enemmän. Akku voi loppua odotettua aiemmin.\n\nAkkua eniten käyttäneet sovellukset:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tablettia on käytetty tavallista enemmän. Akku voi loppua odotettua aiemmin.\n\nAkkua eniten käyttäneet sovellukset:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Laitetta on käytetty tavallista enemmän. Akku voi loppua odotettua aiemmin.\n\nAkkua eniten käyttäneet sovellukset:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Älä asenna"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Asenna silti"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Varmennetta ei asennettu."</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Saako <xliff:g id="APP_NAME">%s</xliff:g> asentaa varmenteita tälle laitteelle?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Alla olevat sovellukset ja URL-osoitteet tunnistavat sinut näistä varmenteista"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Älä salli"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Salli"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Näytä enemmän"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Varmenteiden hallintasovellus"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"–"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Tämän sovelluksen asentamat varmenteet yhdistävät sinut alla oleviin sovelluksiin ja URL-osoitteisiin"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Poista"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Hätäpuhelun äänimerkki"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Aseta toiminta hätäpuhelun tapauksessa"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Varmuuskopiointi"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Näkyvien data-aineistojen enimmäismäärä"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Palauta oletusarvot"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Automaattisen täytön kehittäjäasetukset palautettu"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Pakota täydet GNSS-mitat"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Seuraa kaikkia GNSS-kuvioita ja ‑taajuuksia, joissa ei ole pulssisuhdetta."</string>
<string name="device_theme" msgid="5027604586494772471">"Laitteen teema"</string>
<string name="default_theme" msgid="4815428567082263639">"Oletus"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Verkon nimi"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Keskeytä ilmoitukset, jotta voit keskittyä"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Ominaisuutta ei ole saatavilla"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Tämä ominaisuus on poistettu käytöstä, koska se hidastaa puhelintasi."</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Pakota täydet GNSS-mitat"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Seuraa kaikkia GNSS-kuvioita ja ‑taajuuksia, joissa ei ole pulssisuhdetta."</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Näytä aina kaatumisikkuna"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Näytä valintaikkuna aina, kun sovellus kaatuu."</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Valitse ANGLE-yhteensopiva sovellus"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Päällä (mykistys)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Ei päällä"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Verkon tiedot"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Puhelimen sovellukset näkevät laitteesi nimen. Muut voivat myös nähdä nimen, kun muodostat Bluetooth-yhteyden laitteisiin tai aktivoit Wi-Fi-hotspotin."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Puhelimen sovellukset näkevät laitteesi nimen. Myös muut käyttäjät voivat nähdä nimen, kun muodostat Bluetooth-yhteyden laitteisiin, yhteyden Wi-Fi-verkkoon tai aktivoit Wi-Fi-hotspotin."</string>
<string name="devices_title" msgid="649715719278562515">"Laitteet"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Kaikki asetukset"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Ehdotukset"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-korttia ei voi aktivoida"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Poista SIM-kortti ja aseta se takaisin. Jos ongelma ei ratkea, käynnistä laite uudelleen."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Kokeile kytkeä SIM-kortti päälle uudelleen. Jos ongelma ei ratkea, käynnistä laite uudelleen."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Verkon aktivointi"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> on aktiivinen"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Päivitä SIM‑asetukset napauttamalla"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-kortti"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Tyhjennetäänkö ladattu SIM-kortti?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Tämän SIM-kortin tyhjentäminen poistaa palvelun (<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>) laitteelta.\n\nPalvelua (<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>) ei peruuteta."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Tyhjennä"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi-puheluilla voit soittaa ja vastaanottaa puheluita muun kuin operaattorin verkon (esim. joidenkin Wi-Fi-verkkojen) kautta."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Puhelut"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"Tekstiviestit"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"ensisijainen"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"ensisijainen: puhelut"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"ensisijainen: tekstiviestit"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ei saatavilla"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Ei SIM-korttia"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Valinnat"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Yhdistä julkisiin verkkoihin"</string>
<string name="keywords_internet" msgid="7674082764898690310">"verkkoyhteys, internet, langaton, data, langaton yhteys, Wi-Fi, Wi Fi, datayhteys, mobiili, puhelinoperaattori, 4g, 3g, 2g, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Näytä lentokoneturvalliset verkot"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Laita lentokonetila pois päältä"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Ei käytettävissä, koska Nukkuma-aikamoodi on päällä"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Ilmoitusten tärkeys nollattu"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Sovellukset"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 419594d..8d39181 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -25,7 +25,6 @@
<string name="device_info_default" msgid="1406619232867343310">"Inconnu"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="1646187747875476269">
<item quantity="one">Plus que <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> étape pour devenir concepteur.</item>
- <item quantity="many">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
<item quantity="other">Plus que <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> étapes pour devenir concepteur.</item>
</plurals>
<string name="show_dev_on" msgid="2840850085134853754">"Vous êtes maintenant concepteur!"</string>
@@ -209,7 +208,6 @@
<string name="add_a_language" msgid="2126220398077503271">"Ajouter une langue"</string>
<plurals name="dlg_remove_locales_title" formatted="false" msgid="2845515796732609837">
<item quantity="one">Supprimer la langue sélectionnée?</item>
- <item quantity="many">Remove selected languages?</item>
<item quantity="other">Supprimer les langues sélectionnées?</item>
</plurals>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Le texte s\'affichera dans une autre langue."</string>
@@ -237,7 +235,7 @@
<string name="settings_label" msgid="943294133671632976">"Paramètres"</string>
<string name="settings_label_launcher" msgid="820982375501978609">"Paramètres"</string>
<string name="settings_shortcut" msgid="8548239727871847171">"Raccourci vers les paramètres"</string>
- <string name="airplane_mode" msgid="3196085857882526817">"Mode avion"</string>
+ <string name="airplane_mode" msgid="3196085857882526817">"Mode Avion"</string>
<string name="wireless_networks_settings_title" msgid="8557542379234105369">"Sans fil et réseaux"</string>
<string name="radio_controls_summary" msgid="9028430178697624501">"Gérer le Wi-Fi, le Bluetooth, le mode Avion, les réseaux mobiles et les RPV"</string>
<string name="cellular_data_summary" msgid="6551434804367912367">"Auto. utilisation données sur réseau cell."</string>
@@ -302,7 +300,6 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Désactivé"</string>
<plurals name="location_settings_summary_location_on" formatted="false" msgid="1019959038518185676">
<item quantity="one">Activé : <xliff:g id="COUNT_1">%1$d</xliff:g> application a accès à la position</item>
- <item quantity="many">On - <xliff:g id="COUNT_1">%1$d</xliff:g> apps have access to location</item>
<item quantity="other">Activé : <xliff:g id="COUNT_1">%1$d</xliff:g> applications ont accès à la position</item>
</plurals>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement en cours…"</string>
@@ -401,7 +398,6 @@
<string name="fingerprint_enable_keyguard_toggle_title" msgid="5451094461919440992">"verrouillage de l\'écran"</string>
<plurals name="security_settings_fingerprint_preference_summary" formatted="false" msgid="988602245530967106">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> empreinte digitale configurée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> fingerprints set up</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> empreintes digitales configurées</item>
</plurals>
<string name="security_settings_fingerprint_preference_summary_none" msgid="1044059475710838504"></string>
@@ -628,23 +624,19 @@
<string name="lock_failed_attempts_now_wiping_dialog_dismiss" msgid="170155081899679669">"Ignorer"</string>
<plurals name="lockpassword_password_too_short" formatted="false" msgid="2192234965414232157">
<item quantity="one">Doit contenir au moins <xliff:g id="COUNT_1">%d</xliff:g> caractère</item>
- <item quantity="many">Must be at least <xliff:g id="COUNT_1">%d</xliff:g> characters</item>
<item quantity="other">Doit contenir au moins <xliff:g id="COUNT_1">%d</xliff:g> caractères</item>
</plurals>
<plurals name="lockpassword_pin_too_short" formatted="false" msgid="6817086810898414162">
<item quantity="one">Le NIP doit contenir au moins <xliff:g id="COUNT_1">%d</xliff:g> chiffre</item>
- <item quantity="many">PIN must be at least <xliff:g id="COUNT_1">%d</xliff:g> digits</item>
<item quantity="other">Le NIP doit contenir au moins <xliff:g id="COUNT_1">%d</xliff:g> chiffres</item>
</plurals>
<string name="lockpassword_continue_label" msgid="2507983991979547816">"Continuer"</string>
<plurals name="lockpassword_password_too_long" formatted="false" msgid="8118091957172967677">
<item quantity="one">Doit contenir moins de <xliff:g id="NUMBER_1">%d</xliff:g> caractère</item>
- <item quantity="many">Must be fewer than <xliff:g id="NUMBER_1">%d</xliff:g> characters</item>
<item quantity="other">Doit contenir moins de <xliff:g id="NUMBER_1">%d</xliff:g> caractères</item>
</plurals>
<plurals name="lockpassword_pin_too_long" formatted="false" msgid="8706992338720310765">
<item quantity="one">Doit contenir moins de <xliff:g id="NUMBER_1">%d</xliff:g> chiffre</item>
- <item quantity="many">Must be fewer than <xliff:g id="NUMBER_1">%d</xliff:g> digits</item>
<item quantity="other">Doit contenir moins de <xliff:g id="NUMBER_1">%d</xliff:g> chiffres</item>
</plurals>
<string name="lockpassword_pin_recently_used" msgid="6650277060998923465">"L\'administrateur de l\'appareil ne permet pas l\'utilisation d\'un NIP récent"</string>
@@ -654,37 +646,30 @@
<string name="lockpassword_password_requires_symbol" msgid="6178512486154701321">"Doit contenir au moins un symbole"</string>
<plurals name="lockpassword_password_requires_letters" formatted="false" msgid="2385916409676839024">
<item quantity="one">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> lettre</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> letters</item>
<item quantity="other">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> lettres</item>
</plurals>
<plurals name="lockpassword_password_requires_lowercase" formatted="false" msgid="2057467885488612701">
<item quantity="one">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> lettre minuscule</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> lowercase letters</item>
<item quantity="other">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> lettres minuscules</item>
</plurals>
<plurals name="lockpassword_password_requires_uppercase" formatted="false" msgid="4541266279643052025">
<item quantity="one">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> lettre majuscule</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> uppercase letters</item>
<item quantity="other">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> lettres majuscules</item>
</plurals>
<plurals name="lockpassword_password_requires_numeric" formatted="false" msgid="70617964591376248">
<item quantity="one">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> chiffre</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> numerical digits</item>
<item quantity="other">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> chiffres</item>
</plurals>
<plurals name="lockpassword_password_requires_symbols" formatted="false" msgid="7981236881269921943">
<item quantity="one">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> caractère spécial</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> special symbols</item>
<item quantity="other">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> caractères spéciaux</item>
</plurals>
<plurals name="lockpassword_password_requires_nonletter" formatted="false" msgid="1567877061888948467">
<item quantity="one">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> caractère autre qu\'une lettre</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> non-letter characters</item>
<item quantity="other">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> caractères autres qu\'une lettre</item>
</plurals>
<plurals name="lockpassword_password_requires_nonnumerical" formatted="false" msgid="5056743974888384475">
<item quantity="one">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> caractère non numérique</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> non-numerical characters</item>
<item quantity="other">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> caractères non numériques</item>
</plurals>
<string name="lockpassword_password_recently_used" msgid="5341218079730167191">"L\'administrateur de l\'appareil ne permet pas l\'utilisation d\'un mot de passe récent"</string>
@@ -700,7 +685,6 @@
<string name="number_of_device_admins_none" msgid="152926922020437312">"Aucune application active"</string>
<plurals name="number_of_device_admins" formatted="false" msgid="2528735319390151989">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> application active</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> active apps</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> applications actives</item>
</plurals>
<string name="manage_trust_agents" msgid="6410149930029992356">"Agents de confiance"</string>
@@ -708,7 +692,6 @@
<string name="manage_trust_agents_summary" msgid="6423843123607674286">"Aucun"</string>
<plurals name="manage_trust_agents_summary_on" formatted="false" msgid="5438047398376802735">
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> agent de confiance actif</item>
- <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> active trust agents</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> agent(s) de confiance actif(s)</item>
</plurals>
<string name="bluetooth_quick_toggle_title" msgid="5955341060378240781">"Bluetooth"</string>
@@ -1017,17 +1000,14 @@
<string name="wifi_forget_dialog_message" msgid="8419499588321940243">"Tous les mots de passe de ce réseau seront supprimés"</string>
<plurals name="wifi_saved_access_points_summary" formatted="false" msgid="2802436466732147888">
<item quantity="one">%d réseau</item>
- <item quantity="many">%d networks</item>
<item quantity="other">%d réseaux</item>
</plurals>
<plurals name="wifi_saved_passpoint_access_points_summary" formatted="false" msgid="5802057518058840450">
<item quantity="one">%d abonnement</item>
- <item quantity="many">%d subscriptions</item>
<item quantity="other">%d abonnements</item>
</plurals>
<plurals name="wifi_saved_all_access_points_summary" formatted="false" msgid="5125849180309374451">
<item quantity="one">%d réseau et abonnement</item>
- <item quantity="many">%d networks & subscriptions</item>
<item quantity="other">%d réseaux et abonnements</item>
</plurals>
<string name="wifi_advanced_titlebar" msgid="1234150304285575798">"Paramètres Wi-Fi avancés"</string>
@@ -1042,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Adresses IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Réseaux enregistrés"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonnements"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Autres réseaux"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Paramètres IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Les paramètres Wi-Fi avancés ne sont pas accessibles pour cet utilisateur"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Enregistrer"</string>
@@ -1360,7 +1339,6 @@
<string name="wrong_pin_code_pukked" msgid="3414172752791445033">"NIP de carte SIM incorrect. Vous devez maintenant communiquer avec votre fournisseur de services pour déverrouiller votre appareil."</string>
<plurals name="wrong_pin_code" formatted="false" msgid="4054088588731305475">
<item quantity="one">Le NIP de la carte SIM incorrect. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentative.</item>
- <item quantity="many">Incorrect SIM PIN code, you have <xliff:g id="NUMBER_1">%d</xliff:g> remaining attempts.</item>
<item quantity="other">Le NIP de la carte SIM incorrect. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentatives.</item>
</plurals>
<string name="wrong_pin_code_one" msgid="6924852214263071441">"NIP de module SIM incorrect. Il vous reste une tentative. Après cela, vous devrez communiquer avec votre fournisseur de services pour déverrouiller votre appareil."</string>
@@ -1618,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Supprimer l\'APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Nouveau nom point d\'accès"</string>
<string name="menu_save" msgid="6611465355127483100">"Enregistrer"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Supprimer"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Annuler"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Le champ « Nom » est obligatoire."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"L\'APN est obligatoire."</string>
@@ -1742,7 +1720,6 @@
<string name="location_app_permission_summary_location_off" msgid="2711822936853500335">"Le signalement de position est désactivé"</string>
<plurals name="location_app_permission_summary_location_on" formatted="false" msgid="8286873148858526214">
<item quantity="one"> <xliff:g id="PERMITTED_LOCATION_APP_COUNT_2">%1$d</xliff:g> application sur <xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g> a accès à la position</item>
- <item quantity="many"> <xliff:g id="PERMITTED_LOCATION_APP_COUNT_2">%1$d</xliff:g> of <xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g> apps have access to location</item>
<item quantity="other"> <xliff:g id="PERMITTED_LOCATION_APP_COUNT_2">%1$d</xliff:g> applications sur <xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g> ont accès à la position</item>
</plurals>
<string name="location_category_recent_location_access" msgid="7880996987927703141">"Accès récents à la position"</string>
@@ -1903,7 +1880,6 @@
<string name="recent_app_category_title" msgid="189758417804427533">"Applications récemment ouvertes"</string>
<plurals name="see_all_apps_title" formatted="false" msgid="6864581406735745400">
<item quantity="one">Afficher %1$d application</item>
- <item quantity="many">See all %1$d apps</item>
<item quantity="other">Afficher %1$d applications</item>
</plurals>
<string name="forgot_password_title" msgid="3967873480875239885">"Contacter l\'administrateur informatique"</string>
@@ -1924,7 +1900,6 @@
<string name="cache_size_label" msgid="313456088966822757">"Cache"</string>
<plurals name="uri_permissions_text" formatted="false" msgid="8212425823423508096">
<item quantity="one">%d élément</item>
- <item quantity="many">%d items</item>
<item quantity="other">%d éléments</item>
</plurals>
<string name="clear_uri_btn_text" msgid="4828117421162495134">"Supprimer l\'accès"</string>
@@ -2288,7 +2263,6 @@
<string name="accessibility_hearingaid_active_device_summary" msgid="509703438222873967">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> est actif"</string>
<plurals name="show_number_hearingaid_count" formatted="false" msgid="776000580683647556">
<item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> prothèse auditive enregistrée</item>
- <item quantity="many"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> saved hearing aids</item>
<item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> prothèses auditives enregistrées</item>
</plurals>
<string name="accessibility_summary_shortcut_enabled" msgid="4030427268146752644">"Raccourci activé"</string>
@@ -2308,22 +2282,18 @@
<string name="daltonizer_mode_tritanomaly_summary" msgid="2837137091067433059">"Bleu-jaune"</string>
<plurals name="accessibilty_autoclick_preference_subtitle_short_delay" formatted="false" msgid="5354221071353645263">
<item quantity="one">Court (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconde)</item>
- <item quantity="many">Short (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconds)</item>
<item quantity="other">Court (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> secondes)</item>
</plurals>
<plurals name="accessibilty_autoclick_preference_subtitle_medium_delay" formatted="false" msgid="1550891909800510628">
<item quantity="one">Moyen (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconde)</item>
- <item quantity="many">Medium (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconds)</item>
<item quantity="other">Moyen (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> secondes)</item>
</plurals>
<plurals name="accessibilty_autoclick_preference_subtitle_long_delay" formatted="false" msgid="2230755548820485984">
<item quantity="one">Long (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconde)</item>
- <item quantity="many">Long (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconds)</item>
<item quantity="other">Long (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> secondes)</item>
</plurals>
<plurals name="accessibilty_autoclick_delay_unit_second" formatted="false" msgid="4537791441118261556">
<item quantity="one"><xliff:g id="CLICK_DELAY_LABEL_2">%1$s</xliff:g> seconde</item>
- <item quantity="many"><xliff:g id="CLICK_DELAY_LABEL_2">%1$s</xliff:g> seconds</item>
<item quantity="other"><xliff:g id="CLICK_DELAY_LABEL_2">%1$s</xliff:g> secondes</item>
</plurals>
<string name="accessibility_vibration_summary" msgid="27904038683405084">"Sonnerie : <xliff:g id="SUMMARY_RING">%1$s</xliff:g>. Notifications : <xliff:g id="SUMMARY_NOTIFICATION">%2$s</xliff:g>. Toucher : <xliff:g id="SUMMARY_TOUCH">%3$s</xliff:g>."</string>
@@ -2396,12 +2366,10 @@
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Désactivé"</string>
<plurals name="print_settings_summary" formatted="false" msgid="1034273609054146099">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> service d\'impression actif</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> print services on</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> services d\'impression actifs</item>
</plurals>
<plurals name="print_jobs_summary" formatted="false" msgid="3933688846338306536">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> tâche d\'impression</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> print jobs</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> tâches d\'impression</item>
</plurals>
<string name="print_settings_title" msgid="7680498284751129935">"Services d\'impression"</string>
@@ -2487,35 +2455,31 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"La tablette a été sollicitée plus que d\'habitude"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"L\'appareil a été sollicité plus que d\'habitude"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"La pile pourrait s\'épuiser plus tôt que d\'habitude"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Pile limitée temporairement"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Contribue à préserver la santé de la pile. Touchez ici pour en savoir plus."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Pile limitée temporairement. Touchez ici pour en savoir plus."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Votre téléphone a été sollicité plus que d\'habitude. Sa pile pourrait s\'épuiser plus rapidement que prévu.\n\nVoici les applications qui ont utilisé le plus d\'énergie :"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Votre tablette a été sollicitée plus que d\'habitude. Sa pile pourrait s\'épuiser plus rapidement que prévu.\n\nVoici les applications qui ont utilisé le plus d\'énergie :"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Votre appareil a été sollicité plus que d\'habitude. Sa pile pourrait s\'épuiser plus rapidement que prévu.\n\nVoici les applications qui ont utilisé le plus d\'énergie :"</string>
<string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inclut les activités énergivores en arrière-plan"</string>
<plurals name="battery_tip_restrict_title" formatted="false" msgid="3108195491484891588">
<item quantity="one">Restreindre %1$d application</item>
- <item quantity="many">Restrict %1$d apps</item>
<item quantity="other">Restreindre %1$d applications</item>
</plurals>
<plurals name="battery_tip_restrict_handled_title" formatted="false" msgid="5862649927574803958">
<item quantity="one">%2$d application récemment restreinte</item>
- <item quantity="many">%2$d apps recently restricted</item>
<item quantity="other">%2$d applications récemment restreintes</item>
</plurals>
<plurals name="battery_tip_restrict_summary" formatted="false" msgid="3328499737453686910">
<item quantity="one">%2$d application sollicite beaucoup la pile en arrière-plan</item>
- <item quantity="many">%2$d apps have high background battery usage</item>
<item quantity="other">%2$d applications sollicitent beaucoup la pile en arrière-plan</item>
</plurals>
<plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="3036853535034350991">
<item quantity="one">Cette application ne peut pas fonctionner en arrière-plan</item>
- <item quantity="many">These apps can\'t run in the background</item>
<item quantity="other">Ces applications ne peuvent pas fonctionner en arrière-plan</item>
</plurals>
<plurals name="battery_tip_restrict_app_dialog_title" formatted="false" msgid="7897944678619251740">
<item quantity="one">Restreindre %1$d application?</item>
- <item quantity="many">Restrict %1$d apps?</item>
<item quantity="other">Restreindre %1$d applications?</item>
</plurals>
<string name="battery_tip_restrict_app_dialog_message" msgid="137856003724730751">"Pour économiser la pile, empêchez <xliff:g id="APP">%1$s</xliff:g> de l\'utiliser en arrière-plan. Il se peut que cette application ne fonctionne pas correctement et que les notifications soient retardées."</string>
@@ -2536,7 +2500,6 @@
<string name="restricted_app_title" msgid="6585080822121007436">"Applications restreintes"</string>
<plurals name="restricted_app_summary" formatted="false" msgid="6059772951505411003">
<item quantity="one">Limitation de l\'utilisation de la pile pour %1$d application</item>
- <item quantity="many">Limiting battery usage for %1$d apps</item>
<item quantity="other">Limitation de l\'utilisation de la pile pour %1$d applications</item>
</plurals>
<string name="restricted_app_time_summary" msgid="3097721884155913252">"Application restreinte : <xliff:g id="TIME">%1$s</xliff:g>"</string>
@@ -2547,7 +2510,6 @@
<string name="battery_manager_off" msgid="673547668722420924">"Désactivé"</string>
<plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
<item quantity="one">%1$d application restreinte</item>
- <item quantity="many">%1$d apps restricted</item>
<item quantity="other">%1$d applications restreintes</item>
</plurals>
<string name="battery_header_title_alternate" msgid="8371821625994616659">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">%</xliff:g>"</font></small>""</string>
@@ -2761,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ne pas installer"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Installer quand même"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificat non installé"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Autoriser <xliff:g id="APP_NAME">%s</xliff:g> à installer des certificats sur cet appareil?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Ces certificats font en sorte que les applications et les URL ci-dessous vous reconnaissent"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ne pas autoriser"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Autoriser"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Afficher plus d\'options"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Appli de gest. de certificats"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Aucune"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Les certificats installés par cette application permettent aux applications et aux URL ci-dessous de vous reconnaître"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Retirer"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signal de composition d\'urgence"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Définir le comportement en cas d\'appel d\'urgence"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Sauvegarde"</string>
@@ -2807,7 +2778,6 @@
<string name="notification_history_dismiss" msgid="6180321217375722918">"Récemment ignorées"</string>
<plurals name="notification_history_count" formatted="false" msgid="1859304685071321991">
<item quantity="one"><xliff:g id="NUMBER_1">%d</xliff:g> notification</item>
- <item quantity="many"><xliff:g id="NUMBER_1">%d</xliff:g> notifications</item>
<item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> notifications</item>
</plurals>
<string name="sound_category_call_ringtone_vibrate_title" msgid="9090693401915654528">"Sonnerie et vibreur pour les appels"</string>
@@ -3057,23 +3027,19 @@
<string name="done_button" msgid="6269449526248267">"Terminé"</string>
<plurals name="ssl_ca_cert_dialog_title" formatted="false" msgid="5491460811755938449">
<item quantity="one">Faire confiance au certificat ou le supprimer</item>
- <item quantity="many">Trust or remove certificates</item>
<item quantity="other">Faire confiance aux certificats ou les supprimer</item>
</plurals>
<plurals name="ssl_ca_cert_info_message_device_owner" formatted="false" msgid="2788832560436163252">
<item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> a installé une autorité de certification sur votre appareil, ce qui peut leur permettre de surveiller son activité réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.</item>
- <item quantity="many"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> has installed certificate authorities on your device, which may allow them to monitor your device network activity, including emails, apps, and secure websites.\n\nFor more information about these certificates, contact your admin.</item>
<item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> a installé des autorités de certification sur votre appareil, ce qui peut leur permettre de surveiller son activité réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ces certificats, communiquez avec votre administrateur.</item>
</plurals>
<plurals name="ssl_ca_cert_info_message" formatted="false" msgid="3989916958347169622">
<item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> a installé une autorité de certification pour votre profil professionnel, ce qui peut leur permettre de surveiller l\'activité du réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, communiquez avec votre administrateur.</item>
- <item quantity="many"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> has installed certificate authorities for your work profile, which may allow them to monitor work network activity, including emails, apps, and secure websites.\n\nFor more information about these certificates, contact your admin.</item>
<item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> a installé des autorités de certification pour votre profil professionnel, ce qui peut leur permettre de surveiller l\'activité du réseau, y compris les courriels, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ces certificats, communiquez avec votre administrateur.</item>
</plurals>
<string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"Un tiers peut surveiller votre activité réseau, y compris les courriels, les applications et les sites Web sécurisés. \n\nUn certificat de confiance installé sur votre appareil rend cela possible."</string>
<plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="125941406175485894">
<item quantity="one">Vérifier le certificat</item>
- <item quantity="many">Check certificates</item>
<item quantity="other">Vérifier les certificats</item>
</plurals>
<string name="user_settings_title" msgid="6550866465409807877">"Plusieurs utilisateurs"</string>
@@ -3251,7 +3217,6 @@
<string name="dashboard_title" msgid="5660733037244683387">"Paramètres"</string>
<plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="6585075562837786847">
<item quantity="one">Afficher %d élément masqué</item>
- <item quantity="many">Show %d hidden items</item>
<item quantity="other">Afficher %d éléments masqués</item>
</plurals>
<string name="network_dashboard_title" msgid="788543070557731240">"Réseau et Internet"</string>
@@ -3403,7 +3368,7 @@
<string name="boot_sounds_title" msgid="5033062848948884111">"Activation par les sons"</string>
<string name="live_caption_title" msgid="8617086825712756983">"Transcription instantanée"</string>
<string name="live_caption_summary" msgid="2898451867595161809">"Ajouter automatiquement des sous-titres aux contenus multimédias"</string>
- <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Aucun}=1{1 horaire programmé}one{# horaire programmé}many{# schedules set}other{# horaires programmés}}"</string>
+ <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Aucun}=1{1 horaire programmé}one{# horaire programmé}other{# horaires programmés}}"</string>
<string name="zen_mode_settings_title" msgid="682676757791334259">"Ne pas déranger"</string>
<string name="zen_mode_settings_summary" msgid="6040862775514495191">"Recevez uniquement les notifications des personnes et des applications importantes"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limiter les interruptions"</string>
@@ -3474,9 +3439,9 @@
<string name="zen_mode_sound_summary_on" msgid="9077659040104989899">"Activé"</string>
<string name="zen_mode_duration_summary_always_prompt" msgid="7658172853423383037">"Toujours demander"</string>
<string name="zen_mode_duration_summary_forever" msgid="5551992961329998606">"Jusqu\'à la désactivation"</string>
- <string name="zen_mode_duration_summary_time_hours" msgid="2602655749780428308">"{count,plural, =1{1 heure}one{# heure}many{# hours}other{# heures}}"</string>
- <string name="zen_mode_duration_summary_time_minutes" msgid="5755536844016835693">"{count,plural, =1{1 minute}one{# minute}many{# minutes}other{# minutes}}"</string>
- <string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Désactivé}=1{Désactivé : 1 horaire peut s\'activer automatiquement}one{Désactivé : # horaire peut s\'activer automatiquement}many{Off / # schedules can turn on automatically}other{Désactivé : # horaires peuvent s\'activer automatiquement}}"</string>
+ <string name="zen_mode_duration_summary_time_hours" msgid="2602655749780428308">"{count,plural, =1{1 heure}one{# heure}other{# heures}}"</string>
+ <string name="zen_mode_duration_summary_time_minutes" msgid="5755536844016835693">"{count,plural, =1{1 minute}one{# minute}other{# minutes}}"</string>
+ <string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Désactivé}=1{Désactivé : 1 horaire peut s\'activer automatiquement}one{Désactivé : # horaire peut s\'activer automatiquement}other{Désactivé : # horaires peuvent s\'activer automatiquement}}"</string>
<string name="zen_category_behavior" msgid="3214056473947178507">"Ce qui peut interrompre le mode Ne pas déranger"</string>
<string name="zen_category_people" msgid="8252926021894933047">"Personnes"</string>
<string name="zen_category_apps" msgid="1167374545618451925">"Applications"</string>
@@ -3618,7 +3583,6 @@
<string name="priority_conversation_count_zero" msgid="3862289535537564713">"Aucune conversation prioritaire"</string>
<plurals name="priority_conversation_count" formatted="false" msgid="4229447176780862649">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> conversation prioritaire</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> priority conversations</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> conversations prioritaires</item>
</plurals>
<string name="important_conversations" msgid="1233893707189659401">"Conversations prioritaires"</string>
@@ -3660,12 +3624,10 @@
<string name="default_notification_assistant" msgid="243718059890346442">"Notifications adaptatives"</string>
<plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
<item quantity="one">~<xliff:g id="NUMBER_1">%d</xliff:g> notification par jour</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%d</xliff:g> notifications per day</item>
<item quantity="other">~<xliff:g id="NUMBER_1">%d</xliff:g> notifications par jour</item>
</plurals>
<plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
<item quantity="one">~<xliff:g id="NUMBER_1">%d</xliff:g> notification par semaine</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%d</xliff:g> notifications per week</item>
<item quantity="other">~<xliff:g id="NUMBER_1">%d</xliff:g> notifications par semaine</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Jamais"</string>
@@ -3674,7 +3636,6 @@
<string name="manage_notification_access_summary_zero" msgid="7528633634628627431">"Les applications ne peuvent pas lire les notifications."</string>
<plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="3703008881487586312">
<item quantity="one">%d application peut lire les notifications</item>
- <item quantity="many">%d apps can read notifications</item>
<item quantity="other">%d application peuvent lire les notifications</item>
</plurals>
<string name="notification_assistant_title" msgid="6983941403582134437">"Notifications adaptatives"</string>
@@ -3721,7 +3682,6 @@
<string name="interact_across_profiles_number_of_connected_apps_none" msgid="8573289199942092964">"Aucune application associée"</string>
<plurals name="interact_across_profiles_number_of_connected_apps" formatted="false" msgid="6991750455661974772">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> application connectée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> apps connected</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> applications connectées</item>
</plurals>
<string name="interact_across_profiles_install_work_app_title" msgid="2821669067014436056">"Pour connecter ces applications, installez <xliff:g id="NAME">%1$s</xliff:g> dans votre profil professionnel"</string>
@@ -3738,7 +3698,6 @@
<string name="notification_channels_other" msgid="18159805343647908">"Autre"</string>
<plurals name="notification_group_summary" formatted="false" msgid="483490958130993160">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> catégorie</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> categories</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> catégories</item>
</plurals>
<string name="no_channels" msgid="4716199078612071915">"Cette application n\'a publié aucune notification"</string>
@@ -3747,12 +3706,10 @@
<string name="app_notification_listing_summary_zero" msgid="2988400013221120744">"Activé pour toutes les applications"</string>
<plurals name="app_notification_listing_summary_others" formatted="false" msgid="1506127395400503717">
<item quantity="one">Désactivé pour <xliff:g id="COUNT_1">%d</xliff:g> application</item>
- <item quantity="many">Off for <xliff:g id="COUNT_1">%d</xliff:g> apps</item>
<item quantity="other">Désactivé pour <xliff:g id="COUNT_1">%d</xliff:g> applications</item>
</plurals>
<plurals name="deleted_channels" formatted="false" msgid="5963473421547029532">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> catégorie supprimée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> categories deleted</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> catégories supprimées</item>
</plurals>
<string name="notification_toggle_on" msgid="1624283327379059003">"Activées"</string>
@@ -3825,7 +3782,7 @@
<string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Toutes les conversations"</string>
<string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversations prioritaires"</string>
<string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Aucune"</string>
- <string name="zen_mode_conversations_count" msgid="3199310723073707153">"{count,plural, =0{Aucune}=1{1 conversation}one{# conversation}many{# conversations}other{# conversations}}"</string>
+ <string name="zen_mode_conversations_count" msgid="3199310723073707153">"{count,plural, =0{Aucune}=1{1 conversation}one{# conversation}other{# conversations}}"</string>
<string name="zen_mode_people_calls_messages_section_title" msgid="6815202112413762206">"Qui peut provoquer des interruptions"</string>
<string name="zen_mode_calls_title" msgid="2078578043677037740">"Appels"</string>
<string name="zen_mode_calls" msgid="7653245854493631095">"Appels"</string>
@@ -3834,7 +3791,7 @@
<string name="zen_mode_calls_footer" msgid="2008079711083701243">"Pour vous assurer que les appels autorisés émettent un son, vérifiez si votre appareil est réglé pour sonner"</string>
<string name="zen_mode_custom_calls_footer" msgid="6521283204577441053">"Pendant « <xliff:g id="SCHEDULE_NAME">%1$s</xliff:g> », les appels entrants sont bloqués. Vous pouvez régler les paramètres pour permettre à vos amis, à votre famille ou à d\'autres contacts de vous joindre."</string>
<string name="zen_mode_starred_contacts_title" msgid="630299631659575589">"Contacts marqués d\'une étoile"</string>
- <string name="zen_mode_starred_contacts_summary_contacts" msgid="1629467178444895094">"{count,plural,offset:2 =0{Aucun}=1{{contact_1}}=2{{contact_1} et {contact_2}}=3{{contact_1}, {contact_2} et {contact_3}}one{{contact_1}, {contact_2} et # autre}many{{contact_1}, {contact_2}, and # others}other{{contact_1}, {contact_2} et # autres}}"</string>
+ <string name="zen_mode_starred_contacts_summary_contacts" msgid="1629467178444895094">"{count,plural,offset:2 =0{Aucun}=1{{contact_1}}=2{{contact_1} et {contact_2}}=3{{contact_1}, {contact_2} et {contact_3}}one{{contact_1}, {contact_2} et # autre}other{{contact_1}, {contact_2} et # autres}}"</string>
<string name="zen_mode_starred_contacts_empty_name" msgid="2906404745550293688">"(Sans nom)"</string>
<string name="zen_mode_messages" msgid="7315084748885170585">"Messages"</string>
<string name="zen_mode_messages_list" msgid="5431014101342361882">"messages"</string>
@@ -3844,7 +3801,7 @@
<string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"Pendant « <xliff:g id="SCHEDULE_NAME">%1$s</xliff:g> », les messages entrants sont bloqués. Vous pouvez régler les paramètres pour permettre à vos amis, à votre famille ou à d\'autres contacts de vous joindre."</string>
<string name="zen_mode_all_messages_summary" msgid="3756267858343104554">"Tous les messages peuvent vous parvenir"</string>
<string name="zen_mode_all_calls_summary" msgid="7337907849083824698">"Tous les appels peuvent vous parvenir"</string>
- <string name="zen_mode_contacts_count" msgid="6568631261119795799">"{count,plural, =0{Aucun}=1{1 contact}one{# contact}many{# contacts}other{# contacts}}"</string>
+ <string name="zen_mode_contacts_count" msgid="6568631261119795799">"{count,plural, =0{Aucun}=1{1 contact}one{# contact}other{# contacts}}"</string>
<string name="zen_mode_from_anyone" msgid="6027004263046694174">"Tout le monde"</string>
<string name="zen_mode_from_contacts" msgid="2989933306317064818">"Contacts"</string>
<string name="zen_mode_from_starred" msgid="8616516644241652287">"Contacts marqués d\'une étoile"</string>
@@ -3882,13 +3839,13 @@
<string name="zen_mode_bypassing_apps_summary_all" msgid="4684544706511555744">"Toutes les notifications"</string>
<string name="zen_mode_bypassing_apps_summary_some" msgid="5315750826830358230">"Quelques notifications"</string>
<string name="zen_mode_bypassing_apps_footer" msgid="1454862989340760124">"Les personnes sélectionnées peuvent toujours vous joindre, même si vous n\'autorisez pas les applications à provoquer des interruptions"</string>
- <string name="zen_mode_bypassing_apps_subtext" msgid="5258652366929842710">"{count,plural,offset:2 =0{Aucune application ne peut provoquer d\'interruption}=1{{app_1} peut provoquer des interruptions}=2{{app_1} et {app_2} peuvent provoquer des interruptions}=3{{app_1}, {app_2} et {app_3} peuvent provoquer des interruptions}one{{app_1}, {app_2} et # autre application peuvent provoquer des interruptions}many{{app_1}, {app_2}, and # more can interrupt}other{{app_1}, {app_2} et # autres applications peuvent provoquer des interruptions}}"</string>
+ <string name="zen_mode_bypassing_apps_subtext" msgid="5258652366929842710">"{count,plural,offset:2 =0{Aucune application ne peut provoquer d\'interruption}=1{{app_1} peut provoquer des interruptions}=2{{app_1} et {app_2} peuvent provoquer des interruptions}=3{{app_1}, {app_2} et {app_3} peuvent provoquer des interruptions}one{{app_1}, {app_2} et # autre application peuvent provoquer des interruptions}other{{app_1}, {app_2} et # autres applications peuvent provoquer des interruptions}}"</string>
<string name="zen_mode_bypassing_apps_title" msgid="371050263563164059">"Applications"</string>
<string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Toutes les notifications"</string>
<string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Quelques notifications"</string>
<string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifications qui peuvent provoquer des interruptions"</string>
<string name="zen_mode_bypassing_app_channels_toggle_all" msgid="1449462656358219116">"Autoriser toutes les notifications"</string>
- <string name="zen_mode_other_sounds_summary" msgid="8784400697494837032">"{count,plural,offset:2 =0{Rien ne peut provoquer d\'interruption}=1{{sound_category_1} peut provoquer des interruptions}=2{{sound_category_1} et {sound_category_2} peuvent provoquer des interruptions}=3{{sound_category_1}, {sound_category_2} et {sound_category_3} peuvent provoquer des interruptions}one{{sound_category_1}, {sound_category_2} et # autre application peuvent provoquer des interruptions}many{{sound_category_1}, {sound_category_2}, and # more can interrupt}other{{sound_category_1}, {sound_category_2} et # autres applications peuvent provoquer des interruptions}}"</string>
+ <string name="zen_mode_other_sounds_summary" msgid="8784400697494837032">"{count,plural,offset:2 =0{Rien ne peut provoquer d\'interruption}=1{{sound_category_1} peut provoquer des interruptions}=2{{sound_category_1} et {sound_category_2} peuvent provoquer des interruptions}=3{{sound_category_1}, {sound_category_2} et {sound_category_3} peuvent provoquer des interruptions}one{{sound_category_1}, {sound_category_2} et # autre application peuvent provoquer des interruptions}other{{sound_category_1}, {sound_category_2} et # autres applications peuvent provoquer des interruptions}}"</string>
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Rien ne peut provoquer d\'interruption"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Personne ne peut provoquer d\'interruption"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Certaines personnes peuvent provoquer des interruptions"</string>
@@ -3914,12 +3871,10 @@
<string name="zen_mode_summary_alarms_only_indefinite" msgid="910047326128154945">"Ne recevoir que les alarmes sans limite de temps"</string>
<plurals name="zen_mode_summary_alarms_only_by_minute" formatted="false" msgid="1900512966361163390">
<item quantity="one">Alarmes seulement pendant <xliff:g id="DURATION">%1$d</xliff:g> minute, jusqu\'à <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
- <item quantity="many">Change to alarms only for <xliff:g id="DURATION">%1$d</xliff:g> minutes (until <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g>)</item>
<item quantity="other">Alarmes seulement pendant <xliff:g id="DURATION">%1$d</xliff:g> minutes, jusqu\'à <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
</plurals>
<plurals name="zen_mode_summary_alarms_only_by_hour" formatted="false" msgid="955991428001659124">
<item quantity="one">Alarmes seulement pendant <xliff:g id="DURATION">%1$d</xliff:g> heure, jusqu\'à <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
- <item quantity="many">Change to alarms only for <xliff:g id="DURATION">%1$d</xliff:g> hours until <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
<item quantity="other">Alarmes seulement pendant <xliff:g id="DURATION">%1$d</xliff:g> heures, jusqu\'à <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
</plurals>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ne recevoir que les alarmes jusqu\'à <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
@@ -4005,22 +3960,18 @@
<string name="notification_summary_channel" msgid="8459033623057872803">"<xliff:g id="CHANNEL_NAME">%1$s</xliff:g> • <xliff:g id="GROUP_NAME">%2$s</xliff:g>"</string>
<plurals name="notifications_categories_off" formatted="false" msgid="1385401442703692986">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> catégorie désactivée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> categories turned off</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> catégories désactivées</item>
</plurals>
<plurals name="permissions_summary" formatted="false" msgid="5015472550875144481">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> autorisations accordées</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> permissions granted</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> autorisations accordées</item>
</plurals>
<plurals name="runtime_permissions_summary" formatted="false" msgid="2091022049141391855">
<item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> autorisation accordée sur <xliff:g id="COUNT_3">%d</xliff:g></item>
- <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> of <xliff:g id="COUNT_3">%d</xliff:g> permissions granted</item>
<item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> autorisations accordées sur <xliff:g id="COUNT_3">%d</xliff:g></item>
</plurals>
<plurals name="runtime_permissions_additional_count" formatted="false" msgid="5888624648943937645">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> autorisation supplémentaire</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> additional permissions</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> autorisations supplémentaires</item>
</plurals>
<string name="runtime_permissions_summary_no_permissions_granted" msgid="7456745929035665029">"Aucune autorisation accordée"</string>
@@ -4050,7 +4001,6 @@
<string name="domain_urls_apps_summary_off" msgid="2534980824850890416">"Aucune application ouvrant des liens compatibles"</string>
<plurals name="domain_urls_apps_summary_on" formatted="false" msgid="7864816862441985323">
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> application ouvrant des liens compatibles</item>
- <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> apps opening supported links</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> applications ouvrant des liens compatibles</item>
</plurals>
<string name="app_link_open_always" msgid="9167065494930657503">"Autoriser l\'application à gérer les liens pris en charge"</string>
@@ -4058,7 +4008,6 @@
<string name="app_link_open_never" msgid="5299808605386052350">"Ne pas autoriser l\'application à ouvrir les liens"</string>
<plurals name="app_link_open_always_summary" formatted="false" msgid="1816161439007251694">
<item quantity="one">L\'application revendique <xliff:g id="COUNT_1">%d</xliff:g> lien</item>
- <item quantity="many">App claims to handle <xliff:g id="COUNT_1">%d</xliff:g> links</item>
<item quantity="other">L\'application revendique <xliff:g id="COUNT_1">%d</xliff:g> liens</item>
</plurals>
<string name="open_supported_links_footer" msgid="3188808142432787933">"L\'application réclame les liens suivants :"</string>
@@ -4101,12 +4050,10 @@
<string name="hide_extra_apps" msgid="7313907836289865123">"Afficher utilisation des applis"</string>
<plurals name="power_high_usage_summary" formatted="false" msgid="573433136005336970">
<item quantity="one"><xliff:g id="NUMBER">%2$d</xliff:g> application se comporte de manière anormale</item>
- <item quantity="many"><xliff:g id="NUMBER">%2$d</xliff:g> apps behaving abnormally</item>
<item quantity="other"><xliff:g id="NUMBER">%2$d</xliff:g> applications se comportent de manière anormale</item>
</plurals>
<plurals name="power_high_usage_title" formatted="false" msgid="8013115866788425817">
<item quantity="one">Application qui draine la pile</item>
- <item quantity="many">Apps draining battery</item>
<item quantity="other">Applications qui drainent la pile</item>
</plurals>
<string name="high_power_filter_on" msgid="447849271630431531">"Non optimisée"</string>
@@ -4184,7 +4131,6 @@
<string name="memory_usage_apps" msgid="5776108502569850579">"Mémoire utilisée par les applications"</string>
<plurals name="memory_usage_apps_summary" formatted="false" msgid="1355637088533572208">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> application a utilisé de la mémoire au cours de la période suivante : <xliff:g id="DURATION_1">%2$s</xliff:g></item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> apps used memory in the last <xliff:g id="DURATION_1">%2$s</xliff:g></item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> applications ont utilisé de la mémoire au cours de la période suivante : <xliff:g id="DURATION_1">%2$s</xliff:g></item>
</plurals>
<string name="running_frequency" msgid="7260225121706316639">"Fréquence"</string>
@@ -4259,7 +4205,6 @@
<string name="data_usage_wifi_format" msgid="7644390582649568117">"<xliff:g id="AMOUNT">^1</xliff:g> utilisés sur Wi‑Fi"</string>
<plurals name="notification_summary" formatted="false" msgid="7638388920823212470">
<item quantity="one">Désactivé pour <xliff:g id="COUNT">%d</xliff:g> application</item>
- <item quantity="many">Off for <xliff:g id="COUNT">%d</xliff:g> apps</item>
<item quantity="other">Désactivé pour <xliff:g id="COUNT">%d</xliff:g> applications</item>
</plurals>
<string name="notification_summary_none" msgid="9179312319023988089">"Activées pour toutes les applications"</string>
@@ -4326,12 +4271,10 @@
<string name="suggestions_more_title" msgid="240124526378997009">"+<xliff:g id="ID_1">%1$d</xliff:g> autre(s)"</string>
<plurals name="suggestions_collapsed_title" formatted="false" msgid="5023679825210836444">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> suggestion</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> suggestions</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> suggestions</item>
</plurals>
<plurals name="suggestions_collapsed_summary" formatted="false" msgid="3789011332018516832">
<item quantity="one">+<xliff:g id="COUNT">%1$d</xliff:g> suggestion</item>
- <item quantity="many">+<xliff:g id="COUNT">%1$d</xliff:g> suggestions</item>
<item quantity="other">+<xliff:g id="COUNT">%1$d</xliff:g> suggestions</item>
</plurals>
<string name="suggestion_remove" msgid="6753986344585367776">"Supprimer"</string>
@@ -4361,7 +4304,6 @@
<string name="network_restrictions" msgid="8385824604048229846">"Restrictions réseau"</string>
<plurals name="network_restrictions_summary" formatted="false" msgid="3875128958788008975">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restriction</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> restrictions</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restrictions</item>
</plurals>
<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>
@@ -4377,7 +4319,6 @@
<string name="data_usage_other_apps" msgid="5649047093607329537">"Autres applications incluses dans l\'utilisation"</string>
<plurals name="data_saver_unrestricted_summary" formatted="false" msgid="3316296488378947221">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> application est autorisée à ignorer les restrictions lorsque la fonction Économiseur de données est activée</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> apps allowed to use unrestricted data when Data Saver is on</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> applications sont autorisées à ignorer les restrictions lorsque la fonction Économiseur de données est activée</item>
</plurals>
<string name="data_usage_title" msgid="4039024073687469094">"Données primaires"</string>
@@ -4390,7 +4331,6 @@
<string name="data_usage_chart_no_data_content_description" msgid="5481968839079467231">"Aucune donnée durant cette période"</string>
<plurals name="billing_cycle_days_left" formatted="false" msgid="661792524671718753">
<item quantity="one">Il reste %d jour</item>
- <item quantity="many">%d days left</item>
<item quantity="other">Il reste %d jours</item>
</plurals>
<string name="billing_cycle_none_left" msgid="1694844019159277504">"Aucun temps restant"</string>
@@ -4464,7 +4404,6 @@
<string name="special_access" msgid="1767980727423395147">"Accès spéciaux applis"</string>
<plurals name="special_access_summary" formatted="false" msgid="4995506406763570815">
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> application peut utiliser les données sans restriction</item>
- <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> apps can use unrestricted data</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> applications peuvent utiliser les données sans restriction</item>
</plurals>
<string name="special_access_more" msgid="132919514147475846">"En voir plus"</string>
@@ -4503,17 +4442,14 @@
<string name="cross_profile_calendar_summary" msgid="8856185206722860069">"Afficher les événements professionnels dans l\'agenda personnel"</string>
<plurals name="hours" formatted="false" msgid="1853396353451635458">
<item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> heure</item>
- <item quantity="many"><xliff:g id="NUMBER">%s</xliff:g> hours</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> heures</item>
</plurals>
<plurals name="minutes" formatted="false" msgid="6244503272924425418">
<item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> minute</item>
- <item quantity="many"><xliff:g id="NUMBER">%s</xliff:g> minutes</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> minutes</item>
</plurals>
<plurals name="seconds" formatted="false" msgid="4237020272336995370">
<item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> seconde</item>
- <item quantity="many"><xliff:g id="NUMBER">%s</xliff:g> seconds</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> secondes</item>
</plurals>
<string name="automatic_storage_manager_settings" msgid="519158151463974656">"Gérer l\'espace de stockage"</string>
@@ -4638,7 +4574,6 @@
<string name="enterprise_privacy_apps_count_estimation_info" msgid="7959907857710107792">"Le nombre d\'applications est estimé. Il peut exclure les applications installées à partir d\'une source autre que la boutique Google Play Store."</string>
<plurals name="enterprise_privacy_number_packages_lower_bound" formatted="false" msgid="5403847001419529018">
<item quantity="one">Minimum de <xliff:g id="COUNT_1">%d</xliff:g> application</item>
- <item quantity="many">Minimum <xliff:g id="COUNT_1">%d</xliff:g> apps</item>
<item quantity="other">Minimum de <xliff:g id="COUNT_1">%d</xliff:g> applications</item>
</plurals>
<string name="enterprise_privacy_location_access" msgid="8023838718108456971">"Autorisations de localisation"</string>
@@ -4647,7 +4582,6 @@
<string name="enterprise_privacy_enterprise_set_default_apps" msgid="7498546659083996300">"Applications par défaut"</string>
<plurals name="enterprise_privacy_number_packages" formatted="false" msgid="8568544906431825430">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> application</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> apps</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> applications</item>
</plurals>
<string name="enterprise_privacy_input_method" msgid="3278314982700662246">"Clavier par défaut"</string>
@@ -4661,7 +4595,6 @@
<string name="enterprise_privacy_ca_certs_work" msgid="4318941788592655561">"Certificats de confiance installés dans votre profil professionnel"</string>
<plurals name="enterprise_privacy_number_ca_certs" formatted="false" msgid="6459725295322004179">
<item quantity="one">Minimum de <xliff:g id="COUNT_1">%d</xliff:g> certificat CA</item>
- <item quantity="many">Minimum <xliff:g id="COUNT_1">%d</xliff:g> CA certificates</item>
<item quantity="other">Minimum de <xliff:g id="COUNT_1">%d</xliff:g> certificats CA</item>
</plurals>
<string name="enterprise_privacy_lock_device" msgid="464054894363899866">"L\'administrateur peut verrouiller l\'appareil et réinitialiser le mot de passe"</string>
@@ -4670,7 +4603,6 @@
<string name="enterprise_privacy_failed_password_wipe_work" msgid="2537582942554484170">"Nombre maximal de tentatives d\'entrée du mot de passe avant de supprimer les données du profil professionnel"</string>
<plurals name="enterprise_privacy_number_failed_password_wipe" formatted="false" msgid="8811973918944217791">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> tentative</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> attempts</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> tentatives</item>
</plurals>
<string name="do_disclosure_generic" msgid="3067459392402324538">"Cet appareil est géré par votre organisation."</string>
@@ -4679,20 +4611,17 @@
<string name="learn_more" msgid="3534519107947510952">"En savoir plus"</string>
<plurals name="default_camera_app_title" formatted="false" msgid="8112432929729136399">
<item quantity="one">Application d\'appareil photo</item>
- <item quantity="many">Camera apps</item>
<item quantity="other">Applications d\'appareil photo</item>
</plurals>
<string name="default_calendar_app_title" msgid="1870095225089706093">"Application d\'agenda"</string>
<string name="default_contacts_app_title" msgid="7740028900741944569">"Application de contacts"</string>
<plurals name="default_email_app_title" formatted="false" msgid="8338194872609410234">
<item quantity="one">Application de client de courriel</item>
- <item quantity="many">Email client apps</item>
<item quantity="other">Applications de client de courriel</item>
</plurals>
<string name="default_map_app_title" msgid="7569231732944853320">"Application de carte"</string>
<plurals name="default_phone_app_title" formatted="false" msgid="4222188821845826493">
<item quantity="one">Application de téléphone</item>
- <item quantity="many">Phone apps</item>
<item quantity="other">Applications de téléphone</item>
</plurals>
<string name="app_names_concatenation_template_2" msgid="8320181646458855457">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g> et <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
@@ -4722,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Nombre maximal d\'ensembles de données"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Réinitialiser aux valeurs par défaut"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Les options de remplissage automatique du concepteur ont été réinitialisées"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forcer les mesures GNSS complètes"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Faire le suivi de toutes les constellations et les fréquences GNSS sans cycle de tâches"</string>
<string name="device_theme" msgid="5027604586494772471">"Thème de l\'appareil"</string>
<string name="default_theme" msgid="4815428567082263639">"Par défaut"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nom du réseau"</string>
@@ -4738,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Suspendre les notifications pour rester concentré"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Cette fonctionnalité n\'est pas accessible"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Cette fonctionnalité a été désactivée, car elle ralentit votre téléphone"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forcer les mesures GNSS complètes"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Faire le suivi de toutes les constellations et les fréquences GNSS sans cycle de tâches"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Toujours afficher la fenêtre de plantage"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Afficher la fenêtre chaque fois qu\'une application plante"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Sélectionnez l\'application compatible avec ANGLE"</string>
@@ -4807,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Activé (muet)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Désactivé"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Infos sur le réseau"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Le nom de votre appareil est visible pour les applications de votre téléphone. Il est aussi possible que d\'autres personnes le voient lorsque vous vous connectez à des appareils Bluetooth ou lorsque vous configurez un point d\'accès Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Le nom de votre appareil est visible pour les applications de votre téléphone. Il est aussi possible que d\'autres personnes le voient lorsque vous vous connectez à des appareils Bluetooth ou à un réseau Wi-Fi, ou lorsque vous configurez un point d\'accès Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Appareils"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Tous les paramètres"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggestions"</string>
@@ -4885,7 +4820,6 @@
<string name="mobile_network_summary_add_a_network" msgid="9079866102827526779">"Ajouter un réseau"</string>
<plurals name="mobile_network_summary_count" formatted="false" msgid="5173633860800230925">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> carte SIM</item>
- <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> SIMs</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> cartes SIM</item>
</plurals>
<string name="default_for_calls" msgid="2788950217176988034">"Valeur par défaut pour les appels"</string>
@@ -4968,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Impossible d\'activer la carte SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Retirez la carte SIM, puis réinsérez-la. Si le problème persiste, redémarrez votre appareil."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Réessayer d\'activer la carte SIM. Si le problème persiste, redémarrez votre appareil."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activation du réseau"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> est actif"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Touchez l\'écran pour mettre à jour les paramètres de la carte SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Carte SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Effacer ce module SIM téléchargé?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Si vous effacez ce module SIM, le service de <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> sera retiré de cet appareil.\n\nLe service de <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ne sera pas annulé."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Effacer"</string>
@@ -5016,13 +4954,11 @@
<string name="permission_bar_chart_details" msgid="5816698018592357088">"Tout afficher dans le tableau de bord"</string>
<plurals name="permission_bar_chart_label" formatted="false" msgid="4853396794340896078">
<item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> application</item>
- <item quantity="many"><xliff:g id="NUMBER">%s</xliff:g> apps</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> applications</item>
</plurals>
<string name="accessibility_usage_title" msgid="9190967143518779145">"Usage des fonctions d\'accessibilité"</string>
<plurals name="accessibility_usage_summary" formatted="false" msgid="6910643986958263005">
<item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> application a l\'accès complet à votre appareil</item>
- <item quantity="many"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps have full access to your device</item>
<item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> applications ont l\'accès complet à votre appareil</item>
</plurals>
<string name="media_output_panel_title" msgid="5920946795078065159">"Changer de sortie"</string>
@@ -5122,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"La fonctionnalité d\'appels Wi-Fi vous permet d\'effectuer des appels sur des réseaux autres que des réseaux cellulaires, comme des réseaux Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Appels"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"Messages texte"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"préféré"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"appels préférés"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"messages texte préférés"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"non accessible"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Aucune carte SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Préférences"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Se connecter aux réseaux publics"</string>
<string name="keywords_internet" msgid="7674082764898690310">"connexion réseau, internet, sans fil, données, wifi, wi-fi, wi fi, cellulaire, mobile, fournisseur cellulaire, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Voir réseaux sécuritaires pour les avions"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Désactiver le mode Avion"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Cette fonctionnalité n\'est pas accessible parce que le mode Nuit est activé"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"L\'importance de la notification a bien été réinitialisée."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Applications"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 0632fa0..9d3317c 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -25,7 +25,6 @@
<string name="device_info_default" msgid="1406619232867343310">"Inconnu"</string>
<plurals name="show_dev_countdown" formatted="false" msgid="1646187747875476269">
<item quantity="one">Plus que <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> étape pour devenir développeur.</item>
- <item quantity="many">You are now <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> steps away from being a developer.</item>
<item quantity="other">Plus que <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> étapes pour devenir développeur.</item>
</plurals>
<string name="show_dev_on" msgid="2840850085134853754">"Vous êtes désormais un développeur !"</string>
@@ -209,7 +208,6 @@
<string name="add_a_language" msgid="2126220398077503271">"Ajouter une langue"</string>
<plurals name="dlg_remove_locales_title" formatted="false" msgid="2845515796732609837">
<item quantity="one">Supprimer la langue sélectionnée ?</item>
- <item quantity="many">Remove selected languages?</item>
<item quantity="other">Supprimer les langues sélectionnées ?</item>
</plurals>
<string name="dlg_remove_locales_message" msgid="8110560091134252067">"Le texte s\'affichera dans une autre langue."</string>
@@ -302,7 +300,6 @@
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Désactivé"</string>
<plurals name="location_settings_summary_location_on" formatted="false" msgid="1019959038518185676">
<item quantity="one">Activée - <xliff:g id="COUNT_1">%1$d</xliff:g> application a accès à votre position</item>
- <item quantity="many">On - <xliff:g id="COUNT_1">%1$d</xliff:g> apps have access to location</item>
<item quantity="other">Activée - <xliff:g id="COUNT_1">%1$d</xliff:g> applications ont accès à votre position</item>
</plurals>
<string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"Chargement…"</string>
@@ -401,7 +398,6 @@
<string name="fingerprint_enable_keyguard_toggle_title" msgid="5451094461919440992">"verrouillage de l\'écran"</string>
<plurals name="security_settings_fingerprint_preference_summary" formatted="false" msgid="988602245530967106">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> empreinte digitale configurée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> fingerprints set up</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> empreintes digitales configurées</item>
</plurals>
<string name="security_settings_fingerprint_preference_summary_none" msgid="1044059475710838504"></string>
@@ -628,23 +624,19 @@
<string name="lock_failed_attempts_now_wiping_dialog_dismiss" msgid="170155081899679669">"Ignorer"</string>
<plurals name="lockpassword_password_too_short" formatted="false" msgid="2192234965414232157">
<item quantity="one">Le mot de passe doit comporter au moins <xliff:g id="COUNT_1">%d</xliff:g> caractère</item>
- <item quantity="many">Must be at least <xliff:g id="COUNT_1">%d</xliff:g> characters</item>
<item quantity="other">Le mot de passe doit comporter au moins <xliff:g id="COUNT_1">%d</xliff:g> caractères</item>
</plurals>
<plurals name="lockpassword_pin_too_short" formatted="false" msgid="6817086810898414162">
<item quantity="one">Le code doit comporter au moins <xliff:g id="COUNT_1">%d</xliff:g> chiffre</item>
- <item quantity="many">PIN must be at least <xliff:g id="COUNT_1">%d</xliff:g> digits</item>
<item quantity="other">Le code doit comporter au moins <xliff:g id="COUNT_1">%d</xliff:g> chiffres</item>
</plurals>
<string name="lockpassword_continue_label" msgid="2507983991979547816">"Continuer"</string>
<plurals name="lockpassword_password_too_long" formatted="false" msgid="8118091957172967677">
<item quantity="one">Le mot de passe doit contenir moins de <xliff:g id="NUMBER_1">%d</xliff:g> caractère</item>
- <item quantity="many">Must be fewer than <xliff:g id="NUMBER_1">%d</xliff:g> characters</item>
<item quantity="other">Le mot de passe doit contenir moins de <xliff:g id="NUMBER_1">%d</xliff:g> caractères</item>
</plurals>
<plurals name="lockpassword_pin_too_long" formatted="false" msgid="8706992338720310765">
<item quantity="one">Le code doit contenir moins de <xliff:g id="NUMBER_1">%d</xliff:g> chiffre</item>
- <item quantity="many">Must be fewer than <xliff:g id="NUMBER_1">%d</xliff:g> digits</item>
<item quantity="other">Le code doit contenir moins de <xliff:g id="NUMBER_1">%d</xliff:g> chiffres</item>
</plurals>
<string name="lockpassword_pin_recently_used" msgid="6650277060998923465">"L\'administrateur de l\'appareil n\'autorise pas l\'utilisation d\'un code récent"</string>
@@ -654,37 +646,30 @@
<string name="lockpassword_password_requires_symbol" msgid="6178512486154701321">"Veuillez inclure au moins un symbole."</string>
<plurals name="lockpassword_password_requires_letters" formatted="false" msgid="2385916409676839024">
<item quantity="one">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> lettre</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> letters</item>
<item quantity="other">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> lettres</item>
</plurals>
<plurals name="lockpassword_password_requires_lowercase" formatted="false" msgid="2057467885488612701">
<item quantity="one">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> lettre minuscule</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> lowercase letters</item>
<item quantity="other">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> lettres minuscules</item>
</plurals>
<plurals name="lockpassword_password_requires_uppercase" formatted="false" msgid="4541266279643052025">
<item quantity="one">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> lettre majuscule</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> uppercase letters</item>
<item quantity="other">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> lettres majuscules</item>
</plurals>
<plurals name="lockpassword_password_requires_numeric" formatted="false" msgid="70617964591376248">
<item quantity="one">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> chiffre</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> numerical digits</item>
<item quantity="other">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> chiffres</item>
</plurals>
<plurals name="lockpassword_password_requires_symbols" formatted="false" msgid="7981236881269921943">
<item quantity="one">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> symbole spécial</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> special symbols</item>
<item quantity="other">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> symboles spéciaux</item>
</plurals>
<plurals name="lockpassword_password_requires_nonletter" formatted="false" msgid="1567877061888948467">
<item quantity="one">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> caractère autre qu\'une lettre</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> non-letter characters</item>
<item quantity="other">Le mot de passe doit comporter au moins <xliff:g id="COUNT">%d</xliff:g> caractères autre qu\'une lettre</item>
</plurals>
<plurals name="lockpassword_password_requires_nonnumerical" formatted="false" msgid="5056743974888384475">
<item quantity="one">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> caractère non numérique</item>
- <item quantity="many">Must contain at least <xliff:g id="COUNT">%d</xliff:g> non-numerical characters</item>
<item quantity="other">Doit contenir au moins <xliff:g id="COUNT">%d</xliff:g> caractères non numériques</item>
</plurals>
<string name="lockpassword_password_recently_used" msgid="5341218079730167191">"L\'administrateur de l\'appareil n\'autorise pas l\'utilisation d\'un mot de passe récent"</string>
@@ -700,7 +685,6 @@
<string name="number_of_device_admins_none" msgid="152926922020437312">"Aucune application active"</string>
<plurals name="number_of_device_admins" formatted="false" msgid="2528735319390151989">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> application active</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> active apps</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> applications actives</item>
</plurals>
<string name="manage_trust_agents" msgid="6410149930029992356">"Agents de confiance"</string>
@@ -708,7 +692,6 @@
<string name="manage_trust_agents_summary" msgid="6423843123607674286">"Aucun"</string>
<plurals name="manage_trust_agents_summary_on" formatted="false" msgid="5438047398376802735">
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> agent de confiance actif</item>
- <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> active trust agents</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> agents de confiance actifs</item>
</plurals>
<string name="bluetooth_quick_toggle_title" msgid="5955341060378240781">"Bluetooth"</string>
@@ -1017,17 +1000,14 @@
<string name="wifi_forget_dialog_message" msgid="8419499588321940243">"Tous les mots de passe pour ce réseau seront supprimés"</string>
<plurals name="wifi_saved_access_points_summary" formatted="false" msgid="2802436466732147888">
<item quantity="one">%d réseau</item>
- <item quantity="many">%d networks</item>
<item quantity="other">%d réseaux</item>
</plurals>
<plurals name="wifi_saved_passpoint_access_points_summary" formatted="false" msgid="5802057518058840450">
<item quantity="one">%d abonnement</item>
- <item quantity="many">%d subscriptions</item>
<item quantity="other">%d abonnements</item>
</plurals>
<plurals name="wifi_saved_all_access_points_summary" formatted="false" msgid="5125849180309374451">
<item quantity="one">%d réseau et abonnement</item>
- <item quantity="many">%d networks & subscriptions</item>
<item quantity="other">%d réseaux et abonnements</item>
</plurals>
<string name="wifi_advanced_titlebar" msgid="1234150304285575798">"Paramètres Wi-Fi avancés"</string>
@@ -1042,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Adresses IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Réseaux enregistrés"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonnements"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Autres réseaux"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Paramètres IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Les paramètres Wi-Fi avancés ne sont pas disponibles pour cet utilisateur."</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Enregistrer"</string>
@@ -1360,7 +1339,6 @@
<string name="wrong_pin_code_pukked" msgid="3414172752791445033">"Code PIN de la carte SIM incorrect. Vous devez désormais contacter votre opérateur pour déverrouiller votre appareil."</string>
<plurals name="wrong_pin_code" formatted="false" msgid="4054088588731305475">
<item quantity="one">Code PIN de la carte SIM erroné. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentative.</item>
- <item quantity="many">Incorrect SIM PIN code, you have <xliff:g id="NUMBER_1">%d</xliff:g> remaining attempts.</item>
<item quantity="other">Code PIN de la carte SIM erroné. Il vous reste <xliff:g id="NUMBER_1">%d</xliff:g> tentatives.</item>
</plurals>
<string name="wrong_pin_code_one" msgid="6924852214263071441">"Code PIN de la carte SIM incorrect. Il vous reste 1 tentative. Après cela, vous devrez contacter votre opérateur pour déverrouiller votre appareil."</string>
@@ -1618,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Supprimer l\'APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Nouvel APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Enregistrer"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Annuler"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Annuler"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Le champ \"Nom\" est obligatoire."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"L\'APN est obligatoire."</string>
@@ -1742,7 +1720,6 @@
<string name="location_app_permission_summary_location_off" msgid="2711822936853500335">"La localisation est désactivée"</string>
<plurals name="location_app_permission_summary_location_on" formatted="false" msgid="8286873148858526214">
<item quantity="one"> <xliff:g id="PERMITTED_LOCATION_APP_COUNT_2">%1$d</xliff:g> application sur <xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g> a accès à votre position</item>
- <item quantity="many"> <xliff:g id="PERMITTED_LOCATION_APP_COUNT_2">%1$d</xliff:g> of <xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g> apps have access to location</item>
<item quantity="other"> <xliff:g id="PERMITTED_LOCATION_APP_COUNT_2">%1$d</xliff:g> applications sur <xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g> ont accès à votre position</item>
</plurals>
<string name="location_category_recent_location_access" msgid="7880996987927703141">"Accès récent à votre position"</string>
@@ -1903,7 +1880,6 @@
<string name="recent_app_category_title" msgid="189758417804427533">"Applications ouvertes récemment"</string>
<plurals name="see_all_apps_title" formatted="false" msgid="6864581406735745400">
<item quantity="one">Afficher l\'application</item>
- <item quantity="many">See all %1$d apps</item>
<item quantity="other">Afficher les %1$d applications</item>
</plurals>
<string name="forgot_password_title" msgid="3967873480875239885">"Contacter votre administrateur informatique"</string>
@@ -1924,7 +1900,6 @@
<string name="cache_size_label" msgid="313456088966822757">"Cache"</string>
<plurals name="uri_permissions_text" formatted="false" msgid="8212425823423508096">
<item quantity="one">%d élément</item>
- <item quantity="many">%d items</item>
<item quantity="other">%d éléments</item>
</plurals>
<string name="clear_uri_btn_text" msgid="4828117421162495134">"Supprimer l\'accès"</string>
@@ -2288,7 +2263,6 @@
<string name="accessibility_hearingaid_active_device_summary" msgid="509703438222873967">"Appareil \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" actif"</string>
<plurals name="show_number_hearingaid_count" formatted="false" msgid="776000580683647556">
<item quantity="one"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> appareil auditif enregistré</item>
- <item quantity="many"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> saved hearing aids</item>
<item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> appareils auditifs enregistrés</item>
</plurals>
<string name="accessibility_summary_shortcut_enabled" msgid="4030427268146752644">"Raccourci activé"</string>
@@ -2308,22 +2282,18 @@
<string name="daltonizer_mode_tritanomaly_summary" msgid="2837137091067433059">"Bleu-jaune"</string>
<plurals name="accessibilty_autoclick_preference_subtitle_short_delay" formatted="false" msgid="5354221071353645263">
<item quantity="one">Court (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconde)</item>
- <item quantity="many">Short (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconds)</item>
<item quantity="other">Court (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconde)</item>
</plurals>
<plurals name="accessibilty_autoclick_preference_subtitle_medium_delay" formatted="false" msgid="1550891909800510628">
<item quantity="one">Moyen (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconde)</item>
- <item quantity="many">Medium (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconds)</item>
<item quantity="other">Moyen (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconde)</item>
</plurals>
<plurals name="accessibilty_autoclick_preference_subtitle_long_delay" formatted="false" msgid="2230755548820485984">
<item quantity="one">Long (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconde)</item>
- <item quantity="many">Long (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconds)</item>
<item quantity="other">Long (<xliff:g id="CLICK_DELAY_LABEL_1">%1$s</xliff:g> seconde)</item>
</plurals>
<plurals name="accessibilty_autoclick_delay_unit_second" formatted="false" msgid="4537791441118261556">
<item quantity="one"><xliff:g id="CLICK_DELAY_LABEL_2">%1$s</xliff:g> seconde</item>
- <item quantity="many"><xliff:g id="CLICK_DELAY_LABEL_2">%1$s</xliff:g> seconds</item>
<item quantity="other"><xliff:g id="CLICK_DELAY_LABEL_2">%1$s</xliff:g> seconde</item>
</plurals>
<string name="accessibility_vibration_summary" msgid="27904038683405084">"Sonnerie : <xliff:g id="SUMMARY_RING">%1$s</xliff:g>, Notification : <xliff:g id="SUMMARY_NOTIFICATION">%2$s</xliff:g>, Appui : <xliff:g id="SUMMARY_TOUCH">%3$s</xliff:g>"</string>
@@ -2396,12 +2366,10 @@
<string name="print_settings_summary_no_service" msgid="6721731154917653862">"Désactivé"</string>
<plurals name="print_settings_summary" formatted="false" msgid="1034273609054146099">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> service d\'impression activé</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> print services on</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> services d\'impression activés</item>
</plurals>
<plurals name="print_jobs_summary" formatted="false" msgid="3933688846338306536">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> tâche d\'impression</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> print jobs</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> tâches d\'impression</item>
</plurals>
<string name="print_settings_title" msgid="7680498284751129935">"Services d\'impression"</string>
@@ -2487,35 +2455,31 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablette plus utilisée que d\'habitude"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Appareil plus utilisé que d\'habitude"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"La batterie pourrait s\'épuiser plus tôt que prévu"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batterie limitée temporairement"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Permet de préserver la batterie. Appuyez ici pour en savoir plus."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batterie limitée temporairement. Appuyez sur cette notification pour en savoir plus."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Votre téléphone a été plus utilisé que d\'habitude. Il est possible que vous arriviez à court de batterie plus vite que prévu.\n\nClassement des applis par utilisation de la batterie :"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Votre tablette a été plus utilisée que d\'habitude. Il est possible que vous arriviez à court de batterie plus vite que prévu.\n\nClassement des applis par utilisation de la batterie :"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Votre appareil a été plus utilisé que d\'habitude. Il est possible que vous arriviez à court de batterie plus vite que prévu.\n\nClassement des applis par utilisation de la batterie :"</string>
<string name="battery_tip_dialog_message_footer" msgid="986542164372177504">"Inclut les activités en arrière-plan qui sollicitent fortement la batterie"</string>
<plurals name="battery_tip_restrict_title" formatted="false" msgid="3108195491484891588">
<item quantity="one">Limiter %1$d application</item>
- <item quantity="many">Restrict %1$d apps</item>
<item quantity="other">Limiter %1$d applications</item>
</plurals>
<plurals name="battery_tip_restrict_handled_title" formatted="false" msgid="5862649927574803958">
<item quantity="one">%2$d application récemment limitée</item>
- <item quantity="many">%2$d apps recently restricted</item>
<item quantity="other">%2$d applications récemment limitées</item>
</plurals>
<plurals name="battery_tip_restrict_summary" formatted="false" msgid="3328499737453686910">
<item quantity="one">%2$d application sollicite beaucoup la batterie en arrière-plan</item>
- <item quantity="many">%2$d apps have high background battery usage</item>
<item quantity="other">%2$d applications sollicitent beaucoup la batterie en arrière-plan</item>
</plurals>
<plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="3036853535034350991">
<item quantity="one">Cette application ne peut pas s\'exécuter en arrière-plan</item>
- <item quantity="many">These apps can\'t run in the background</item>
<item quantity="other">Ces applications ne peuvent pas s\'exécuter en arrière-plan</item>
</plurals>
<plurals name="battery_tip_restrict_app_dialog_title" formatted="false" msgid="7897944678619251740">
<item quantity="one">Restreindre l\'application ?</item>
- <item quantity="many">Restrict %1$d apps?</item>
<item quantity="other">Restreindre les %1$d applications ?</item>
</plurals>
<string name="battery_tip_restrict_app_dialog_message" msgid="137856003724730751">"Pour économiser la batterie, empêchez <xliff:g id="APP">%1$s</xliff:g> de l\'utiliser en arrière-plan. Cette application peut ne pas fonctionner correctement et ses notifications risquent d\'être retardées."</string>
@@ -2536,7 +2500,6 @@
<string name="restricted_app_title" msgid="6585080822121007436">"Applications dont l\'accès est limité"</string>
<plurals name="restricted_app_summary" formatted="false" msgid="6059772951505411003">
<item quantity="one">Limitation de l\'utilisation de la batterie pour %1$d application</item>
- <item quantity="many">Limiting battery usage for %1$d apps</item>
<item quantity="other">Limitation de l\'utilisation de la batterie pour %1$d applications</item>
</plurals>
<string name="restricted_app_time_summary" msgid="3097721884155913252">"Limitée <xliff:g id="TIME">%1$s</xliff:g>"</string>
@@ -2547,7 +2510,6 @@
<string name="battery_manager_off" msgid="673547668722420924">"Désactivé"</string>
<plurals name="battery_manager_app_restricted" formatted="false" msgid="6714534362166394848">
<item quantity="one">%1$d application limitée</item>
- <item quantity="many">%1$d apps restricted</item>
<item quantity="other">%1$d applications limitées</item>
</plurals>
<string name="battery_header_title_alternate" msgid="8371821625994616659">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">%</xliff:g>"</font></small>""</string>
@@ -2761,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ne pas installer"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Installer quand même"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificat non installé"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Autoriser <xliff:g id="APP_NAME">%s</xliff:g> à installer des certificats sur cet appareil ?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Ces certificats vous identifieront auprès des applis et des URL ci-dessous"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ne pas autoriser"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Autoriser"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Afficher plus"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Appli de gestion de certificats"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Aucune"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Les certificats installés par cette application vous identifient auprès des applications et des URL ci-dessous"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Supprimer"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signal de numérotation d\'urgence"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Définir le comportement en cas d\'appel d\'urgence"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Sauvegarde"</string>
@@ -2807,7 +2778,6 @@
<string name="notification_history_dismiss" msgid="6180321217375722918">"Notifications ignorées récemment"</string>
<plurals name="notification_history_count" formatted="false" msgid="1859304685071321991">
<item quantity="one"><xliff:g id="NUMBER_1">%d</xliff:g> notification</item>
- <item quantity="many"><xliff:g id="NUMBER_1">%d</xliff:g> notifications</item>
<item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> notifications</item>
</plurals>
<string name="sound_category_call_ringtone_vibrate_title" msgid="9090693401915654528">"Sonnerie et vibreur pour les appels"</string>
@@ -3057,23 +3027,19 @@
<string name="done_button" msgid="6269449526248267">"OK"</string>
<plurals name="ssl_ca_cert_dialog_title" formatted="false" msgid="5491460811755938449">
<item quantity="one">Considérer le certificat comme fiable ou le supprimer</item>
- <item quantity="many">Trust or remove certificates</item>
<item quantity="other">Considérer les certificats comme fiables ou les supprimer</item>
</plurals>
<plurals name="ssl_ca_cert_info_message_device_owner" formatted="false" msgid="2788832560436163252">
<item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> a installé une autorité de certification sur votre appareil afin de contrôler l\'activité réseau de l\'appareil, y compris les e-mails, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, contactez votre administrateur.</item>
- <item quantity="many"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> has installed certificate authorities on your device, which may allow them to monitor your device network activity, including emails, apps, and secure websites.\n\nFor more information about these certificates, contact your admin.</item>
<item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> a installé des autorités de certification sur votre appareil afin de contrôler l\'activité réseau de l\'appareil, y compris les e-mails, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ces certificats, contactez votre administrateur.</item>
</plurals>
<plurals name="ssl_ca_cert_info_message" formatted="false" msgid="3989916958347169622">
<item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> a installé une autorité de certification pour votre profil professionnel afin de contrôler l\'activité sur le réseau, y compris les e-mails, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ce certificat, contactez votre administrateur.</item>
- <item quantity="many"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> has installed certificate authorities for your work profile, which may allow them to monitor work network activity, including emails, apps, and secure websites.\n\nFor more information about these certificates, contact your admin.</item>
<item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> a installé des autorités de certification pour votre profil professionnel afin de contrôler l\'activité sur le réseau, y compris les e-mails, les applications et les sites Web sécurisés.\n\nPour en savoir plus sur ces certificats, contactez votre administrateur.</item>
</plurals>
<string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"Des tiers ont la possibilité de surveiller votre activité sur le réseau, y compris en ce qui concerne les e-mails, les applications et les sites Web sécurisés.\n\nUn certificat de confiance installé sur votre appareil rend cela possible."</string>
<plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="125941406175485894">
<item quantity="one">Vérifier le certificat</item>
- <item quantity="many">Check certificates</item>
<item quantity="other">Vérifier les certificats</item>
</plurals>
<string name="user_settings_title" msgid="6550866465409807877">"Utilisateurs multiples"</string>
@@ -3251,7 +3217,6 @@
<string name="dashboard_title" msgid="5660733037244683387">"Paramètres"</string>
<plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="6585075562837786847">
<item quantity="one">Afficher %d élément masqué</item>
- <item quantity="many">Show %d hidden items</item>
<item quantity="other">Afficher %d éléments masqués</item>
</plurals>
<string name="network_dashboard_title" msgid="788543070557731240">"Réseau et Internet"</string>
@@ -3403,7 +3368,7 @@
<string name="boot_sounds_title" msgid="5033062848948884111">"Sons de mise en route"</string>
<string name="live_caption_title" msgid="8617086825712756983">"Sous-titres instantanés"</string>
<string name="live_caption_summary" msgid="2898451867595161809">"Sous-titres automatiques"</string>
- <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Aucune}=1{1 planification définie}one{# planification définie}many{# schedules set}other{# planifications définies}}"</string>
+ <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Aucune}=1{1 planification définie}one{# planification définie}other{# planifications définies}}"</string>
<string name="zen_mode_settings_title" msgid="682676757791334259">"Ne pas déranger"</string>
<string name="zen_mode_settings_summary" msgid="6040862775514495191">"Ne recevoir des notifications que des personnes et applications importantes"</string>
<string name="zen_mode_slice_subtitle" msgid="6849372107272604160">"Limiter les interruptions"</string>
@@ -3474,9 +3439,9 @@
<string name="zen_mode_sound_summary_on" msgid="9077659040104989899">"Activé"</string>
<string name="zen_mode_duration_summary_always_prompt" msgid="7658172853423383037">"Toujours demander"</string>
<string name="zen_mode_duration_summary_forever" msgid="5551992961329998606">"Jusqu\'à la désactivation"</string>
- <string name="zen_mode_duration_summary_time_hours" msgid="2602655749780428308">"{count,plural, =1{1 heure}one{# heure}many{# hours}other{# heures}}"</string>
- <string name="zen_mode_duration_summary_time_minutes" msgid="5755536844016835693">"{count,plural, =1{1 minute}one{# minute}many{# minutes}other{# minutes}}"</string>
- <string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Désactivé}=1{Désactivé/1 planification peut être activée automatiquement}one{Désactivé/# planification peut être activée automatiquement}many{Off / # schedules can turn on automatically}other{Désactivé/# planifications peuvent être activées automatiquement}}"</string>
+ <string name="zen_mode_duration_summary_time_hours" msgid="2602655749780428308">"{count,plural, =1{1 heure}one{# heure}other{# heures}}"</string>
+ <string name="zen_mode_duration_summary_time_minutes" msgid="5755536844016835693">"{count,plural, =1{1 minute}one{# minute}other{# minutes}}"</string>
+ <string name="zen_mode_sound_summary_off" msgid="7350437977839985836">"{count,plural, =0{Désactivé}=1{Désactivé/1 planification peut être activée automatiquement}one{Désactivé/# planification peut être activée automatiquement}other{Désactivé/# planifications peuvent être activées automatiquement}}"</string>
<string name="zen_category_behavior" msgid="3214056473947178507">"Ce qui peut interrompre le mode Ne pas déranger"</string>
<string name="zen_category_people" msgid="8252926021894933047">"Personnes"</string>
<string name="zen_category_apps" msgid="1167374545618451925">"Applications"</string>
@@ -3618,7 +3583,6 @@
<string name="priority_conversation_count_zero" msgid="3862289535537564713">"Aucune conversation prioritaire"</string>
<plurals name="priority_conversation_count" formatted="false" msgid="4229447176780862649">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> conversation prioritaire</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> priority conversations</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> conversations prioritaires</item>
</plurals>
<string name="important_conversations" msgid="1233893707189659401">"Conversations prioritaires"</string>
@@ -3627,7 +3591,7 @@
<string name="other_conversations" msgid="551178916855139870">"Conversations non prioritaires"</string>
<string name="other_conversations_summary" msgid="3487426787901236273">"Conversations auxquelles vous avez apporté des modifications"</string>
<string name="recent_conversations" msgid="471678228756995274">"Conversations récentes"</string>
- <string name="conversation_settings_clear_recents" msgid="7502738708058226585">"Effacer conv. récentes"</string>
+ <string name="conversation_settings_clear_recents" msgid="7502738708058226585">"Effacer les conversations récentes"</string>
<string name="clear" msgid="5092178335409471100">"Effacer"</string>
<string name="important_bubble" msgid="7911698275408390846">"Afficher les conversations prioritaires sous forme de bulle"</string>
<string name="important_conversation_behavior_summary" msgid="1845064084071107732">"Les conversations prioritaires s\'affichent en haut du volet déroulant. Vous pouvez aussi les configurer pour s\'afficher dans des bulles et les autoriser à interrompre le mode Ne pas déranger."</string>
@@ -3660,12 +3624,10 @@
<string name="default_notification_assistant" msgid="243718059890346442">"Notifications intelligentes"</string>
<plurals name="notifications_sent_daily" formatted="false" msgid="1479283620504341566">
<item quantity="one">Environ <xliff:g id="NUMBER_1">%d</xliff:g> notification par jour</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%d</xliff:g> notifications per day</item>
<item quantity="other">Environ <xliff:g id="NUMBER_1">%d</xliff:g> notifications par jour</item>
</plurals>
<plurals name="notifications_sent_weekly" formatted="false" msgid="4913443431857170519">
<item quantity="one">Environ <xliff:g id="NUMBER_1">%d</xliff:g> notification par semaine</item>
- <item quantity="many">~<xliff:g id="NUMBER_1">%d</xliff:g> notifications per week</item>
<item quantity="other">Environ <xliff:g id="NUMBER_1">%d</xliff:g> notifications par semaine</item>
</plurals>
<string name="notifications_sent_never" msgid="9081278709126812062">"Jamais"</string>
@@ -3674,7 +3636,6 @@
<string name="manage_notification_access_summary_zero" msgid="7528633634628627431">"Les applications ne peuvent pas lire les notifications."</string>
<plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="3703008881487586312">
<item quantity="one">%d application peut lire les notifications.</item>
- <item quantity="many">%d apps can read notifications</item>
<item quantity="other">%d applications peuvent lire les notifications.</item>
</plurals>
<string name="notification_assistant_title" msgid="6983941403582134437">"Notifications intelligentes"</string>
@@ -3721,7 +3682,6 @@
<string name="interact_across_profiles_number_of_connected_apps_none" msgid="8573289199942092964">"Aucune application associée"</string>
<plurals name="interact_across_profiles_number_of_connected_apps" formatted="false" msgid="6991750455661974772">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> application associée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> apps connected</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> applications associées</item>
</plurals>
<string name="interact_across_profiles_install_work_app_title" msgid="2821669067014436056">"Pour connecter ces applications, installez <xliff:g id="NAME">%1$s</xliff:g> dans votre profil professionnel"</string>
@@ -3738,7 +3698,6 @@
<string name="notification_channels_other" msgid="18159805343647908">"Autres"</string>
<plurals name="notification_group_summary" formatted="false" msgid="483490958130993160">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> catégorie</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> categories</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> catégories</item>
</plurals>
<string name="no_channels" msgid="4716199078612071915">"Cette application n\'a publié aucune notification"</string>
@@ -3747,12 +3706,10 @@
<string name="app_notification_listing_summary_zero" msgid="2988400013221120744">"Activées pour toutes les applications"</string>
<plurals name="app_notification_listing_summary_others" formatted="false" msgid="1506127395400503717">
<item quantity="one">Désactivé pour <xliff:g id="COUNT_1">%d</xliff:g> application</item>
- <item quantity="many">Off for <xliff:g id="COUNT_1">%d</xliff:g> apps</item>
<item quantity="other">Désactivé pour <xliff:g id="COUNT_1">%d</xliff:g> applications</item>
</plurals>
<plurals name="deleted_channels" formatted="false" msgid="5963473421547029532">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> catégorie supprimée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> categories deleted</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> catégories supprimées</item>
</plurals>
<string name="notification_toggle_on" msgid="1624283327379059003">"Activées"</string>
@@ -3825,7 +3782,7 @@
<string name="zen_mode_from_all_conversations" msgid="3447000451361857061">"Toutes les conversations"</string>
<string name="zen_mode_from_important_conversations" msgid="528050873364229253">"Conversations prioritaires"</string>
<string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Aucune"</string>
- <string name="zen_mode_conversations_count" msgid="3199310723073707153">"{count,plural, =0{Aucune}=1{1 conversation}one{# conversation}many{# conversations}other{# conversations}}"</string>
+ <string name="zen_mode_conversations_count" msgid="3199310723073707153">"{count,plural, =0{Aucune}=1{1 conversation}one{# conversation}other{# conversations}}"</string>
<string name="zen_mode_people_calls_messages_section_title" msgid="6815202112413762206">"Personnes qui peuvent interrompre le mode Ne pas déranger"</string>
<string name="zen_mode_calls_title" msgid="2078578043677037740">"Appels"</string>
<string name="zen_mode_calls" msgid="7653245854493631095">"Appels"</string>
@@ -3834,7 +3791,7 @@
<string name="zen_mode_calls_footer" msgid="2008079711083701243">"Pour que le téléphone sonne lorsque vous recevez un appel autorisé, assurez-vous d\'avoir activé la sonnerie"</string>
<string name="zen_mode_custom_calls_footer" msgid="6521283204577441053">"Les appels entrants sont bloqués pendant la plage horaire \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\". Vous pouvez ajuster les paramètres pour que vos proches ou d\'autres contacts puissent quand même vous joindre."</string>
<string name="zen_mode_starred_contacts_title" msgid="630299631659575589">"Contacts favoris"</string>
- <string name="zen_mode_starred_contacts_summary_contacts" msgid="1629467178444895094">"{count,plural,offset:2 =0{Aucun}=1{{contact_1}}=2{{contact_1} et {contact_2}}=3{{contact_1}, {contact_2} et {contact_3}}one{{contact_1}, {contact_2} et # autre contact favori}many{{contact_1}, {contact_2}, and # others}other{{contact_1}, {contact_2} et # autres contacts favoris}}"</string>
+ <string name="zen_mode_starred_contacts_summary_contacts" msgid="1629467178444895094">"{count,plural,offset:2 =0{Aucun}=1{{contact_1}}=2{{contact_1} et {contact_2}}=3{{contact_1}, {contact_2} et {contact_3}}one{{contact_1}, {contact_2} et # autre contact favori}other{{contact_1}, {contact_2} et # autres contacts favoris}}"</string>
<string name="zen_mode_starred_contacts_empty_name" msgid="2906404745550293688">"(Sans nom)"</string>
<string name="zen_mode_messages" msgid="7315084748885170585">"Messages"</string>
<string name="zen_mode_messages_list" msgid="5431014101342361882">"messages"</string>
@@ -3844,7 +3801,7 @@
<string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"Les messages entrants sont bloqués pour \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\". Vous pouvez ajuster les paramètres pour que vos proches ou d\'autres contacts puissent quand même vous joindre."</string>
<string name="zen_mode_all_messages_summary" msgid="3756267858343104554">"Vous recevez tous les messages"</string>
<string name="zen_mode_all_calls_summary" msgid="7337907849083824698">"Vous recevez tous les appels"</string>
- <string name="zen_mode_contacts_count" msgid="6568631261119795799">"{count,plural, =0{Aucun}=1{1 contact}one{# contact}many{# contacts}other{# contacts}}"</string>
+ <string name="zen_mode_contacts_count" msgid="6568631261119795799">"{count,plural, =0{Aucun}=1{1 contact}one{# contact}other{# contacts}}"</string>
<string name="zen_mode_from_anyone" msgid="6027004263046694174">"Tout le monde"</string>
<string name="zen_mode_from_contacts" msgid="2989933306317064818">"Contacts"</string>
<string name="zen_mode_from_starred" msgid="8616516644241652287">"Contacts favoris"</string>
@@ -3882,13 +3839,13 @@
<string name="zen_mode_bypassing_apps_summary_all" msgid="4684544706511555744">"Toutes les notifications"</string>
<string name="zen_mode_bypassing_apps_summary_some" msgid="5315750826830358230">"Certaines notifications"</string>
<string name="zen_mode_bypassing_apps_footer" msgid="1454862989340760124">"Les personnes sélectionnées peuvent vous contacter, même si vous n\'autorisez pas les applications à interrompre le mode Ne pas déranger"</string>
- <string name="zen_mode_bypassing_apps_subtext" msgid="5258652366929842710">"{count,plural,offset:2 =0{Aucune application ne peut interrompre le mode Ne pas déranger}=1{{app_1} peut interrompre le mode Ne pas déranger}=2{{app_1} et {app_2} peuvent interrompre le mode Ne pas déranger}=3{{app_1}, {app_2} et {app_3} peuvent interrompre le mode Ne pas déranger}one{{app_1}, {app_2} et # autre application peuvent interrompre le mode Ne pas déranger}many{{app_1}, {app_2}, and # more can interrupt}other{{app_1}, {app_2} et # autres applications peuvent interrompre le mode Ne pas déranger}}"</string>
+ <string name="zen_mode_bypassing_apps_subtext" msgid="5258652366929842710">"{count,plural,offset:2 =0{Aucune application ne peut interrompre le mode Ne pas déranger}=1{{app_1} peut interrompre le mode Ne pas déranger}=2{{app_1} et {app_2} peuvent interrompre le mode Ne pas déranger}=3{{app_1}, {app_2} et {app_3} peuvent interrompre le mode Ne pas déranger}one{{app_1}, {app_2} et # autre application peuvent interrompre le mode Ne pas déranger}other{{app_1}, {app_2} et # autres applications peuvent interrompre le mode Ne pas déranger}}"</string>
<string name="zen_mode_bypassing_apps_title" msgid="371050263563164059">"Applications"</string>
<string name="zen_mode_bypassing_apps_all_summary" msgid="5197566190120503132">"Toutes les notifications"</string>
<string name="zen_mode_bypassing_apps_some_summary" msgid="1514572070650411509">"Certaines notifications"</string>
<string name="zen_mode_bypassing_app_channels_header" msgid="4011017798712587373">"Notifications qui peuvent interrompre le mode Ne pas déranger"</string>
<string name="zen_mode_bypassing_app_channels_toggle_all" msgid="1449462656358219116">"Autoriser toutes les notifications"</string>
- <string name="zen_mode_other_sounds_summary" msgid="8784400697494837032">"{count,plural,offset:2 =0{Rien ne peut interrompre le mode Ne pas déranger}=1{{sound_category_1} peut interrompre le mode Ne pas déranger}=2{{sound_category_1} et {sound_category_2} peuvent interrompre le mode Ne pas déranger}=3{{sound_category_1}, {sound_category_2} et {sound_category_3} peuvent interrompre le mode Ne pas déranger}one{{sound_category_1}, {sound_category_2} et # autre son peuvent interrompre le mode Ne pas déranger}many{{sound_category_1}, {sound_category_2}, and # more can interrupt}other{{sound_category_1}, {sound_category_2} et # autres sons peuvent interrompre le mode Ne pas déranger}}"</string>
+ <string name="zen_mode_other_sounds_summary" msgid="8784400697494837032">"{count,plural,offset:2 =0{Rien ne peut interrompre le mode Ne pas déranger}=1{{sound_category_1} peut interrompre le mode Ne pas déranger}=2{{sound_category_1} et {sound_category_2} peuvent interrompre le mode Ne pas déranger}=3{{sound_category_1}, {sound_category_2} et {sound_category_3} peuvent interrompre le mode Ne pas déranger}one{{sound_category_1}, {sound_category_2} et # autre son peuvent interrompre le mode Ne pas déranger}other{{sound_category_1}, {sound_category_2} et # autres sons peuvent interrompre le mode Ne pas déranger}}"</string>
<string name="zen_mode_sounds_none" msgid="6557474361948269420">"Rien ne peut interrompre le mode Ne pas déranger"</string>
<string name="zen_mode_people_none" msgid="4613147461974255046">"Personne ne peut interrompre le mode Ne pas déranger"</string>
<string name="zen_mode_people_some" msgid="9101872681298810281">"Certaines personnes peuvent interrompre le mode Ne pas déranger"</string>
@@ -3914,12 +3871,10 @@
<string name="zen_mode_summary_alarms_only_indefinite" msgid="910047326128154945">"Ne recevoir que les alarmes sans limite de temps"</string>
<plurals name="zen_mode_summary_alarms_only_by_minute" formatted="false" msgid="1900512966361163390">
<item quantity="one">Ne recevoir que les alarmes pendant <xliff:g id="DURATION">%1$d</xliff:g> minute jusqu\'à <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
- <item quantity="many">Change to alarms only for <xliff:g id="DURATION">%1$d</xliff:g> minutes (until <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g>)</item>
<item quantity="other">Ne recevoir que les alarmes pendant <xliff:g id="DURATION">%1$d</xliff:g> minutes jusqu\'à <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
</plurals>
<plurals name="zen_mode_summary_alarms_only_by_hour" formatted="false" msgid="955991428001659124">
<item quantity="one">Ne recevoir que les alarmes pendant <xliff:g id="DURATION">%1$d</xliff:g> heure jusqu\'à <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
- <item quantity="many">Change to alarms only for <xliff:g id="DURATION">%1$d</xliff:g> hours until <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
<item quantity="other">Ne recevoir que les alarmes pendant <xliff:g id="DURATION">%1$d</xliff:g> heures jusqu\'à <xliff:g id="FORMATTEDTIME_1">%2$s</xliff:g></item>
</plurals>
<string name="zen_mode_summary_alarms_only_by_time" msgid="8140619669703968810">"Ne recevoir que les alarmes jusqu\'à <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
@@ -4005,22 +3960,18 @@
<string name="notification_summary_channel" msgid="8459033623057872803">"<xliff:g id="CHANNEL_NAME">%1$s</xliff:g> • <xliff:g id="GROUP_NAME">%2$s</xliff:g>"</string>
<plurals name="notifications_categories_off" formatted="false" msgid="1385401442703692986">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> catégorie désactivée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> categories turned off</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> catégories désactivées</item>
</plurals>
<plurals name="permissions_summary" formatted="false" msgid="5015472550875144481">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> autorisation accordée</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> permissions granted</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> autorisations accordées</item>
</plurals>
<plurals name="runtime_permissions_summary" formatted="false" msgid="2091022049141391855">
<item quantity="one"><xliff:g id="COUNT_2">%d</xliff:g> autorisation accordée sur <xliff:g id="COUNT_3">%d</xliff:g></item>
- <item quantity="many"><xliff:g id="COUNT_2">%d</xliff:g> of <xliff:g id="COUNT_3">%d</xliff:g> permissions granted</item>
<item quantity="other"><xliff:g id="COUNT_2">%d</xliff:g> autorisations accordées sur <xliff:g id="COUNT_3">%d</xliff:g></item>
</plurals>
<plurals name="runtime_permissions_additional_count" formatted="false" msgid="5888624648943937645">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> autorisation supplémentaire</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> additional permissions</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> autorisations supplémentaires</item>
</plurals>
<string name="runtime_permissions_summary_no_permissions_granted" msgid="7456745929035665029">"Aucune autorisation accordée"</string>
@@ -4050,7 +4001,6 @@
<string name="domain_urls_apps_summary_off" msgid="2534980824850890416">"Aucune application ouvrant des liens compatibles"</string>
<plurals name="domain_urls_apps_summary_on" formatted="false" msgid="7864816862441985323">
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> application ouvrant des liens compatibles</item>
- <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> apps opening supported links</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> applications ouvrant des liens compatibles</item>
</plurals>
<string name="app_link_open_always" msgid="9167065494930657503">"Autoriser l\'application à ouvrir les liens compatibles"</string>
@@ -4058,7 +4008,6 @@
<string name="app_link_open_never" msgid="5299808605386052350">"Ne pas autoriser l\'application à ouvrir les liens compatibles"</string>
<plurals name="app_link_open_always_summary" formatted="false" msgid="1816161439007251694">
<item quantity="one">L\'application revendique <xliff:g id="COUNT_1">%d</xliff:g> lien</item>
- <item quantity="many">App claims to handle <xliff:g id="COUNT_1">%d</xliff:g> links</item>
<item quantity="other">L\'application revendique <xliff:g id="COUNT_1">%d</xliff:g> liens</item>
</plurals>
<string name="open_supported_links_footer" msgid="3188808142432787933">"L\'application revendique les liens suivants :"</string>
@@ -4101,12 +4050,10 @@
<string name="hide_extra_apps" msgid="7313907836289865123">"Afficher utilisation appli"</string>
<plurals name="power_high_usage_summary" formatted="false" msgid="573433136005336970">
<item quantity="one"><xliff:g id="NUMBER">%2$d</xliff:g> application a un comportement anormal</item>
- <item quantity="many"><xliff:g id="NUMBER">%2$d</xliff:g> apps behaving abnormally</item>
<item quantity="other"><xliff:g id="NUMBER">%2$d</xliff:g> applications ont un comportement anormal</item>
</plurals>
<plurals name="power_high_usage_title" formatted="false" msgid="8013115866788425817">
<item quantity="one">Une application décharge la batterie</item>
- <item quantity="many">Apps draining battery</item>
<item quantity="other">Des applications déchargent la batterie</item>
</plurals>
<string name="high_power_filter_on" msgid="447849271630431531">"Non optimisées"</string>
@@ -4184,7 +4131,6 @@
<string name="memory_usage_apps" msgid="5776108502569850579">"Mémoire utilisée par les applications"</string>
<plurals name="memory_usage_apps_summary" formatted="false" msgid="1355637088533572208">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> application a utilisé de la mémoire au cours de la période suivante : <xliff:g id="DURATION_1">%2$s</xliff:g>.</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> apps used memory in the last <xliff:g id="DURATION_1">%2$s</xliff:g></item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> applications ont utilisé de la mémoire au cours de la période suivante : <xliff:g id="DURATION_1">%2$s</xliff:g>.</item>
</plurals>
<string name="running_frequency" msgid="7260225121706316639">"Fréquence"</string>
@@ -4259,7 +4205,6 @@
<string name="data_usage_wifi_format" msgid="7644390582649568117">"<xliff:g id="AMOUNT">^1</xliff:g> utilisés sur le réseau Wi-Fi"</string>
<plurals name="notification_summary" formatted="false" msgid="7638388920823212470">
<item quantity="one">Désactivé pour <xliff:g id="COUNT">%d</xliff:g> application</item>
- <item quantity="many">Off for <xliff:g id="COUNT">%d</xliff:g> apps</item>
<item quantity="other">Désactivé pour <xliff:g id="COUNT">%d</xliff:g> applications</item>
</plurals>
<string name="notification_summary_none" msgid="9179312319023988089">"Activées pour toutes les applications"</string>
@@ -4326,12 +4271,10 @@
<string name="suggestions_more_title" msgid="240124526378997009">"+<xliff:g id="ID_1">%1$d</xliff:g> autres"</string>
<plurals name="suggestions_collapsed_title" formatted="false" msgid="5023679825210836444">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> suggestion</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> suggestions</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> suggestions</item>
</plurals>
<plurals name="suggestions_collapsed_summary" formatted="false" msgid="3789011332018516832">
<item quantity="one">+<xliff:g id="COUNT">%1$d</xliff:g> suggestion</item>
- <item quantity="many">+<xliff:g id="COUNT">%1$d</xliff:g> suggestions</item>
<item quantity="other">+<xliff:g id="COUNT">%1$d</xliff:g> suggestions</item>
</plurals>
<string name="suggestion_remove" msgid="6753986344585367776">"Supprimer"</string>
@@ -4361,7 +4304,6 @@
<string name="network_restrictions" msgid="8385824604048229846">"Restrictions sur le réseau"</string>
<plurals name="network_restrictions_summary" formatted="false" msgid="3875128958788008975">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restriction</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> restrictions</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restrictions</item>
</plurals>
<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>
@@ -4377,7 +4319,6 @@
<string name="data_usage_other_apps" msgid="5649047093607329537">"Autres applications incluses dans la consommation"</string>
<plurals name="data_saver_unrestricted_summary" formatted="false" msgid="3316296488378947221">
<item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> application est autorisée à utiliser des données sans restrictions lorsque l\'économiseur de données est activé</item>
- <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> apps allowed to use unrestricted data when Data Saver is on</item>
<item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> applications sont autorisées à utiliser des données sans restrictions lorsque l\'économiseur de données est activé</item>
</plurals>
<string name="data_usage_title" msgid="4039024073687469094">"Données principales"</string>
@@ -4390,7 +4331,6 @@
<string name="data_usage_chart_no_data_content_description" msgid="5481968839079467231">"Aucune donnée disponible pour cette plage de dates"</string>
<plurals name="billing_cycle_days_left" formatted="false" msgid="661792524671718753">
<item quantity="one">%d jour restant</item>
- <item quantity="many">%d days left</item>
<item quantity="other">%d jours restants</item>
</plurals>
<string name="billing_cycle_none_left" msgid="1694844019159277504">"Le cycle de facturation est arrivé à échéance"</string>
@@ -4464,7 +4404,6 @@
<string name="special_access" msgid="1767980727423395147">"Accès spécifiques des applications"</string>
<plurals name="special_access_summary" formatted="false" msgid="4995506406763570815">
<item quantity="one"><xliff:g id="COUNT">%d</xliff:g> application peut utiliser les données sans restrictions</item>
- <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> apps can use unrestricted data</item>
<item quantity="other"><xliff:g id="COUNT">%d</xliff:g> applications peuvent utiliser les données sans restrictions</item>
</plurals>
<string name="special_access_more" msgid="132919514147475846">"En savoir plus"</string>
@@ -4503,17 +4442,14 @@
<string name="cross_profile_calendar_summary" msgid="8856185206722860069">"Afficher les événements professionnels dans votre agenda personnel"</string>
<plurals name="hours" formatted="false" msgid="1853396353451635458">
<item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> heure</item>
- <item quantity="many"><xliff:g id="NUMBER">%s</xliff:g> hours</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> heures</item>
</plurals>
<plurals name="minutes" formatted="false" msgid="6244503272924425418">
<item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> minute</item>
- <item quantity="many"><xliff:g id="NUMBER">%s</xliff:g> minutes</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> minutes</item>
</plurals>
<plurals name="seconds" formatted="false" msgid="4237020272336995370">
<item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> seconde</item>
- <item quantity="many"><xliff:g id="NUMBER">%s</xliff:g> seconds</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> secondes</item>
</plurals>
<string name="automatic_storage_manager_settings" msgid="519158151463974656">"Gérer l\'espace de stockage"</string>
@@ -4638,7 +4574,6 @@
<string name="enterprise_privacy_apps_count_estimation_info" msgid="7959907857710107792">"Le nombre d\'applications est une estimation. Il est possible qu\'il n\'inclue pas les applications installées sans passer par le Play Store."</string>
<plurals name="enterprise_privacy_number_packages_lower_bound" formatted="false" msgid="5403847001419529018">
<item quantity="one">Au moins <xliff:g id="COUNT_1">%d</xliff:g> application</item>
- <item quantity="many">Minimum <xliff:g id="COUNT_1">%d</xliff:g> apps</item>
<item quantity="other">Au moins <xliff:g id="COUNT_1">%d</xliff:g> applications</item>
</plurals>
<string name="enterprise_privacy_location_access" msgid="8023838718108456971">"Autorisations de localisation"</string>
@@ -4647,7 +4582,6 @@
<string name="enterprise_privacy_enterprise_set_default_apps" msgid="7498546659083996300">"Applications par défaut"</string>
<plurals name="enterprise_privacy_number_packages" formatted="false" msgid="8568544906431825430">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> application</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> apps</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> applications</item>
</plurals>
<string name="enterprise_privacy_input_method" msgid="3278314982700662246">"Clavier par défaut"</string>
@@ -4661,7 +4595,6 @@
<string name="enterprise_privacy_ca_certs_work" msgid="4318941788592655561">"Certificats de confiance dans votre profil professionnel"</string>
<plurals name="enterprise_privacy_number_ca_certs" formatted="false" msgid="6459725295322004179">
<item quantity="one">Au moins <xliff:g id="COUNT_1">%d</xliff:g> certificat CA</item>
- <item quantity="many">Minimum <xliff:g id="COUNT_1">%d</xliff:g> CA certificates</item>
<item quantity="other">Au moins <xliff:g id="COUNT_1">%d</xliff:g> certificats CA</item>
</plurals>
<string name="enterprise_privacy_lock_device" msgid="464054894363899866">"L\'administrateur peut verrouiller l\'appareil et réinitialiser le mot de passe"</string>
@@ -4670,7 +4603,6 @@
<string name="enterprise_privacy_failed_password_wipe_work" msgid="2537582942554484170">"Tentatives de saisie du mot de passe avant la suppression des données du profil professionnel"</string>
<plurals name="enterprise_privacy_number_failed_password_wipe" formatted="false" msgid="8811973918944217791">
<item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> tentative</item>
- <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> attempts</item>
<item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> tentatives</item>
</plurals>
<string name="do_disclosure_generic" msgid="3067459392402324538">"Cet appareil est géré par votre organisation."</string>
@@ -4679,20 +4611,17 @@
<string name="learn_more" msgid="3534519107947510952">"En savoir plus"</string>
<plurals name="default_camera_app_title" formatted="false" msgid="8112432929729136399">
<item quantity="one">Appareil photo</item>
- <item quantity="many">Camera apps</item>
<item quantity="other">Appareil photo</item>
</plurals>
<string name="default_calendar_app_title" msgid="1870095225089706093">"Agenda"</string>
<string name="default_contacts_app_title" msgid="7740028900741944569">"Contacts"</string>
<plurals name="default_email_app_title" formatted="false" msgid="8338194872609410234">
<item quantity="one">Client de messagerie</item>
- <item quantity="many">Email client apps</item>
<item quantity="other">Client de messagerie</item>
</plurals>
<string name="default_map_app_title" msgid="7569231732944853320">"Cartes"</string>
<plurals name="default_phone_app_title" formatted="false" msgid="4222188821845826493">
<item quantity="one">Téléphone</item>
- <item quantity="many">Phone apps</item>
<item quantity="other">Téléphone</item>
</plurals>
<string name="app_names_concatenation_template_2" msgid="8320181646458855457">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
@@ -4722,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Nombre maximal d\'ensembles de données visibles"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Rétablir les valeurs par défaut"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Les options de saisie automatique du développeur ont été réinitialisées"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forcer les mesures GNSS complètes"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Effectuer le suivi de toutes les fréquences et constellations GNSS sans rapport cyclique"</string>
<string name="device_theme" msgid="5027604586494772471">"Thème de l\'appareil"</string>
<string name="default_theme" msgid="4815428567082263639">"Par défaut"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nom du réseau"</string>
@@ -4738,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Suspendre les notifications pour rester concentré"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Fonctionnalité non disponible"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Cette fonctionnalité a été désactivée, car elle ralentit votre téléphone"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forcer les mesures GNSS complètes"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Effectuer le suivi de toutes les fréquences et constellations GNSS sans rapport cyclique"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Toujours afficher une boîte de dialogue en cas de plantage"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Afficher une boîte de dialogue chaque fois qu\'une application plante"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Sélectionner une application compatible avec ANGLE"</string>
@@ -4807,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Activé (son coupé)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Désactivé"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Détails du réseau"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Le nom de votre appareil est visible par les applications installées sur votre téléphone. Il peut l\'être également par d\'autres personnes en cas de connexion à des appareils Bluetooth ou de configuration d\'un point d\'accès Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Les applications de votre téléphone ont accès au nom de votre appareil. D\'autres personnes peuvent aussi le voir lorsque vous vous connectez à des appareils Bluetooth ou à un réseau Wi-Fi, ou lorsque vous configurez un point d\'accès Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Appareils"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Tous les paramètres"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggestions"</string>
@@ -4885,7 +4820,6 @@
<string name="mobile_network_summary_add_a_network" msgid="9079866102827526779">"Ajouter un réseau"</string>
<plurals name="mobile_network_summary_count" formatted="false" msgid="5173633860800230925">
<item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> carte SIM</item>
- <item quantity="many"><xliff:g id="COUNT_1">%1$d</xliff:g> SIMs</item>
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> cartes SIM</item>
</plurals>
<string name="default_for_calls" msgid="2788950217176988034">"Utiliser par défaut pour les appels"</string>
@@ -4968,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Impossible d\'activer la carte SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Retirez la carte SIM et insérez-la de nouveau. Si le problème persiste, redémarrez l\'appareil."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Essayez à nouveau d\'activer la carte SIM. Si le problème persiste, redémarrez l\'appareil."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activation du réseau"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> est actif"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Appuyez pour mettre à jour les paramètres de la carte SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Carte SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Effacer cette carte SIM téléchargée ?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"L\'effacement de cette carte SIM va supprimer le service <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> de cet appareil.\n\nLe service pour <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ne sera pas annulé."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Effacer"</string>
@@ -5016,13 +4954,11 @@
<string name="permission_bar_chart_details" msgid="5816698018592357088">"Tout afficher dans le tableau de bord"</string>
<plurals name="permission_bar_chart_label" formatted="false" msgid="4853396794340896078">
<item quantity="one"><xliff:g id="NUMBER">%s</xliff:g> application</item>
- <item quantity="many"><xliff:g id="NUMBER">%s</xliff:g> apps</item>
<item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> applications</item>
</plurals>
<string name="accessibility_usage_title" msgid="9190967143518779145">"Utilisation de l\'accessibilité"</string>
<plurals name="accessibility_usage_summary" formatted="false" msgid="6910643986958263005">
<item quantity="one"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> application bénéficie d\'un accès complet à votre appareil</item>
- <item quantity="many"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> apps have full access to your device</item>
<item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> applications bénéficient d\'un accès complet à votre appareil</item>
</plurals>
<string name="media_output_panel_title" msgid="5920946795078065159">"Changer de sortie"</string>
@@ -5122,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"La fonctionnalité Appels Wi-Fi vous permet de passer et de recevoir des appels sur des réseaux non gérés par des opérateurs, comme certains réseaux Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Appels"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"mode préféré"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"appels préférés"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS préférés"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"non disponible"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Aucune carte SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Préférences"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Se connecter aux réseaux publics"</string>
<string name="keywords_internet" msgid="7674082764898690310">"connexion réseau, internet, sans fil, données, wifi, wi-fi, wi fi, cellulaire, mobile, opérateur mobile, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Afficher les réseaux acceptés en avion"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Désactivez le mode Avion"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Indisponible, car le mode Heure du coucher est activé"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"L\'importance de la notification a bien été réinitialisée."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Applications"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index d360315..6c4129e 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Enderezos IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes gardadas"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subscricións"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Outras redes"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Configuración IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"A configuración avanzada da wifi non está dispoñible para este usuario"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Gardar"</string>
@@ -1185,7 +1184,7 @@
<string name="brightness" msgid="6216871641021779698">"Nivel de brillo"</string>
<string name="brightness_title" msgid="5457874893085305155">"Brillo"</string>
<string name="brightness_summary" msgid="6309641759293018049">"Axusta o brillo da pantalla"</string>
- <string name="auto_brightness_title" msgid="4239324728760986697">"Brillo automático"</string>
+ <string name="auto_brightness_title" msgid="4239324728760986697">"Brillo intelixente"</string>
<string name="auto_brightness_summary" msgid="1737148869232725883">"O brillo da pantalla axústase ao contorno"</string>
<string name="auto_brightness_summary_on" msgid="2748088951224387004">"Activado"</string>
<string name="auto_brightness_summary_off" msgid="8077066192887677956">"Desactivado"</string>
@@ -1204,7 +1203,7 @@
<string name="auto_brightness_off_summary" msgid="4993150980274474226">"Non axustar á luz dispoñible"</string>
<string name="auto_brightness_very_high_summary" msgid="2784981315548144255">"Maior consumo de batería"</string>
<string name="auto_brightness_disclaimer" msgid="1868395832774087351">"Optimiza o nivel de brillo segundo a luz dispoñible. Cando estea activado, poderás axustar o brillo temporalmente."</string>
- <string name="auto_brightness_description" msgid="6807117118142381193">"O brillo da pantalla axustarase automaticamente segundo o ambiente e as actividades que leves a cabo. Podes mover o control desprazable de forma manual para que o brillo automático recoñeza as túas preferencias."</string>
+ <string name="auto_brightness_description" msgid="6807117118142381193">"O brillo da pantalla axustarase automaticamente segundo o ambiente e as actividades que leves a cabo. Podes mover o control desprazable de forma manual para que o brillo intelixente recoñeza as túas preferencias."</string>
<string name="display_white_balance_title" msgid="2624544323029364713">"Balance de brancos da pantalla"</string>
<string name="display_white_balance_summary" msgid="7625456704950209050"></string>
<string name="peak_refresh_rate_title" msgid="1878771412897140903">"Smooth Display"</string>
@@ -1292,7 +1291,7 @@
<string name="screensaver_settings_current" msgid="390472865895976891">"Protector de pantalla actual"</string>
<string name="screensaver_settings_dream_start" msgid="6486360145976995856">"Iniciar agora"</string>
<string name="screensaver_settings_button" msgid="6159236558934930238">"Configuración"</string>
- <string name="automatic_brightness" msgid="4599827881929079513">"Brillo automático"</string>
+ <string name="automatic_brightness" msgid="4599827881929079513">"Brillo intelixente"</string>
<string name="lift_to_wake_title" msgid="8994218158737714046">"Levantar para acender"</string>
<string name="ambient_display_screen_title" msgid="8615947016991429325">"Pantalla en suspensión"</string>
<string name="ambient_display_category_triggers" msgid="1216640141609270011">"Cando mostrar a pantalla"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Eliminar APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Novo APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Gardar"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Descartar"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"O nome do campo non pode quedar baleiro."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"O APN non pode estar baleiro."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Utilizouse a tableta máis do normal"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Utilizouse o dispositivo máis do normal"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"A batería pode esgotarse antes do normal"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batería limitada temporalmente"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Axuda a manter a batería en bo estado. Toca para obter máis información."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batería limitada temporalmente. Toca para obter máis información."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"O teu teléfono utilizouse máis do habitual. A batería pode esgotarse antes do previsto.\n\nAplicacións que máis batería consomen:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"A túa tableta utilizouse máis do habitual. A batería pode esgotarse antes do previsto.\n\nAplicacións que máis batería consomen:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"O teu dispositivo utilizouse máis do habitual. A batería pode esgotarse antes do previsto.\n\nAplicacións que máis batería consomen:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Non instalar"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalar igualmente"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Non se instalou o certificado"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Queres permitir que <xliff:g id="APP_NAME">%s</xliff:g> instale certificados neste dispositivo?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Estes certificados identificarante nas aplicacións e nos URL que se indican a continuación"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Non permitir"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Permitir"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Mostrar máis"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App de xestión de certificados"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Ningún"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Os certificados instalados por esta aplicación identifícante nas aplicacións e nos URL que aparecen máis abaixo"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Quitar"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Sinal de marcación de emerxencia"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Define o comportamento cando se realiza unha chamada de emerxencia"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Copia de seguranza"</string>
@@ -3298,7 +3307,7 @@
<string name="keywords_lock_screen_notif" msgid="6363144436467429932">"notificación da pantalla de bloqueo, notificacións"</string>
<string name="keywords_face_settings" msgid="1360447094486865058">"cara"</string>
<string name="keywords_fingerprint_settings" msgid="7345121109302813358">"impresión dixital, engadir impresión dixital"</string>
- <string name="keywords_display_auto_brightness" msgid="7162942396941827998">"atenuar pantalla, pantalla táctil, batería, brillo intelixente, brillo dinámico, brillo automático"</string>
+ <string name="keywords_display_auto_brightness" msgid="7162942396941827998">"atenuar pantalla, pantalla táctil, batería, brillo intelixente, brillo dinámico, brillo intelixente"</string>
<string name="keywords_display_adaptive_sleep" msgid="8003895686008403685">"atenuar pantalla, modo de suspensión, batería, tempo de espera, atención, visualización, pantalla, inactividade"</string>
<string name="keywords_auto_rotate" msgid="7914655570000378975">"xirar, voltear, xiro, retrato, orientación, horizontal, vertical"</string>
<string name="keywords_system_update_settings" msgid="5769003488814164931">"actualizar, actualización, Android"</string>
@@ -3474,9 +3483,9 @@
<string name="advanced_section_header" msgid="6003255455888626056">"Configuración avanzada"</string>
<string name="profile_section_header" msgid="4970209372372610799">"Notificacións do traballo"</string>
<string name="smart_notifications_title" msgid="8995288376897952015">"Notificacións intelixentes"</string>
- <string name="asst_capability_prioritizer_title" msgid="1181272430009156556">"Prioridade das notificacións automáticas"</string>
+ <string name="asst_capability_prioritizer_title" msgid="1181272430009156556">"Prioridade das notificacións intelixentes"</string>
<string name="asst_capability_prioritizer_summary" msgid="954988212366568737">"Define automaticamente como discretas as notificacións de prioridade baixa"</string>
- <string name="asst_capability_ranking_title" msgid="312998580233257581">"Clasificación automática das notificacións"</string>
+ <string name="asst_capability_ranking_title" msgid="312998580233257581">"Clasificación intelixente das notificacións"</string>
<string name="asst_capability_ranking_summary" msgid="2293524677144599450">"Clasifica as notificacións automaticamente por relevancia"</string>
<string name="asst_feedback_indicator_title" msgid="5169801869752395354">"Comentarios sobre notificacións intelixentes"</string>
<string name="asst_feedback_indicator_summary" msgid="5862082842073307900">"Indica axustes realizados nas notificacións e mostra a opción de enviar comentarios ao sistema"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Máximo de conxuntos de datos visibles"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Restablecer valores predeterminados"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Restablecéronse as opcións para programadores da función de autocompletar"</string>
+ <string name="location_category" msgid="3496759112306219062">"Localización"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Indicador de localización da barra de estado"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Mostrar para todas as localizacións, como a rede e a conectividade"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forzar medicións completas de GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Realiza un seguimento de todas as frecuencias e constelacións de satélites de GNSS sen ciclos"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema do dispositivo"</string>
<string name="default_theme" msgid="4815428567082263639">"Predeterminado"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nome da rede"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pon en pausa as notificacións para concentrarte"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Función non dispoñible"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Desactivouse esta función porque fai que o teléfono vaia máis lento"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forzar medicións completas de GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Realiza un seguimento de todas as frecuencias e constelacións de satélites de GNSS sen ciclos"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Mostrar sempre o cadro de diálogo de fallos"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Mostra o cadro de diálogo cada vez que falla unha aplicación"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Seleccionar aplicación compatible con ANGLE"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Activado (silenciado)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Desactivado"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalles da rede"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"As aplicacións do teu teléfono poden consultar o nome do teu dispositivo. Tamén poden velo outros usuarios cando te conectes a dispositivos Bluetooth ou configures zonas wifi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"As aplicacións do teu teléfono poden consultar o nome do teu dispositivo. Tamén poden velo outros usuarios cando te conectes a dispositivos Bluetooth ou a redes wifi, así como cando configures zonas wifi."</string>
<string name="devices_title" msgid="649715719278562515">"Dispositivos"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Toda a configuración"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suxestións"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Non se puido activar a SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Quita a SIM e introdúcea de novo. Se o problema persiste, reinicia o dispositivo."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Tenta activar a SIM de novo. Se o problema persiste, reinicia o dispositivo."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activación da rede"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operador activo: <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Toca para modificar a configuración da SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Tarxeta SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Queres borrar esta SIM descargada?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Ao borrar esta SIM, quitarase o servizo de <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> deste dispositivo.\n\nNon se cancelará o servizo de <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Borrar"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Coa función Chamadas por wifi podes facer e recibir chamadas a través de redes que non pertencen a ningún operador, como algunhas redes wifi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Chamadas"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"prefírense"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"prefírense as chamadas"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"prefírense as SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"non dispoñibles"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Sen SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferencias"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Conectarse a redes públicas"</string>
<string name="keywords_internet" msgid="7674082764898690310">"conexión de rede, Internet, sen fíos, datos, wifi, móbil, operador, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Ver redes seguras para os avións"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Desactivar modo avión"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Non está dispoñible porque o modo hora de durmir está activado"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Completouse o restablecemento da importancia das notificacións."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplicacións"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index a510200..9e1903f 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 સરનામા"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"સાચવેલા નેટવર્ક"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"સબ્સ્ક્રિપ્શન"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"અન્ય નેટવર્ક"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP સેટિંગ"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"આ વપરાશકર્તા માટે વાઇ-ફાઇ વિગતવાર સેટિંગ્સ ઉપલબ્ધ નથી"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"સાચવો"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN કાઢી નાખો"</string>
<string name="menu_new" msgid="6571230342655509006">"નવું APN"</string>
<string name="menu_save" msgid="6611465355127483100">"સાચવો"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"નિકાળો"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"રદ કરો"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"નામ ફીલ્ડ ખાલી હોઈ શકતું નથી."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ખાલી હોઇ શકતું નથી."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"સામાન્ય કરતાં વધુ ઉપયોગમાં લેવાયેલું ટૅબ્લેટ"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"સામાન્ય કરતાં વધુ ઉપયોગમાં લેવાયેલું ઉપકરણ"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"બૅટરી સામાન્ય કરતાં વહેલી સમાપ્ત થઈ શકે છે"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"બૅટરીનો વપરાશ હંગામી રૂપે મર્યાદિત છે"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"બૅટરીની સ્થિતિ જાળવી રાખવામાં સહાય કરે છે. વધુ જાણવા માટે ટૅપ કરો."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"બૅટરીનો વપરાશ હંગામી રૂપે મર્યાદિત છે. વધુ જાણવા માટે ટૅપ કરો."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"તમારો ફોન સામાન્ય કરતાં વધુ ઉપયોગમાં લેવાયો છે. તમારી બૅટરી અપેક્ષા કરતાં વહેલી ખલાસ થઈ શકે છે.\n\nબૅટરી વપરાશ અનુસાર ટોચની ઍપ:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"તમારું ટૅબ્લેટ સામાન્ય કરતાં વધુ ઉપયોગમાં લેવાયું છે. તમારી બૅટરી અપેક્ષા કરતાં વહેલી ખલાસ થઈ શકે છે.\n\nબૅટરી વપરાશ અનુસાર ટોચની ઍપ:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"તમારું ડિવાઇસ સામાન્ય કરતાં વધુ ઉપયોગમાં લેવાયું છે. તમારી બૅટરી અપેક્ષા કરતાં વહેલી ખલાસ થઈ શકે છે.\n\nબૅટરી વપરાશ અનુસાર ટોચની ઍપ:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ઇન્સ્ટૉલ કરશો નહીં"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"છતાં ઇન્સ્ટૉલ કરો"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"પ્રમાણપત્ર ઇન્સ્ટૉલ નથી કર્યું"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g>ને આ ડિવાઇસ પર પ્રમાણપત્રો ઇન્સ્ટૉલ કરવાની મંજૂરી આપીએ?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"નીચે આપેલી ઍપ અને URL પર તમે આ પ્રમાણપત્રોથી ઓળખાશો"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"મંજૂરી આપશો નહીં"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"મંજૂરી આપો"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"વધુ બતાવો"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"પ્રમાણપત્ર મેનેજમેન્ટની ઍપ"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"એકપણ નહીં"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"આ ઍપ દ્વારા ઇન્સ્ટૉલ કરવામાં આવેલા પ્રમાણપત્રો તમને નીચે આપેલી ઍપ અને URLs પર ઓળખે છે"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"કાઢી નાખો"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"કટોકટી સમયે ડાયલનું સિગ્નલ"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"જ્યારે કટોકટીનો કૉલ કરવામાં આવે ત્યારે વર્તન સેટ કરો"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"બૅકઅપ"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"જોઈ શકાતા મહત્તમ ડેટાસેટની સંખ્યા"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ડિફૉલ્ટ મૂલ્યો પર રીસેટ કરો"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"ઑટોમૅટિક રીતે ભરવાના ડેવલપરના વિકલ્પો રીસેટ કરવામાં આવ્યા છે"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"સંપૂર્ણ GNSS માપને લાગુ કરો"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"કોઈપણ ડ્યૂટી-સાઈક્લિંગ વગર બધા GNSS તારામંડળો અને આવર્તનો ટ્રૅક કરો"</string>
<string name="device_theme" msgid="5027604586494772471">"ઉપકરણની થીમ"</string>
<string name="default_theme" msgid="4815428567082263639">"ડિફૉલ્ટ"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"નેટવર્કનું નામ"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ધ્યાન કેન્દ્રિત કરવા માટે નોટિફિકેશન થોભાવો"</string>
<string name="disabled_feature" msgid="7151433782819744211">"સુવિધા ઉપલબ્ધ નથી"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"આ સુવિધા બંધ કરવામાં આવી છે કારણ કે તે તમારા ફોનની કામ કરવાની ગતિ ધીમી કરે છે"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"સંપૂર્ણ GNSS માપને લાગુ કરો"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"કોઈપણ ડ્યૂટી-સાઈક્લિંગ વગર બધા GNSS તારામંડળો અને આવર્તનો ટ્રૅક કરો"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"હંમેશા ક્રૅશ સંવાદ બતાવો"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"જયારે પણ કોઈ ઍપ ક્રૅશ થાય ત્યારે સંવાદ બતાવો"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE દ્વારા ચાલુ ઍપ્લિકેશન પસંદ કરો"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ચાલુ (મ્યૂટ)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"બંધ"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"નેટવર્કની વિગતો"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"તમારા ઉપકરણનું નામ તમારા ફોનની ઍપ પર જોઈ શકાય છે. તમે બ્લૂટૂથથી કનેક્ટ કરો અથવા વાઇ-ફાઇ હૉટસ્પૉટને સેટ કરો ત્યારે તે અન્ય લોકોને પણ દેખાઈ શકે છે."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"તમારા ડિવાઇસનું નામ તમારા ફોનની ઍપ પર જોઈ શકાય છે. તમે બ્લૂટૂથ ડિવાઇસથી કનેક્ટ કરો, વાઇ-ફાઇ નેટવર્કથી કનેક્ટ કરો અથવા વાઇ-ફાઇ હૉટસ્પૉટને સેટ કરો ત્યારે તે અન્ય લોકોને પણ દેખાઈ શકે છે."</string>
<string name="devices_title" msgid="649715719278562515">"ઉપકરણો"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"બધી સેટિંગ"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"સૂચનો"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"સિમ કાર્ડ સક્રિય કરી શકાતું નથી"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"સિમ કાર્ડ કાઢી નાખો અને તેને ફરીથી દાખલ કરો. તેમ છતાં સમસ્યા આવે, તો તમારું ડિવાઇસ ફરી શરૂ કરો."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"સિમ કાર્ડ ફરીથી ચાલુ કરવાનો પ્રયાસ કરો. તેમ છતાં સમસ્યા આવે, તો તમારું ડિવાઇસ ફરી શરૂ કરો."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"નેટવર્કનું સક્રિયકરણ"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> સક્રિય છે"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"સિમના સેટિંગ અપડેટ કરવા માટે ટૅપ કરો"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"સિમ કાર્ડ"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"આ ડાઉનલોડ કરેલું સિમ કાઢી નાખીએ?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"આ સિમ કાઢી નાખવાથી આ ડિવાઇસમાંથી <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> સેવા કાઢી નાખવામાં આવશે.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> માટેની સેવા રદ નહીં થાય."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"કાઢી નાખો"</string>
@@ -4964,12 +4983,9 @@
<string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ઇમર્જન્સી કૉલ"</string>
<string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"વાઇ-ફાઇ કૉલિંગ પર ઇમર્જન્સી કૉલ કરવાની સુવિધા તમારા કૅરિઅર પર સમર્થિત નથી.\nઇમર્જન્સી કૉલ કરવા માટે ડિવાઇસ ઑટોમૅટિક રીતે સેલ્યુલર નેટવર્ક પર સ્વિચ કરે છે.\nઇમર્જન્સી કૉલ કરવાનું ફક્ત સેલ્યુલર કવરેજ ધરાવતા વિસ્તારમાં જ શક્ય છે."</string>
<string name="wifi_calling_summary" msgid="8566648389959032967">"ક્વૉલિટી સુધારવા કૉલ માટે વાઇ-ફાઇનો ઉપયોગ કરો"</string>
- <!-- no translation found for cross_sim_calling_settings_title (1179406214047299816) -->
- <skip />
- <!-- no translation found for cross_sim_calling_setting_summary (7960473304104701519) -->
- <skip />
- <!-- no translation found for keywords_cross_sim_calling (1702104511020507778) -->
- <skip />
+ <string name="cross_sim_calling_settings_title" msgid="1179406214047299816">"ક્રૉસ સિમ કૉલિંગ"</string>
+ <string name="cross_sim_calling_setting_summary" msgid="7960473304104701519">"આ સિમથી બીજા સિમ પર કૉલ કરવા અને SMSs મોકલવાની મંજૂરી આપો."</string>
+ <string name="keywords_cross_sim_calling" msgid="1702104511020507778">"ક્રૉસ સિમ કૉલિંગ"</string>
<string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ઇનક્મિંગ MMS સંદેશ"</string>
<string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS સંદેશ મોકલી શકાતો નથી"</string>
<string name="enable_mms_notification_summary" msgid="6432752438276672500">"મોબાઇલ ડેટા બંધ હોય ત્યારે પણ <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> પર MMS સંદેશ મોકલવાની મંજૂરી આપવા માટે ટૅપ કરો"</string>
@@ -5042,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"અમુક વાઇ-ફાઇ નેટવર્ક જેમ કે મોબાઇલ ઑપરેટર વિનાના નેટવર્ક પરથી વાઇ-ફાઇ કૉલિંગની સેવા તમને કૉલ કરવાની અને મેળવવાની સુવિધા આપે છે."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"કૉલ"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"પસંદ કરેલું"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"કૉલ માટે પસંદ કરેલું સિમ કાર્ડ"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS માટે પસંદ કરેલું સિમ કાર્ડ"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ઉપલબ્ધ નથી"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"કોઈ સિમ કાર્ડ નથી"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"પસંદગીઓ"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"સાર્વજનિક નેટવર્ક સાથે કનેક્ટ કરો"</string>
<string name="keywords_internet" msgid="7674082764898690310">"નેટવર્ક કનેક્શન, ઇન્ટરનેટ, વાયરલેસ, ડેટા, વાઇ-ફાઇ, સેલ્યુલર, મોબાઇલ, સેલ, મોબાઇલ ઑપરેટર, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"એરપ્લેન મોડમાં ઉપયોગ માટે સુરક્ષિત નેટવર્ક જુઓ"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"એરપ્લેન મોડ બંધ કરો"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"ઉપલબ્ધ નથી કારણ કે બેડટાઇમ મોડ ચાલુ છે"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"નોટિફિકેશનનું મહત્ત્વ રીસેટ કરવાની પ્રક્રિયા પૂર્ણ થઈ."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ઍપ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 29e493f..3623576 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -321,7 +321,7 @@
<string name="security_dashboard_summary" msgid="8750183806533140464">"स्क्रीन लॉक, फ़िंगरप्रिंट"</string>
<string name="security_dashboard_summary_no_fingerprint" msgid="1044589595710115123">"स्क्रीन लॉक"</string>
<string name="multi_biometric_enroll_title" msgid="3007607723604088374">"फ़िंगरप्रिंट और चेहरा पहचानने की सुविधा से, सुरक्षित तरीके से फ़ोन को अनलॉक करें"</string>
- <string name="multi_biometric_enroll_subtitle" msgid="8357072842904027301">"आप ऐप में साइन इन और पैसे चुकाने की पुष्टि भी कर सकते हैं"</string>
+ <string name="multi_biometric_enroll_subtitle" msgid="8357072842904027301">"आप ऐप्लिकेशन में साइन इन करके भी पैसे चुकाने की पुष्टि कर सकते हैं"</string>
<string name="multi_biometric_enroll_setup_with" msgid="421375792889910150">"इनसे अनलॉक करने की सुविधा सेट करें:"</string>
<string name="multi_biometric_enroll_face_unlock_title" msgid="7627564065626355692">"मालिक का चेहरा पहचानकर अनलॉक"</string>
<string name="multi_biometric_enroll_face_unlock_description" msgid="7626442550602926682">"अपने फ़ोन को अनलॉक करना आसान बनाएं"</string>
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 पते"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"सेव किए गए नेटवर्क"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"सदस्यता"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"अन्य नेटवर्क"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"आईपी सेटिंग"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"वाई-फ़ाई की बेहतर सेटिंग इस उपयोगकर्ता के लिए मौजूद नहीं हैं"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"सेव करें"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN मिटाएं"</string>
<string name="menu_new" msgid="6571230342655509006">"नया APN"</string>
<string name="menu_save" msgid="6611465355127483100">"सेव करें"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"रद्द करें"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"रद्द करें"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"नाम फ़ील्ड खाली मत छोड़िए."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN खाली नहीं हो सकता."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"टैबलेट को सामान्य से ज़्यादा इस्तेमाल किया गया"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"डिवाइस को सामान्य से ज़्यादा इस्तेमाल किया गया"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"हो सकता है कि बैटरी सामान्य समय से पहले खत्म हो जाए"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"कुछ समय के लिए, बैटरी का सीमित इस्तेमाल होगा"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"इससे बैटरी की परफ़ॉर्मेंस बेहतर होती है. ज़्यादा जानने के लिए टैप करें."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"कुछ समय के लिए, बैटरी पूरी तरह से चार्ज नहीं होगी. ज़्यादा जानने के लिए टैप करें."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"आपका फ़ोन सामान्य से ज़्यादा इस्तेमाल किया गया है. आपके फ़ोन की बैटरी समय से पहले खत्म हो सकती है.\n\nसबसे ज़्यादा बैटरी इस्तेमाल करने वाले ऐप्लिकेशन:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"आपका टैबलेट सामान्य से ज़्यादा इस्तेमाल हुआ है. आपके टैबलेट की बैटरी समय से पहले खत्म हो सकती है.\n\nसबसे ज़्यादा बैटरी इस्तेमाल करने वाले ऐप्लिकेशन:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"आपका डिवाइस सामान्य से ज़्यादा इस्तेमाल किया गया है. आपके डिवाइस की बैटरी समय से पहले खत्म हो सकती है.\n\nसबसे ज़्यादा बैटरी इस्तेमाल करने वाले ऐप्लिकेशन:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"इंस्टॉल न करें"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"फिर भी इंस्टॉल करें"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"प्रमाणपत्र इंस्टॉल नहीं किया गया है"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"क्या आप <xliff:g id="APP_NAME">%s</xliff:g> को इस डिवाइस पर प्रमाणपत्र इंस्टॉल करने की अनुमति देना चाहते हैं?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"नीचे दिए गए ऐप्लिकेशन और यूआरएल में आप इन प्रमाणपत्रों से पहचाने जाएंगे"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"अनुमति न दें"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"अनुमति दें"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"ज़्यादा दिखाएं"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"प्रमाणपत्र प्रबंधन ऐप्लिकेशन"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"प्रमाणपत्र प्रबंधित करने के लिए कोई ऐप्लिकेशन नहीं है"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"यहां बताए गए ऐप्लिकेशन और यूआरएल में आपकी पहचान, इस ऐप्लिकेशन से इंस्टॉल किए गए प्रमाणपत्रों से होगी"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"हटाएं"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"आपातकालीन डायलिंग सिग्नल"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"आपातकालीन कॉल करने के दौरान व्यवहार सेट करें"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"बैकअप लें"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"दिखने वाले डेटा सेट की ज़्यादा से ज़्यादा संख्या"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"डिफ़ॉल्ट मान पर रीसेट करें"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"डेवलपर के लिए अपने आप भरने की सुविधा (ऑटो फ़िल) सेटिंग और टूल रीसेट हो गए हैं"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"जीएनएसएस माप को हर हाल में लागू करें"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"बिना ड्यूटी-साइक्लिंग के जीएनएसएस के सभी तारामंडल (कॉन्स्टलेशन) और फ़्रीक्वेंसी ट्रैक करें"</string>
<string name="device_theme" msgid="5027604586494772471">"डिवाइस की थीम"</string>
<string name="default_theme" msgid="4815428567082263639">"डिफ़ॉल्ट"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"नेटवर्क का नाम"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ध्यान भटकने से रोकने के लिए डिवाइस की सूचनाओं को कुछ समय के लिए रोकें"</string>
<string name="disabled_feature" msgid="7151433782819744211">"सुविधा उपलब्ध नहीं है"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"यह सुविधा बंद कर दी गई है क्योंकि इससे आपका फ़ोन धीमा हो जाता है"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"जीएनएसएस माप को हर हाल में लागू करें"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"बिना ड्यूटी-साइक्लिंग के जीएनएसएस के सभी तारामंडल (कॉन्स्टलेशन) और फ़्रीक्वेंसी ट्रैक करें"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"क्रैश होने की सूचना हर बार दिखाएं"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"जब भी कोई ऐप्लिकेशन क्रैश हो, उसकी सूचना दिखाएं"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"कोण की सुविधा वाला ऐप्लिकेशन चुनें"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"चालू है (म्यूट)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"बंद है"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"नेटवर्क के बारे में जानकारी"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"आपके फ़ोन पर मौजूद ऐप्लिकेशन, आपके डिवाइस का नाम जान सकते हैं. ब्लूटूथ डिवाइस जोड़ते समय या वाई-फ़ाई हॉटस्पॉट सेटअप करते समय, इसे दूसरे लोग भी देख सकते हैं."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"आपके डिवाइस के नाम की जानकारी को फ़ोन पर मौजूद ऐप्लिकेशन ऐक्सेस कर सकते हैं. ब्लूटूथ डिवाइस जोड़ते समय, वाई-फ़ाई नेटवर्क से जुड़ते समय या वाई-फ़ाई हॉटस्पॉट सेट अप करते समय भी दूसरे लोग आपके डिवाइस का नाम देख सकते हैं."</string>
<string name="devices_title" msgid="649715719278562515">"डिवाइस"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"सभी सेटिंग"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"सुझाव"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"सिम चालू नहीं किया जा सका"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"सिम निकालकर फिर से लगाएं. अगर तब भी समस्या ठीक नहीं होती, तो डिवाइस को रीस्टार्ट करें."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"सिम दोबारा चालू करने की कोशिश करें. अगर तब भी समस्या ठीक नहीं होती, तो डिवाइस को रीस्टार्ट करें."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"नेटवर्क चालू करना"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> चालू है"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"सिम की सेटिंग अपडेट करने के लिए टैप करें"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"सिम कार्ड"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"क्या आप डाउनलोड किए गए इस सिम को हमेशा के लिए मिटाना चाहते हैं?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"इस सिम को डिवाइस से हमेशा के लिए मिटाने पर, <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> की सेवा हट जाती है.\n\nहालांकि, <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> की सेवा नहीं हटेगी."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"हमेशा के लिए मिटाएं"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"वाई-फ़ाई कॉलिंग आपको ऐसे नेटवर्क से कॉल करने और उन पर कॉल पाने की सुविधा देती है जो सिम का इस्तेमाल नहीं करते, जैसे कुछ वाई-फ़ाई नेटवर्क."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"कॉल"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"मैसेज (एसएमएस)"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"इस सिम का इस्तेमाल किया जाए"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"कॉल के लिए इस सिम का इस्तेमाल किया जाए"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"मैसेज (एसएमएस) के लिए इस सिम का इस्तेमाल किया जाए"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"उपलब्ध नहीं है"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"कोई सिम कार्ड नहीं लगाया गया है"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"प्राथमिकताएं"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"सार्वजनिक नेटवर्क से कनेक्ट करें"</string>
<string name="keywords_internet" msgid="7674082764898690310">"नेटवर्क कनेक्शन, इंटरनेट, वायरलेस, डेटा, वाईफ़ाई, सेल्युलर, मोबाइल, मोबाइल और इंटरनेट सेवा देने वाली कंपनी, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"हवाई जहाज़ सुरक्षित नेटवर्क देखें"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"हवाई जहाज़ मोड बंद करें"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"बेडटाइम मोड चालू होने पर यह सुविधा काम नहीं करती है"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"सूचनाओं की प्राथमिकता को रीसेट करने की प्रक्रिया पूरी हुई."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ऐप्लिकेशन"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index ed1034a..5a3950d 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -1042,8 +1042,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 adrese"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Spremljene mreže"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Pretplate"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Ostale mreže"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP postavke"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Napredne postavke Wi‑Fi-ja nisu dostupne za ovog korisnika"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Spremi"</string>
@@ -1618,7 +1617,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Izbriši APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Novi APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Spremi"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Odbaci"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Odustani"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Polje naziva ne može biti prazno."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ne može biti prazan."</string>
@@ -2487,8 +2486,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet se upotrebljava više nego obično"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Uređaj se upotrebljava više nego obično"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Baterija bi se mogla isprazniti brže nego obično"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Baterija je privremeno ograničena"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Pomaže očuvati zdravlje baterije. Dodirnite da biste saznali više."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Baterija je privremeno ograničena. Dodirnite da biste saznali više."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Vaš se telefon upotrebljavao više nego obično. Baterija bi se mogla isprazniti brže nego što očekujete.\n\nAplikacije koje najviše troše bateriju:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Vaš se tablet upotrebljavao više nego obično. Baterija bi se mogla isprazniti brže nego što očekujete.\n\nAplikacije koje najviše troše bateriju:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Vaš se uređaj upotrebljavao više nego obično. Baterija bi se mogla isprazniti brže nego što očekujete.\n\nAplikacije koje najviše troše bateriju:"</string>
@@ -2761,6 +2761,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ne instaliraj"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Svejedno instaliraj"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certifikat nije instaliran"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Dopustiti aplikaciji <xliff:g id="APP_NAME">%s</xliff:g> da instalira certifikate na ovom uređaju?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Ovi certifikati identificirat će vas aplikacijama i URl-ovima u nastavku"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Nemoj dopustiti"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Dopusti"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Prikaži više"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Apl. za upravljanje certifik."</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nema"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certifikati koje je instalirala ova aplikacija identificiraju vas aplikacijama i URL-ovima navedenim u nastavku"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Ukloni"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signal za hitne pozive"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Postavite način ponašanja za hitni poziv"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Sigurnosna kopija"</string>
@@ -4722,6 +4731,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksimalan broj vidljivih skupova podataka"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Vrati na zadane vrijednosti"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Opcije automatskog popunjavanja za razvojne programere vraćene su na zadano"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Primijeni potpuna mjerenja GNSS-a"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Prati sve konstelacije i frekvencije GNSS-a bez određivanja radnog omjera"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema uređaja"</string>
<string name="default_theme" msgid="4815428567082263639">"Zadano"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Naziv mreže"</string>
@@ -4738,8 +4755,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pauzirajte obavijesti da biste ostali usredotočeni"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Značajka nije dostupna"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Ta je značajka isključena jer usporava telefon"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Primijeni potpuna mjerenja GNSS-a"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Prati sve konstelacije i frekvencije GNSS-a bez određivanja radnog omjera"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Uvijek prikaži dijaloški okvir o rušenju"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Prikaži dijaloški okvir svaki put kada se aplikacija sruši"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Upotrijebite aplikaciju omogućenu za ANGLE"</string>
@@ -4807,7 +4822,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Uključi (isključi zvuk)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Isključi"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Podaci o mreži"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Naziv vašeg uređaja vidljiv je aplikacijama na vašem telefonu. Mogu ga vidjeti i drugi ljudi kada se povežete s Bluetooth uređajima ili postavite Wi-Fi žarišnu točku."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Naziv vašeg uređaja vidljiv je aplikacijama na vašem telefonu. Mogu ga vidjeti i drugi ljudi kada se povežete s Bluetooth uređajima ili Wi-Fi mrežom ili postavite Wi-Fi žarišnu točku."</string>
<string name="devices_title" msgid="649715719278562515">"Uređaji"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Sve postavke"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Prijedlozi"</string>
@@ -4968,6 +4983,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM se ne može aktivirati"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Izvadite SIM i umetnite ga ponovo. Ako se problem ponovi, ponovo pokrenite uređaj."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Pokušajte ponovo uključiti SIM. Ako se problem ponovi, ponovo pokrenite uređaj."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivacija mreže"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktivan"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Dodirnite da biste ažurirali postavke SIM-a"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM kartica"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Želite li izbrisati taj preuzeti SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Brisanjem ovog SIM-a uklanja se usluga mobilnog operatera <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> s ovog uređaja.\n\nUsluga mobilnog operatera <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> neće se otkazati."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Izbriši"</string>
@@ -5122,9 +5141,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi‑Fi pozivi omogućuju vam da upućujete i odgovarate na pozive putem mreža koje ne pripadaju mobilnom operateru, kao što su neke Wi-Fi mreže."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Pozivi"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferirano"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferiraju se pozivi"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferiraju se SMS-ovi"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"nije dostupno"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Nema SIM kartice"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Postavke"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Poveži se s javnim mrežama"</string>
<string name="keywords_internet" msgid="7674082764898690310">"mrežna veza, internet, bežično, podaci, wifi, wi-fi, wi fi, mobilno, mobilni uređaj, mobilni operater, 4 g, 3 g, 2 g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Pregled mreža sigurnih za rad u zrakopl."</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Isključite način rada u zrakoplovu"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nije dostupno jer je uključen način rada u vrijeme spavanja"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Dovršeno je vraćanje važnosti obavijesti na zadano."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikacije"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 7e5fbf6..a578a8d 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-címek"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Mentett hálózatok"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Előfizetések"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Egyéb hálózatok"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-beállítások"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"A speciális Wi-Fi-beállítások nem állnak rendelkezésre ennél a felhasználónál"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Mentés"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN törlése"</string>
<string name="menu_new" msgid="6571230342655509006">"Új APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Mentés"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Elvetés"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Mégse"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"A Név mező nem lehet üres."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Az APN nem lehet üres."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"A táblagépet többet használja a megszokottnál"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Az eszközt többet használja a megszokottnál"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Az akkumulátor a szokásosnál hamarabb lemerülhet"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Akkumulátor ideiglenesen korlátozva"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Segít megőrizni az akkumulátor élettartamát. A részletekért koppintson."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Az akkumulátor ideiglenesen korlátozva. A részletekért koppintson."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"A telefont többet használta a megszokottnál. A vártnál hamarabb lemerülhet az akkumulátor.\n\nAz akkumulátort leginkább igénybe vevő alkalmazások:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"A táblagépet többet használta a megszokottnál. A vártnál hamarabb lemerülhet az akkumulátor.\n\nAz akkumulátort leginkább igénybe vevő alkalmazások:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Az eszközt többet használta a megszokottnál. A vártnál hamarabb lemerülhet az akkumulátor.\n\nAz akkumulátort leginkább igénybe vevő alkalmazások:"</string>
@@ -2627,7 +2627,7 @@
<string name="battery_saver_auto_percentage_summary" msgid="6190884450723824287">"<xliff:g id="PERCENT">%1$s</xliff:g>-os értéknél kapcsol be"</string>
<string name="battery_saver_schedule_settings_title" msgid="3688019979950082237">"Ütemezés beállítása"</string>
<string name="battery_saver_turn_on_summary" msgid="1433919417587171160">"Az akkumulátor élettartamának növelése"</string>
- <string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Kikapcsolás töltés közben"</string>
+ <string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Kikapcsolás feltöltés után"</string>
<string name="battery_saver_sticky_description_new" product="default" msgid="4969508893424116609">"Az Akkumulátorkímélő mód kikapcsol, ha a telefon akkumulátora <xliff:g id="PERCENT">%1$s</xliff:g>-os szintre emelkedik."</string>
<string name="battery_saver_sticky_description_new" product="tablet" msgid="6613068787945311001">"Az Akkumulátorkímélő mód kikapcsol, ha a táblagép akkumulátora <xliff:g id="PERCENT">%1$s</xliff:g>-os szintre emelkedik."</string>
<string name="battery_saver_sticky_description_new" product="device" msgid="8707774542183385479">"Az Akkumulátorkímélő mód kikapcsol, ha az eszköz akkumulátora <xliff:g id="PERCENT">%1$s</xliff:g>-os szintre emelkedik."</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ne telepítse"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Telepítés mindenképp"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"A tanúsítvány nincs telepítve"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Engedélyezi a tanúsítványok telepítését a(z) <xliff:g id="APP_NAME">%s</xliff:g> alkalmazásnak ezen az eszközön?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Ezek a tanúsítványok azonosítják Önt az alábbi alkalmazások és URL-ek számára"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Tiltás"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Engedélyezés"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Több megjelenítése"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Tanúsítványkezelő alkalmazás"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nincs"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Az alkalmazás által telepített tanúsítványok az alábbi alkalmazások és URL-ek számára azonosítják Önt"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Eltávolítás"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Segélyhívó jelzés"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Viselkedés beállítása segélyhívás kezdeményezésekor"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Biztonsági mentés"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maximális látható adatkészletek"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Alapértelmezett értékek visszaállítása"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Az automatikus kitöltésre vonatkozó fejlesztői beállítások vissza lettek állítva"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Teljes GNSS-mérés indítása"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Az összes GNSS-műhold és -frekvencia nyomon követése aktívciklus-szabályozás nélkül"</string>
<string name="device_theme" msgid="5027604586494772471">"Eszköztéma"</string>
<string name="default_theme" msgid="4815428567082263639">"Alapértelmezett"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Hálózat neve"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Az összpontosításhoz szüneteltetheti az értesítéseket"</string>
<string name="disabled_feature" msgid="7151433782819744211">"A funkció nem áll rendelkezésre"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"A rendszer kikapcsolta ezt a funkciót, mert lelassítja a telefont"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Teljes GNSS-mérés indítása"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Az összes GNSS-műhold és -frekvencia nyomon követése aktívciklus-szabályozás nélkül"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Összeomlási párbeszédablak megjelenítése minden alkalommal"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Mindig megjeleníti a párbeszédablakot, amikor valamelyik alkalmazás összeomlik"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE-kompatibilis alkalmazás kiválasztása"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Be (némítás)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Ki"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Hálózati információk"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Eszköze neve látható a telefonján lévő alkalmazások számára. Mások is láthatják, ha csatlakoztatja telefonját más Bluetooth-eszközökhöz, vagy ha Wi-Fi-hotspotot állít be."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Eszköze neve látható a telefonján lévő alkalmazások számára. Mások is láthatják, ha csatlakoztatja telefonját más Bluetooth-eszközökhöz, Wi-Fi-hálózathoz, vagy ha Wi-Fi-hotspotot állít be."</string>
<string name="devices_title" msgid="649715719278562515">"Eszközök"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Minden beállítás"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Javaslatok"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nem sikerült a SIM aktiválása"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Távolítsa el a SIM-kártyát, majd helyezze be újra. Ha a probléma továbbra is fennáll, indítsa újra az eszközt."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Próbálkozzon meg újra a SIM bekapcsolásával. Ha a probléma továbbra is fennáll, indítsa újra az eszközt."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Hálózat aktiválása"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>: aktív"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Koppintson a SIM-beállítások frissítéséhez."</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-kártya"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Törli ezt a letöltött SIM-et?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"A SIM törlésével eltávolítja a(z) <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> szolgáltatását erről az eszközről.\n\nA(z) <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> szolgáltatását nem mondja le."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Törlés"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"A Wi-Fi-hívás funkció segítségével hívásokat indíthat és fogadhat nem szolgáltatói hálózatokon, így például bizonyos Wi-Fi-hálózatokon."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Hívások"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"előnyben részesített"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"hívások előnyben részesítése"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS-ek előnyben részesítése"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"nem áll rendelkezésre"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM-kártya nélkül"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Beállítások"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Csatlakozás nyilvános hálózatokhoz"</string>
<string name="keywords_internet" msgid="7674082764898690310">"hálózati kapcsolat, internet, vezeték nélküli, mobiladat, adat, wifi, wi-fi, mobil, mobiltelefon, szolgáltató, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Repülőn használható hálózatok mutatása"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Repülős üzemmód kikapcsolása"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nem áll rendelkezésre, mert be van kapcsolva az alvásidő mód"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Értesítés fontosságának visszaállítása befejezve."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Alkalmazások"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index a1c1be5..d0e5726 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 հասցեներ"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Պահված ցանցեր"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Բաժանորդագրումներ"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Այլ ցանցեր"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP կարգավորումներ"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi-Fi-ի լրացուցիչ կարգավորումներն անհասանելի են այս օգտատիրոջը"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Պահել"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Ջնջել APN-ը"</string>
<string name="menu_new" msgid="6571230342655509006">"Նոր APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Պահել"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Հրաժարվել"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Չեղարկել"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Անվանման դաշտը պետք է լրացված լինի:"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN-ը չի կարող դատարկ լինել:"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Պլանշետը սովորականից շատ է էներգիա օգտագործել"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Սարքը սովորականից շատ է էներգիա օգտագործել"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Մարտկոցի լիցքը կարող է սովորականից շուտ սպառվել"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Մարտկոցը ժամանակավորապես սահմանափակված է"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Օգնում է պահպանել մարտկոցի աշխատանքային հզորությունը։ Հպեք՝ ավելին իմանալու համար։"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Մարտկոցը ժամանակավորապես սահմանափակված է։ Հպեք՝ ավելին իմանալու համար։"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Ձեր հեռախոսը սովորականից շատ է էներգիա օգտագործել։ Մարտկոցի լիցքը կարող է սպասվածից շուտ սպառվել։\n\nԱմենից շատ էներգիա սպառող հավելվածներն են՝"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Ձեր պլանշետը սովորականից շատ է էներգիա օգտագործել։ Մարտկոցի լիցքը կարող է սպասվածից շուտ սպառվել։\n\nԱմենից շատ էներգիա սպառող հավելվածներն են՝"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Ձեր սարքը սովորականից շատ է էներգիա օգտագործել։ Մարտկոցի լիցքը կարող է սպասվածից շուտ սպառվել։\n\nԱմենից շատ էներգիա սպառող հավելվածներն են՝"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Չտեղադրել"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Տեղադրել"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Հավաստագիրը չի տեղադրվել"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Թույլատրե՞լ <xliff:g id="APP_NAME">%s</xliff:g> հավելվածին հավաստագրեր տեղադրել այս սարքում"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Այս հավաստագրերը կնույնականացնեն ձեզ ստորև բերված հավելվածների և URL հասցեների համար"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Չթույլատրել"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Թույլատրել"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Ցույց տալ ավելին"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Հավաստագրերի կառավարման հավելված"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Չկա"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Այս հավելվածի կողմից տեղադրված հավաստագրերը կնույնականացնեն ձեզ ստորև բերված հավելվածների և URL հասցեների համար"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Հեռացնել"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Արտակարգ կանչի համարհավաքման ազդանշան"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Կարգավորել աշխատանքի ռեժիմը շտապ կանչի դեպքում"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Պահուստավորում"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Տեսանելի տվյալակազմերի առավելագույն քանակը"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Վերականգնել կանխադրված արժեքները"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Ինքնալրացման կարգավորումները զրոյացվեցին"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS-ի չափումների ամբողջական բեռնում"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Հետագծել GNSS-ի բոլոր սխեմաներն ու հաճախականությունները՝ առանց աշխատաշրջանի"</string>
<string name="device_theme" msgid="5027604586494772471">"Սարքի թեման"</string>
<string name="default_theme" msgid="4815428567082263639">"Կանխադրված"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Ցանցի անունը"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Չցուցադրել շեղող ծանուցումները"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Գործառույթն անհասանելի է"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Այս գործառույթն անջատվել է, քանի որ այն դանդաղեցնում էր ձեր հեռախոսի աշխատանքը"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS-ի չափումների ամբողջական բեռնում"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Հետագծել GNSS-ի բոլոր սխեմաներն ու հաճախականությունները՝ առանց աշխատաշրջանի"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Միշտ ցույց տալ խափանման մասին ծանուցումը"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Ցույց տալ ծանուցումը հավելվածի խափանման դեպքում"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Ընտրեք ANGLE-ի աջակցմամբ հավելված"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Միացնել (անջատել ձայնը)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Անջատված է"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Ցանցի տվյալներ"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Ձեր սարքի անունը տեսանելի է հեռախոսի հավելվածներին։ Այն կարող են տեսնել օգտատերերը, երբ միանում եք Bluetooth սարքերի կամ կարգավորում եք Wi-Fi թեժ կետը։"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Ձեր սարքի անունը տեսանելի է հեռախոսում տեղադրված հավելվածներին։ Այն կարող են տեսնել օգտատերերը, երբ միանում եք Bluetooth սարքերի, Wi-Fi ցանցի, կամ կարգավորում եք Wi-Fi թեժ կետ։"</string>
<string name="devices_title" msgid="649715719278562515">"Սարքեր"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Բոլոր կարգավորումները"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Հուշումներ"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Չհաջողվեց ակտիվացնել SIM քարտը"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Հանեք, այնուհետև նորից տեղադրեք SIM քարտը։ Եթե խնդիրը չվերանա, վերագործարկեք սարքը։"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Փորձեք նորից միացնել SIM քարտը։ Եթե խնդիրը չվերանա, վերագործարկեք սարքը։"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ցանցի ակտիվացում"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ցանցն ակտիվ է"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Հպեք՝ SIM քարտի կարգավորումները թարմացնելու համար"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM քարտ"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Ջնջե՞լ այս ներբեռնված SIM քարտը"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Այս SIM-ը ջնջելու դեպքում <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-ի ծառայությունը կհեռացվի սարքից։\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>-ի ծառայությունը չի չեղարկվի։"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Ջնջել"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"«Զանգեր Wi-Fi-ով» գործառույթը թույլ է տալիս ստանալ և կատարել զանգերը ոչ բջջային ցանցերի (օրինակ՝ որոշ Wi‑Fi ցանցերի) միջոցով։"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Զանգեր"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"նախընտրելի"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"նախընտրելի զանգեր"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"նախընտրելի SMS-ներ"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"անհասանելի է"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM քարտ չկա"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Կարգավորումներ"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Միանալ հանրային ցանցերին"</string>
<string name="keywords_internet" msgid="7674082764898690310">"կապ, համացանց, անլար, ինտերնետ, wifi, wi-fi, wi fi, բջջային, շարժական, բջջային օպերատոր, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Ցանցեր, որոնք անվտանգ են ինքնաթիռում"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Անջատել ավիառեժիմը"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Անհասանելի է, քանի որ քնի ռեժիմը միացված է"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Ծանուցումների կարևորության կարգավորումները զրոյացվեցին։"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Հավելվածներ"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 1e43b45..da06ee8 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Alamat IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Jaringan tersimpan"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Langganan"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Jaringan lain"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Setelan IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Setelan lanjutan Wi-Fi tidak tersedia untuk pengguna ini"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Simpan"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Hapus APN"</string>
<string name="menu_new" msgid="6571230342655509006">"APN baru"</string>
<string name="menu_save" msgid="6611465355127483100">"Simpan"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Buang"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Batal"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Bidang Nama wajib diisi."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN wajib diisi."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet digunakan lebih lama dari biasanya"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Perangkat digunakan lebih lama dari biasanya"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Baterai mungkin lebih cepat habis daripada biasanya"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Daya baterai terbatas untuk sementara"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Membantu menjaga kesehatan baterai. Ketuk untuk mempelajari lebih lanjut."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Daya baterai terbatas untuk sementara. Ketuk untuk mempelajari lebih lanjut."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Ponsel dipakai lebih lama dari biasanya. Baterai mungkin lebih cepat habis dari perkiraan.\n\nAplikasi yang paling banyak menggunakan baterai:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tablet digunakan lebih sering dari biasanya. Baterai mungkin lebih cepat habis dari yang diperkirakan.\n\nAplikasi yang paling banyak menggunakan baterai:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Perangkat Anda digunakan lebih sering dari biasanya. Baterai mungkin lebih cepat habis dari yang diperkirakan.\n\nAplikasi yang paling banyak menggunakan baterai:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Jangan instal"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Tetap instal"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifikat tidak diinstal"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Izinkan <xliff:g id="APP_NAME">%s</xliff:g> menginstal sertifikat di perangkat ini?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Sertifikat ini akan mengidentifikasi Anda di aplikasi dan URL berikut"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Jangan izinkan"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Izinkan"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Tampilkan lebih banyak"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Apl pengelolaan sertifikat"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Tidak ada"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Sertifikat yang diinstal oleh aplikasi ini membuat aplikasi dan URL di bawah dapat mengidentifikasi Anda"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Hapus"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Sinyal panggilan darurat"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Setel perilaku ketika panggilan darurat dilakukan"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Cadangan"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Jumlah set data maks yang terlihat"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Reset ke nilai default"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Opsi developer IsiOtomatis telah direset"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Paksa ukuran GNSS penuh"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Lacak semua konstelasi dan frekuensi GNSS tanpa siklus tugas"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema perangkat"</string>
<string name="default_theme" msgid="4815428567082263639">"Default"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nama jaringan"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Jeda notifikasi agar tetap fokus"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Fitur tidak tersedia"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Fitur ini telah dinonaktifkan karena memperlambat ponsel Anda"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Paksa ukuran GNSS penuh"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Lacak semua konstelasi dan frekuensi GNSS tanpa siklus tugas"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Selalu tampilkan dialog error"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Tampilkan dialog setiap kali aplikasi tidak bekerja"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Pilih aplikasi yang berkemampuan ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Aktif (suara dimatikan)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Nonaktif"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detail jaringan"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Nama perangkat terlihat oleh aplikasi di ponsel, dan juga mungkin dilihat oleh orang lain saat Anda menghubungkan ke perangkat Bluetooth atau menyiapkan hotspot Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Nama perangkat terlihat oleh aplikasi di ponsel, dan juga mungkin dilihat oleh orang lain saat Anda menghubungkan ke perangkat Bluetooth atau jaringan Wi-Fi, atau saat menyiapkan hotspot Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Perangkat"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Semua Setelan"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Saran"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Tidak dapat mengaktifkan SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Keluarkan SIM, lalu masukkan lagi. Jika masalah berlanjut, mulai ulang perangkat."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Coba aktifkan SIM lagi. Jika masalah berlanjut, mulai ulang perangkat."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivasi jaringan"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> aktif"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Ketuk untuk memperbarui setelan SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Kartu SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Hapus SIM yang didownload ini?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Menghapus SIM ini akan menghapus layanan <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> dari perangkat ini.\n\nLayanan untuk <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> tidak akan dibatalkan."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Hapus"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Dengan Panggilan Wi-Fi, Anda dapat melakukan dan menerima panggilan melalui jaringan non-operator seperti jaringan Wi-Fi tertentu."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Panggilan Telepon"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"pilihan"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"panggilan pilihan"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS pilihan"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"tidak tersedia"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Tidak ada SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferensi"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Hubungkan ke jaringan publik"</string>
<string name="keywords_internet" msgid="7674082764898690310">"koneksi jaringan, internet, nirkabel, data, wifi, wi-fi, wi fi, seluler, (perangkat) seluler, operator seluler, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Tampilkan jaringan aman di pesawat"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Nonaktifkan Mode Pesawat"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Tidak tersedia karena mode waktu tidur diaktifkan"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Reset nilai penting notifikasi selesai."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikasi"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 6af4bb2..787e0ff 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-tölur"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Vistuð net"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Áskriftir"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Önnur netkerfi"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-stillingar"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Ítarlegar Wi‑Fi stillingar eru ekki í boði fyrir þennan notanda"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Vista"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Eyða aðgangsstað"</string>
<string name="menu_new" msgid="6571230342655509006">"Nýr aðgangsstaður"</string>
<string name="menu_save" msgid="6611465355127483100">"Vista"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Fleygja"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Hætta við"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Reiturinn fyrir heiti má ekki vera auður."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Heiti aðgangsstaðar má ekki vera autt."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Spjaldtölva notuð meira en venjulega"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Tæki notað meira en venjulega"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Rafhlaðan gæti tæmst fyrr en venjulega"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Rafhlaða takmörkuð tímabundið"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Hjálpar til við að tryggja endingu rafhlöðunnar. Ýttu til að fá frekari upplýsingar."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Rafhlaða takmörkuð tímabundið. Ýttu til að fá frekari upplýsingar."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Síminn hefur verið notaður meira en venjulega. Rafhlaðan gæti tæmst fyrr en ella.\n\nForrit með mestu rafhlöðunotkunina:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Spjaldtölvan hefur verið notuð meira en venjulega. Rafhlaðan gæti tæmst fyrr en ella.\n\nForrit með mestu rafhlöðunotkunina:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Tækið hefur verið notað meira en venjulega. Rafhlaðan gæti tæmst fyrr en ella.\n\nForrit með mestu rafhlöðunotkunina:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ekki setja upp"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Setja samt upp"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Vottorðið var ekki sett upp"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Leyfa <xliff:g id="APP_NAME">%s</xliff:g> að setja upp vottorð í þessu tæki?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Þessi vottorð munu auðkenna þig í forritunum og á vefslóðunum hér fyrir neðan"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ekki leyfa"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Leyfa"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Sýna meira"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Vottorðastjórnunarforrit"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Ekkert"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Vottorð sem eru sett upp með þessu forriti auðkenna þig í forritunum og á vefslóðunum hér fyrir neðan"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Fjarlægja"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Neyðarhringimerki"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Velja hvað gerist þegar neyðarsímtal er hringt"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Öryggisafrit"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Hámark sýnilegra gagnasafna"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Endurstilla á sjálfgildi"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Forritunarkostir sjálfvirkrar endurstillingar hafa verið endurstilltir"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Full GNSS-mæling"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Rekja öll GNSS söfn og tíðnir með engum vinnulotum"</string>
<string name="device_theme" msgid="5027604586494772471">"Þema tækisins"</string>
<string name="default_theme" msgid="4815428567082263639">"Sjálfgefið"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Heiti nets"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Gera hlé á tilkynningum svo þær trufli ekki"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Eiginleikinn er ekki í boði"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Slökkt hefur verið á þessum eiginleika því hann hægir á símanum"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Full GNSS-mæling"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Rekja öll GNSS söfn og tíðnir með engum vinnulotum"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Sýna alltaf hrunglugga"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Sýna glugga í hvert sinn sem forrit hrynur"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Velja forrit sem styður ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Kveikt (þaggað)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Slökkt"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Upplýsingar um net"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Heiti tækisins þíns er sýnilegt forritum í símanum. Heiti þess er hugsanlega einnig sýnilegt öðru fólki þegar þú tengist Bluetooth-tækjum eða setur upp heitan Wi-Fi reit."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Heiti tækisins þíns er sýnilegt forritum í símanum. Heiti þess er hugsanlega einnig sýnilegt öðru fólki þegar þú tengist Bluetooth-tækjum, Wi-Fi neti eða setur upp heitan Wi-Fi reit."</string>
<string name="devices_title" msgid="649715719278562515">"Tæki"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Allar stillingar"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Tillögur"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Ekki er hægt að virkja SIM-kort"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Fjarlægðu SIM-kortið og settu það inn aftur. Ef vandamálið leysist ekki skaltu endurræsa tækið."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prófaðu að kveikja aftur á SIM-kortinu. Ef vandamálið leysist ekki skaltu endurræsa tækið."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Virkjun símkerfis"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> er virkt"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Ýttu til að uppfæra stillingar SIM-korts"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-kort"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Viltu eyða þessu sótta SIM-korti?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Ef þessu SIM-korti er eytt verður þjónusta <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> fjarlægð úr þessu tæki.\n\nÞjónustu <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> verður ekki sagt upp."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Eyða"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Með Wi-Fi símtölum geturðu hringt og svarað símtölum utan farsímakerfis, t.d. á sumum Wi-Fi netum."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Símtöl"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"í forgangi"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"símtöl í forgangi"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS í forgangi"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ekki tiltækt"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Ekkert SIM-kort"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Kjörstillingar"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Tengjast opnum netum"</string>
<string name="keywords_internet" msgid="7674082764898690310">"nettenging, internetið, þráðlaust, gögn, wifi, wi-fi, wi fi, farsímakerfi, farsími, símafyrirtæki, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Skoða netkerfi sem eru örugg fyrir flug"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Slökkva á flugstillingu"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Ekki í boði vegna þess að kveikt er á háttatímastillingu"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Endurstilling forgangs tilkynninga tókst."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Forrit"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 77a94ee..9423532 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Indirizzi IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Reti salvate"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Iscrizioni"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Altre reti"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Impostazioni IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Le impostazioni Wi‑Fi avanzate non sono disponibili per questo utente"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Salva"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Elimina APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Nuovo APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Salva"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Ignora"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Annulla"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Il campo Nome non può essere vuoto."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Il campo APN non può essere vuoto."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet utilizzato più del solito"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Dispositivo usato più del solito"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"La batteria potrebbe esaurirsi prima del solito"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batteria momentaneamente limitata"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Consente di preservare l\'integrità della batteria. Tocca per scoprire di più."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batteria momentaneamente limitata. Tocca per scoprire di più."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Hai utilizzato il telefono più del solito. La batteria potrebbe esaurirsi prima del previsto.\n\nApp con il maggior consumo di batteria:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Hai utilizzato il tablet più del solito. La batteria potrebbe esaurirsi prima del previsto.\n\nApp con il maggiore consumo di batteria:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Hai utilizzato il dispositivo più del solito. La batteria potrebbe esaurirsi prima del previsto.\n\nApp con il maggiore consumo di batteria:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Non installare"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Installa comunque"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificato non installato"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Vuoi consentire all\'app <xliff:g id="APP_NAME">%s</xliff:g> di installare certificati su questo dispositivo?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Questi certificati consentiranno la tua identificazione per le app e gli URL indicati di seguito"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Non consentire"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Consenti"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Mostra altro"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App di gestione certificati"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nessuna"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"I certificati installati da questa app consentono la tua identificazione per le app e gli URL indicati di seguito"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Rimuovi"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Segnale chiamata di emergenza"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Imposta il comportamento in caso di chiamata di emergenza"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Set di dati visibili massimi"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Reimposta i valori predefiniti"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Le opzioni di compilazione automatica per gli sviluppatori sono state reimpostate"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forza esecuzione completa delle misurazioni GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Monitora tutte le costellazioni e le frequenze GNSS senza ciclo di lavoro utile"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema del dispositivo"</string>
<string name="default_theme" msgid="4815428567082263639">"Valore predefinito"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nome della rete"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Metti in pausa le notifiche per mantenere la concentrazione"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funzionalità non disponibile"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Questa funzionalità è stata disattivata perché rallenta il telefono"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forza esecuzione completa delle misurazioni GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Monitora tutte le costellazioni e le frequenze GNSS senza ciclo di lavoro utile"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Mostra sempre finestra di dialogo di arresti anomali"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Mostra finestra di dialogo a ogni arresto anomalo delle app"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Seleziona le app che supportano ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Su (audio disattivato)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Non attivo"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Dettagli rete"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Il nome del tuo dispositivo è visibile alle app installate sul telefono. Potrebbe essere visibile anche ad altre persone se ti connetti a dispositivi Bluetooth o configuri un hotspot Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Il nome del tuo dispositivo è visibile alle app installate sul telefono. Potrebbe essere visibile anche ad altre persone quando ti connetti a dispositivi Bluetooth, a una rete Wi-Fi o configuri un hotspot Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Dispositivi"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Tutte le impostazioni"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggerimenti"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Impossibile attivare la SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Rimuovi la SIM e inseriscila di nuovo. Se il problema persiste, riavvia il dispositivo."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Riprova ad attivare la SIM. Se il problema persiste, riavvia il dispositivo."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Attivazione della rete"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"L\'operatore <xliff:g id="CARRIER_NAME">%1$s</xliff:g> è attivo"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tocca per aggiornare le impostazioni della SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Scheda SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Resettare questa SIM scaricata?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Se resetti questa SIM, il servizio di <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> verrà rimosso da questo dispositivo.\n\nIl servizio di <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> non verrà annullato."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Resetta"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"La funzionalità Chiamate Wi-Fi consente di effettuare e ricevere chiamate tramite reti non dell\'operatore, come alcune reti Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Chiamate"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"Preferiti"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"Chiamate preferite"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS preferiti"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"Non disponibili"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Nessuna SIM rilevata"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferenze"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Connetti a reti pubbliche"</string>
<string name="keywords_internet" msgid="7674082764898690310">"connessione rete, internet, wireless, dati, wifi, wi-fi, wi fi, cellulare, dispositivo mobile, operatore cellulare, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Visualizza reti utilizzabili in aereo"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Disattiva la modalità aereo"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Non disponibili perché la modalità Riposo è attiva"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Reimpostazione dell\'importanza delle notifiche completata."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"App"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index d23ffe2..b16091d 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -1062,8 +1062,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"כתובות IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"רשתות שנשמרו"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"מינויים"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"רשתות אחרות"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"הגדרות IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"הגדרות Wi-Fi מתקדמות אינן זמינות למשתמש הזה"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"שמירה"</string>
@@ -1639,7 +1638,7 @@
<string name="menu_delete" msgid="9199740901584348273">"מחיקת APN"</string>
<string name="menu_new" msgid="6571230342655509006">"הוספת APN חדש"</string>
<string name="menu_save" msgid="6611465355127483100">"שמירה"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"מחיקה"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"ביטול"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"השדה \'שם\' לא יכול להיות ריק."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"ה-APN לא יכול להיות ריק."</string>
@@ -2518,8 +2517,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"הטאבלט נמצא בשימוש יותר מהרגיל"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"המכשיר נמצא בשימוש יותר מהרגיל"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ייתכן שהסוללה תתרוקן מוקדם מהרגיל"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"הסוללה מוגבלת באופן זמני"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"מצב זה עוזר לשמור על תקינות הסוללה. למידע נוסף יש להקיש."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"הסוללה מוגבלת באופן זמני. למידע נוסף יש להקיש."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"השתמשת בטלפון יותר מהרגיל. ייתכן שהסוללה תתרוקן מוקדם מהצפוי.\n\nהאפליקציות המובילות לפי שימוש בסוללה:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"השתמשת בטאבלט יותר מהרגיל. ייתכן שהסוללה תתרוקן מוקדם מהצפוי.\n\nהאפליקציות המובילות לפי שימוש בסוללה:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"השתמשת במכשיר יותר מהרגיל. ייתכן שהסוללה תתרוקן מוקדם מהצפוי.\n\nהאפליקציות המובילות לפי שימוש בסוללה:"</string>
@@ -2799,6 +2799,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"לא להתקין"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"אני רוצה להתקין בכל זאת"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"לא הותקן אישור"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"לאפשר לאפליקציה <xliff:g id="APP_NAME">%s</xliff:g> להתקין אישורים במכשיר הזה?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"אישורים אלה ישמשו לזיהוי שלך באפליקציות ובכתובות ה-URL שמופיעות למטה"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"אין אישור"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"אישור"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"הצגת פרטים נוספים"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"אפליקציית ניהול אישורים"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ללא"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"אישורים המותקנים על ידי האפליקציה הזו ישמשו לזיהוי שלך באפליקציות ובכתובות ה-URL שמופיעות למטה"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"הסרה"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"אות לחיוג חירום"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"הגדרת אופן פעולה בעת ביצוע שיחת חירום"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"גיבוי"</string>
@@ -3644,7 +3653,7 @@
<string name="lock_screen_notifications_interstitial_message_profile" msgid="1456262034599029028">"איך להציג התראות פרופיל כשהמכשיר נעול?"</string>
<string name="lock_screen_notifications_interstitial_title_profile" msgid="6950124772255324448">"התראות פרופיל"</string>
<string name="notifications_title" msgid="4221655533193721131">"התראות"</string>
- <string name="app_notifications_title" msgid="248374669037385148">"התראות אפליקציה"</string>
+ <string name="app_notifications_title" msgid="248374669037385148">"התראות של האפליקציה"</string>
<string name="notification_channel_title" msgid="8859880871692797611">"קטגוריית התראות"</string>
<string name="notification_group_title" msgid="7525666535695631538">"קבוצת קטגוריות של התראות"</string>
<string name="notification_importance_title" msgid="1545158655988342703">"התנהגות"</string>
@@ -4802,6 +4811,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"מקסימום מערכי נתונים גלויים"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"איפוס לערכי ברירת המחדל"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"האפשרויות למפתחים למילוי האוטומטי אופסו"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"אילוץ של הרצה מלאה של מדידות Gnss"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"מעקב אחר כל מערכות הניווט והתדרים של GNSS ללא מחזור פעילות"</string>
<string name="device_theme" msgid="5027604586494772471">"עיצוב המכשיר"</string>
<string name="default_theme" msgid="4815428567082263639">"ברירת מחדל"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"שם הרשת"</string>
@@ -4818,8 +4835,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"אפשר להשהות את ההתראות כדי שלא יפריעו לך"</string>
<string name="disabled_feature" msgid="7151433782819744211">"התכונה לא זמינה"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"התכונה הזו הושבתה מפני שהיא מאטה את הטלפון שלך"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"אילוץ של הרצה מלאה של מדידות Gnss"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"מעקב אחר כל מערכות הניווט והתדרים של GNSS ללא מחזור פעילות"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"הצג תמיד דו-שיח של קריסות מחשב"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"הצג דו-שיח בכל פעם שאפליקציה קורסת"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"בחירת אפליקציה המותאמת ל-ANGLE"</string>
@@ -4887,7 +4902,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"מופעל (השתקה)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"כבוי"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"פרטי הרשת"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"שם המכשיר שלך גלוי לאפליקציות בטלפון שלך. כמו כן, ייתכן שאנשים אחרים יראו אותו בהתחברות למכשירי Bluetooth או כשמגדירים נקודת Wi-Fi לשיתוף אינטרנט."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"שם המכשיר שלך גלוי לאפליקציות בטלפון. כמו כן, ייתכן שאנשים אחרים יראו אותו בהתחברות למכשירי Bluetooth, לרשת Wi-Fi, או בהגדרת נקודת Wi-Fi לשיתוף אינטרנט."</string>
<string name="devices_title" msgid="649715719278562515">"מכשירים"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"כל ההגדרות"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"הצעות"</string>
@@ -5049,6 +5064,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"לא ניתן להפעיל את ה-SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"יש להוציא את ה-SIM ולהכניס אותו חזרה. אם הבעיה נמשכת, יש להפעיל מחדש את המכשיר."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"יש להפעיל שוב את ה-SIM. אם הבעיה נמשכת, יש להפעיל מחדש את המכשיר."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"הפעלת רשת"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> פעיל"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"יש להקיש כדי לעדכן את ההגדרות של כרטיס ה-SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"כרטיס SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"למחוק את ה-SIM הזה שהורדת?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"מחיקת כרטיס ה-SIM הזה מסירה את השירות של <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> מהמכשיר הזה.\n\nהשירות של <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> לא יבוטל."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"מחיקה"</string>
@@ -5205,9 +5224,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"התכונה שיחות Wi-Fi מאפשרת להתקשר ולקבל שיחות באמצעות רשתות שאינן רשתות הספקים, כמו רשתות Wi‑Fi מסוימות."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"שיחות"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"מועדפות"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"שיחות מועדפות"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"הודעות SMS מועדפות"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"לא זמין"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"אין כרטיס SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"העדפות"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"חיבור לרשתות ציבוריות"</string>
<string name="keywords_internet" msgid="7674082764898690310">"חיבור לרשת, אינטרנט, אלחוטי, נתונים, Wi-Fi, wi-fi, wi fi, סלולרי, נייד, ספק סלולרי, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"הצגת רשתות בטוחות לטיסה"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"כיבוי מצב טיסה"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"אינו זמין כאשר מצב שינה מופעל"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"הושלם איפוס הגדרת החשיבות של ההתראות."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"אפליקציות"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 892af67..6445980 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 アドレス"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"保存済みネットワーク"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"サブスクリプション"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"その他のネットワーク"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP 設定"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"このユーザーは Wi‑Fi 詳細設定を利用できません"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"保存"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APNを削除"</string>
<string name="menu_new" msgid="6571230342655509006">"新しい APN"</string>
<string name="menu_save" msgid="6611465355127483100">"保存"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"破棄"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"キャンセル"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"[名前]フィールドは必須です。"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APNは必ず指定してください。"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"タブレットの電池使用量が通常より多くなっています"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"デバイスの電池使用量が通常より多くなっています"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"電池が通常より早くなくなる可能性があります"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"電池の使用が一時的に制限されています"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"電池の状態維持に役立ちます。タップして詳細をご確認ください。"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"電池の使用が一時的に制限されています。タップして詳細をご確認ください。"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"スマートフォンの電池使用量が通常より多いため、予想より早く電池がなくなる可能性があります。\n\n電池を多く使用しているアプリ:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"タブレットの電池使用量が通常より多いため、予想より早く電池がなくなる可能性があります。\n\n電池を多く使用しているアプリ:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"デバイスの電池使用量が通常より多いため、予想より早く電池がなくなる可能性があります。\n\n電池を多く使用しているアプリ:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"インストールしない"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"インストールする"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"証明書はインストールされませんでした"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"このデバイスに証明書をインストールすることを <xliff:g id="APP_NAME">%s</xliff:g> に許可しますか?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"これらの証明書により、下記のアプリと URL はあなたを特定します"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"許可しない"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"許可"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"もっと見る"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"証明書管理アプリ"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"なし"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"このアプリがインストールした証明書により、下記のアプリと URL はあなたを特定します"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"削除"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"緊急通報信号"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"緊急通報時の動作を設定します"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"バックアップ"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"表示するデータセットの最大数"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"デフォルト値にリセット"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"自動入力の開発者向けオプションをリセットしました"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS 計測の完全な実行"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"デューティ サイクリングを無効にした状態で、すべての GNSS コンステレーションと頻度をトラッキングします"</string>
<string name="device_theme" msgid="5027604586494772471">"デバイスのテーマ"</string>
<string name="default_theme" msgid="4815428567082263639">"デフォルト"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ネットワーク名"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"集中するために通知を一時停止する"</string>
<string name="disabled_feature" msgid="7151433782819744211">"この機能はご利用いただけません"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"この機能はスマートフォンのパフォーマンスを低下させるため OFF になっています"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS 計測の完全な実行"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"デューティ サイクリングを無効にした状態で、すべての GNSS コンステレーションと頻度をトラッキングします"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"クラッシュ ダイアログを常に表示"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"アプリのクラッシュが発生するごとにダイアログを表示します"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE 対応のアプリを選択してください"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ON(ミュート)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"OFF"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"ネットワークの詳細"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"デバイス名がスマートフォンのアプリに表示されます。また、Bluetooth デバイスに接続したり Wi-Fi アクセス ポイントを設定したりすると、他のユーザーもデバイス名を確認できるようになります。"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"デバイス名がスマートフォンのアプリに表示されます。また、Bluetooth デバイスや Wi-Fi ネットワークに接続したり Wi-Fi アクセス ポイントを設定したりすると、他のユーザーもデバイス名を確認できるようになります。"</string>
<string name="devices_title" msgid="649715719278562515">"デバイス"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"すべての設定"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"おすすめの設定"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM を有効にできません"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM カードを取り出して、もう一度挿入してください。問題が解決しない場合は、デバイスを再起動してください。"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM をもう一度 ON にしてみてください。問題が解決しない場合は、デバイスを再起動してください。"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"ネットワークの有効化"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> は有効です"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM の設定を更新するにはタップしてください"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM カード"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"このダウンロード型 SIM を消去しますか?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"この SIM を消去すると、このデバイスから <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> サービスが削除されます。\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> のサービスが解約されることはありません。"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"消去"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi 通話では、携帯通信会社以外のネットワーク(一部の Wi-Fi ネットワークなど)を利用して通話の発信と着信を行えます。"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"通話"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"優先"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"通話優先"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS 優先"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"使用不可"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM なし"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"設定"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"パブリック ネットワークに接続する"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ネットワーク接続, インターネット, ワイヤレス, データ, wifi, Wi-Fi, ワイファイ, 携帯, モバイル, 携帯通信会社, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"機内で利用できるネットワークを表示"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"機内モードを OFF にする"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"おやすみ時間モードが ON のため利用できません"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"通知の重要度をリセットしました。"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"アプリ"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 6d6938a..2cf7e12 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 მისამართები"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"დამახსოვრ.ქსელები"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"გამოწერები"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"სხვა ქსელები"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP პარამეტრები"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"გაფართოებული Wi‑Fi პარამეტრები ამ მომხმარებლისთვის მიუწვდომელია"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"შენახვა"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN-ის წაშლა"</string>
<string name="menu_new" msgid="6571230342655509006">"ახალი APN"</string>
<string name="menu_save" msgid="6611465355127483100">"შენახვა"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"გაუქმება"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"გაუქმება"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"სახელის ველი არ შეიძლება იყოს ცარიელი."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN არ უნდა იყოს ცარიელი."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ტაბლეტი ჩვეულებრივზე მეტად მოიხმარება"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"მოწყობილობა ჩვეულებრივზე მეტად მოიხმარება"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ბატარეა შესაძლოა ჩვეულებრივზე ადრე დაიცალოს"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"ბატარეა დროებით შეზღუდულია"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"გეხმარებათ ბატარეის გამართულობის შენარჩუნებაში. შეეხეთ, რათა შეიტყოთ მეტი."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"ბატარეა დროებით შეზღუდულია. შეეხეთ, რომ შეიტყოთ მეტი."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"თქვენი ტელეფონი ჩვეულებრივზე მეტად მოიხმარებოდა. ბატარეა შესაძლოა მოსალოდნელზე ადრე დაიცალოს.\n\nაპები, რომლებიც ბატარეას ყველაზე მეტად მოიხმარს:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"თქვენი ტაბლეტი ჩვეულებრივზე მეტად მოიხმარებოდა. ბატარეა შესაძლოა მოსალოდნელზე ადრე დაიცალოს.\n\nაპები, რომლებიც ბატარეას ყველაზე მეტად მოიხმარს:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"თქვენი მოწყობილობა ჩვეულებრივზე მეტად მოიხმარებოდა. ბატარეა შესაძლოა მოსალოდნელზე ადრე დაიცალოს.\n\nაპები, რომლებიც ბატარეას ყველაზე მეტად მოიხმარს:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"არ დაინსტალირდეს"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"ინსტალაცია მიუხედავად ამისა"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"სერტიფიკატი არ არის დაინსტალირებული"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"დაიშვას <xliff:g id="APP_NAME">%s</xliff:g>-ის მიერ სერტიფიკატების ინსტალაცია ამ მოწყობილობაზე?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ეს სერტიფიკატები თქვენს ვინაობას გაუმჟღავნებს ქვემოთ მოცემულ აპებსა და URL-ებს"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"არ დაიშვას"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"დაიშვას"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"მეტის ჩვენება"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"სერტიფიკატის მმართველი აპი"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"არცერთი"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"ამ აპით ინსტალირებული სერტიფიკატები თქვენს ვინაობას გაუმჟღავნებს ქვემოთ მოცემულ აპებსა და URL-ებს"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"ამოშლა"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"საგანგებო დარეკვის სიგნალი"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"ქცევის დაყენება, როცა განხორციელებულია გადაუდებელი ზარი"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"სარეზერვო კოპირება"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"მონაცემთა ნაკრებების მაქსიმალური რაოდენობა"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ნაგულისხმევ მნიშვნელობებზე გადაყენება"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"ავტომატური შევსების დეველოპერის პარამეტრები გადაყენებულია"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"სრული GNSS გაზომვის განხორციელების იძულება"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ყველა GNSS კონსტელაციისა და სიხშირის აღრიცხვა, დატვირთვის კოეფიციენტის გარეშე"</string>
<string name="device_theme" msgid="5027604586494772471">"მოწყობილობის თემა"</string>
<string name="default_theme" msgid="4815428567082263639">"ნაგულისხმევი"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ქსელის სახელი"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"შეტყობინებების დაპაუზება კონცენტრირების შესანარჩუნებლად"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ფუნქცია მიუწვდომელია"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"ეს ფუნქცია გამოირთო, რადგან ის ტელეფონს ანელებს"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"სრული GNSS გაზომვის განხორციელების იძულება"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ყველა GNSS კონსტელაციისა და სიხშირის აღრიცხვა, დატვირთვის კოეფიციენტის გარეშე"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"ავარიულად გათიშვის დიალოგური ფანჯრის ყოველთვის ჩვენება"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"დიალოგური ფანჯრის ყოველთვის ჩვენება, როცა აპი ავარიულად ითიშება"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"აირჩიეთ ANGLE-ის მხარდაჭერის მქონე აპი"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ჩართულია (დადუმებული)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"გამორთული"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"ქსელის დეტალები"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"თქვენი მოწყობილობის სახელი ხილულია თქვენს ტელეფონზე არსებული აპებისთვის. მისი დანახვას ასევე შეძლებენ სხვა პირები, როცა Bluetooth მოწყობილობებს დაუკავშირდებით ან Wi-Fi უსადენო ქსელით ისარგებლებთ."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"თქვენი მოწყობილობის სახელი ხილულია თქვენს ტელეფონზე არსებული აპებისთვის. მის დანახვას შეძლებენ სხვა პირებიც, როცა Bluetooth მოწყობილობებს ან Wi-Fi ქსელს დაუკავშირდებით, ან Wi-Fi უსადენო ქსელს დააყენებთ."</string>
<string name="devices_title" msgid="649715719278562515">"მოწყობილობები"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"ყველა პარამეტრი"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"შემოთავაზებები"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM ბარათის გააქტიურება ვერ ხერხდება"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"ამოიღეთ SIM ბარათი და მოათავსეთ ის ხელახლა. თუ პრობლემა არ მოგვარდა, გადატვირთეთ მოწყობილობა."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ცადეთ, ხელახლა ჩართოთ SIM ბარათი. თუ პრობლემა არ მოგვარდა, გადატვირთეთ მოწყობილობა."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"ქსელის გააქტიურება"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> აქტიურია"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"შეეხეთ SIM-ბარათის პარამეტრების გასაახლებლად"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM ბარათი"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ამოიშალოს ეს ჩამოტვირთული SIM ბარათი?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ამ SIM ბარათის ამოშლა მოწყობილობიდან <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-ის სერვისს ამოიღებს.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>-ის სერვისი არ გაუქმდება."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"ამოშლა"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi დარეკვა საშუალებას გაძლევთ, დარეკოთ და მიიღოთ ზარები არაოპერატორის ქსელების, მაგალითად, ზოგიერთი Wi-Fi ქსელის მეშვეობით."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"ზარები"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"უპირატესი"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"უპირატესია ზარები"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"უპირატესია SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"მიუწვდომელი"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM არ არის"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"პრიორიტეტები"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"საჯარო ქსელებთან დაკავშირება"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ქსელთან კავშირი, ინტერნეტი, უსადენო, მონაცემები, wifi, wi-fi, wi fi, ფიჭური, მობილური, ფიჭური ოპერატორი, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"თვითმფრინავისთვის უსაფრთხო ქსელის ნახვა"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"თვითმფრინავის რეჟიმის გამორთვა"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"მიუწვდომელია, რადგან ჩართულია ძილის დროის რეჟიმი"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"შეტყობინების მნიშვნელობის გადაყენება დასრულებულია."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"აპები"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index e94a25e..ae30e14 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 мекенжайлары"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Сақталған желілер"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Жазылымдар"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Басқа желілер"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP параметрлері"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi-Fi кеңейтілген параметрлері осы пайдаланушы үшін қолжетімді емес"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Сақтау"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN жою"</string>
<string name="menu_new" msgid="6571230342655509006">"Жаңа APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Сақтау"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Өшіру"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Бас тарту"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Атау жақтауы бос болмауы тиіс."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN (Apple хабар жіберу қызметі )бос болмауы тиіс."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Планшет әдеттегіден көп қолданылды"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Құрылғы әдеттегіден көп қолданылды"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Батареяның заряды тез бітуі мүмкін."</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Батарея жұмысы уақытша шектелген"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Батареяның жұмыс істеу қабілетін сақтауға көмектеседі. Толығырақ ақпарат алу үшін түртіңіз."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Батарея жұмысы уақытша шектелген. Толығырақ ақпарат алу үшін түртіңіз."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Телефоныңыз әдеттегіден көп қолданылды. Батареяның заряды тез бітуі мүмкін.\n\nБатареяны ең көп пайдаланатын қолданбалар:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Планшетіңіз әдеттегіден көп пайдаланылды. Батареяның заряды тез бітуі мүмкін.\n\nБатареяны ең көп пайдаланатын қолданбалар:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Құрылғыңыз әдеттегіден көп қолданылды. Батареяның заряды тез бітуі мүмкін.\n\nБатареяны ең көп пайдаланатын қолданбалар:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Орнатпау"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Бәрібір орнату"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Сертификат орнатылмады"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g> қолданбасы бұл құрылғыда сертификаттар орнатсын ба?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Бұл сертификаттар жеке бас дерегіңізді төмендегі қолданбалар мен URL сілтемелеріне көрсетеді."</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Рұқсат бермеу"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Рұқсат ету"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Жаю"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Сертификат басқару қолданбасы"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Жоқ"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Бұл қолданбаның орнатқан сертификаттары жеке бас дерегіңізді төмендегі қолданбалар мен URL сілтемелеріне көрсетеді."</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Өшіру"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Төтенше жағдайда теру сигналы"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Төтенше қоңырау шалу әрекетін орнату"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Сақтық көшірме"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Көрсетілетін деректердің максималды көлемі"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Әдепкі мәндерге қайтару"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Автотолтыру бойынша Developer Options бастапқы күйіне қайтарылды"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS толық өлшемдерін қосу"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Жұмыс циклінсіз барлық GNSS тізбектері мен жиіліктерін қадағалау"</string>
<string name="device_theme" msgid="5027604586494772471">"Құрылғы тақырыбы"</string>
<string name="default_theme" msgid="4815428567082263639">"Әдепкі"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Желі атауы"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Алаңдататын хабарландыруларды кідірту"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Функция қолжетімді емес."</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Бұл функция өшірілді, себебі телефоныңыздың жұмысына кедергі келтіреді."</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS толық өлшемдерін қосу"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Жұмыс циклінсіз барлық GNSS тізбектері мен жиіліктерін қадағалау"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Ақау туралы хабарларды әрдайым көрсету"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Қолданбада ақау болған сайын, диалог көрсету"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE қолдайтын қолданбаны таңдау"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Қосулы (дыбыссыз)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Өшіру"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Желі деректері"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Құрылғыңыздың аты телефоныңыздағы қолданбаларға көрінеді. Сонымен қатар Bluetooth құрылғыларына қосылғанда немесе Wi-Fi хотспотын орнатқанда, басқа адамдарға көрінуі мүмкін."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Құрылғыңыздың аты телефоныңыздағы қолданбаларға көрінеді. Сонымен қатар Bluetooth құрылғыларына қосылғанда, Wi-Fi желісіне қосылғанда немесе Wi-Fi хотспотын орнатқанда, басқа адамдарға көрінуі мүмкін."</string>
<string name="devices_title" msgid="649715719278562515">"Құрылғылар"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Барлық параметрлер"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Ұсыныстар"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM картасын іске қосу мүмкін емес"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM картасын шығарып, қайта салыңыз. Егер ақау жойылмаса, құрылғыны өшіріп қосыңыз."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM картасын қайтадан қосып көріңіз. Егер ақау жойылмаса, құрылғыны өшіріп қосыңыз."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Желіні іске қосу"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> қосулы"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM параметрлерін жаңарту үшін түртіңіз."</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM картасы"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Бұл жүктеп алынған SIM картасы өшірілсін бе?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Бұл SIM картасының деректерін өшірсеңіз, <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> қызметі бұл құрылғыдан жойылады.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> қызметінен бас тартылмайды."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Жою"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi қоңыраулары оператордан өзге желілер арқылы (мысалы, кейбір Wi‑Fi желілері) қоңырау шалуға не қабылдауға мүмкіндік береді."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Қоңыраулар"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"таңдаулы"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"қоңыраулар таңдалған"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS таңдалған"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"қолжетімді емес"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM картасы жоқ"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Параметрлер"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Қоғамдық жерлердегі желілерге қосылу"</string>
<string name="keywords_internet" msgid="7674082764898690310">"желі байланысы, интернет, сымсыз байланыс, деректер, wifi, Wi-Fi, Wi Fi, ұялы, мобильдік, ұялы байланыс операторы, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Ұшақта қолдануға болатын желілерді көру"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Ұшақ режимін өшіру"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Ұйықтау уақыты режимі қосулы болғандықтан, қолжетімді емес."</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Хабарландырулардың маңыздылық параметрлерін бастапқы күйге қайтару аяқталды."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Қолданбалар"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 2ddb3b1..dc21b08 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"អាសយដ្ឋាន IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"បណ្ដាញដែលបានរក្សាទុក"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"ការជាវ"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"បណ្តាញផ្សេងទៀត"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"ការកំណត់ IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"ការកំណត់កម្រិតខ្ពស់នៃ Wi‑Fi មិនអាចប្រើបានសម្រាប់អ្នកប្រើនេះទេ"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"រក្សាទុក"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"លុប APN"</string>
<string name="menu_new" msgid="6571230342655509006">"APN ថ្មី"</string>
<string name="menu_save" msgid="6611465355127483100">"រក្សាទុក"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"បោះបង់"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"បោះបង់"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"វាលឈ្មោះមិនអាចទទេ។"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN មិនអាចទទេ។"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ថេប្លេតត្រូវបានប្រើប្រាស់ច្រើនជាងធម្មតា"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"ឧបករណ៍ត្រូវបានប្រើប្រាស់ច្រើនជាងធម្មតា"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"អាចនឹងឆាប់អស់ថ្មជាងធម្មតា"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"បានដាក់កម្រិតថ្មជាបណ្ដោះអាសន្ន"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ជួយរក្សាគុណភាពថ្ម។ សូមចុច ដើម្បីស្វែងយល់បន្ថែម។"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"បានដាក់កម្រិតថ្មជាបណ្ដោះអាសន្ន។ សូមចុច ដើម្បីស្វែងយល់បន្ថែម។"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"ទូរសព្ទរបស់អ្នកត្រូវបានប្រើប្រាស់ច្រើនជាងធម្មតា។ ថ្មរបស់អ្នកអាចនឹងឆាប់អស់ជាងការរំពឹងទុក។\n\nកម្មវិធីដែលប្រើប្រាស់ច្រើនបំផុត តាមរយៈការប្រើប្រាស់ថ្ម៖"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"ថេប្លេតរបស់អ្នកត្រូវបានប្រើប្រាស់ច្រើនជាងធម្មតា។ ថ្មរបស់អ្នកអាចនឹងឆាប់អស់ជាងការរំពឹងទុក។\n\nកម្មវិធីដែលប្រើប្រាស់ច្រើនបំផុត តាមរយៈការប្រើប្រាស់ថ្ម៖"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"ឧបករណ៍របស់អ្នកត្រូវបានប្រើប្រាស់ច្រើនជាងធម្មតា។ ថ្មរបស់អ្នកអាចនឹងឆាប់អស់ជាងការរំពឹងទុក។\n\nកម្មវិធីដែលប្រើប្រាស់ច្រើនបំផុត តាមរយៈការប្រើប្រាស់ថ្ម៖"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"កុំដំឡើង"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"មិនអីទេ ដំឡើងចុះ"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"មិនបានដំឡើងវិញ្ញាបនបត្រទេ"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"អនុញ្ញាតឱ្យ <xliff:g id="APP_NAME">%s</xliff:g> ដំឡើងវិញ្ញាបនបត្រនៅលើឧបករណ៍នេះឬ?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"វិញ្ញាបនបត្រទាំងនេះនឹងកំណត់អត្តសញ្ញាណអ្នកឱ្យកម្មវិធី និង URL ខាងក្រោមស្គាល់"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"មិនអនុញ្ញាត"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"អនុញ្ញាត"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"បង្ហាញច្រើនទៀត"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"កម្មវិធីគ្រប់គ្រងវិញ្ញាបនបត្រ"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"គ្មាន"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"វិញ្ញាបនបត្រដែលបានដំឡើងដោយកម្មវិធីនេះកំណត់អត្តសញ្ញាណអ្នកឱ្យកម្មវិធី និង URL ខាងក្រោមស្គាល់"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"លុប"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"សញ្ញាហៅទូរសព្ទពេលអាសន្ន"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"កំណត់ឥរិយាបថពេលហៅពេលមានអាសន្ន"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"បម្រុងទុក"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"សំណុំទិន្នន័យមើលឃើញអតិបរមា"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"កំណត់ឡើងវិញទៅតម្លៃលំនាំដើម"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"បំពេញជម្រើសអ្នកអភិវឌ្ឍន៍ដែលបានកំណត់ឡើងវិញ"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ជំរុញការវាស់ GNSS ពេញលេញ"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"តាមដានក្រុមរូបថត និងហ្រេ្វកង់ GNSS ទាំងអស់ដែលគ្មានការបែងចែករយៈពេលដំណើរការ"</string>
<string name="device_theme" msgid="5027604586494772471">"រចនាប័ទ្មឧបករណ៍"</string>
<string name="default_theme" msgid="4815428567082263639">"លំនាំដើម"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ឈ្មោះបណ្តាញ"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ផ្អាកការជូនដំណឹងដើម្បីផ្តោតអារម្មណ៍"</string>
<string name="disabled_feature" msgid="7151433782819744211">"មិនអាចប្រើមុខងារនេះបានទេ"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"មុខងារនេះត្រូវបានបិទ ដោយសារវាធ្វើឱ្យទូរសព្ទរបស់អ្នកដើរយឺត"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ជំរុញការវាស់ GNSS ពេញលេញ"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"តាមដានក្រុមរូបថត និងហ្រេ្វកង់ GNSS ទាំងអស់ដែលគ្មានការបែងចែករយៈពេលដំណើរការ"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"បង្ហាញប្រអប់បញ្ចូលនៃការគាំងជានិច្ច"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"បង្ហាញប្រអប់បញ្ចូលរាល់ពេលដែលកម្មវិធីគាំង"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ជ្រើសរើសកម្មវិធីដែលអាចប្រើ ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"បើក (បិទសំឡេង)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"បិទ"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"ព័ត៌មានបណ្ដាញ"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"ឈ្មោះឧបករណ៍របស់អ្នកអាចឱ្យកម្មវិធីនៅលើទូរសព្ទរបស់អ្នកមើលឃើញ។ វាក៏អាចឱ្យអ្នកដទៃមើលឃើញផងដែរ នៅពេលដែលអ្នកភ្ជាប់ទៅឧបករណ៍ប៊្លូធូស ឬរៀបចំហតស្ប៉ត Wi-Fi ។"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ឈ្មោះឧបករណ៍របស់អ្នកអាចឱ្យកម្មវិធីនៅលើទូរសព្ទរបស់អ្នកមើលឃើញ។ វាក៏អាចឱ្យអ្នកដទៃមើលឃើញផងដែរ នៅពេលអ្នកភ្ជាប់ជាមួយឧបករណ៍ប៊្លូធូស បណ្ដាញ Wi-Fi ឬរៀបចំ ហតស្ប៉ត Wi-Fi។"</string>
<string name="devices_title" msgid="649715719278562515">"ឧបករណ៍"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"ការកំណត់ទាំងអស់"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"ការណែនាំ"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"មិនអាចបើកដំណើរការស៊ីមបានទេ"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"សូមដកស៊ីម រួចបញ្ចូលឡើងវិញ។ ប្រសិនបើនៅតែមានបញ្ហា សូមចាប់ផ្ដើមឧបករណ៍របស់អ្នកឡើងវិញ។"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"សូមសាកល្បងបើកស៊ីមម្ដងទៀត។ ប្រសិនបើនៅតែមានបញ្ហា សូមចាប់ផ្ដើមឧបករណ៍របស់អ្នកឡើងវិញ។"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"ការបើកដំណើរការបណ្ដាញ"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> កំពុងដំណើរការ"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"ចុចដើម្បីធ្វើបច្ចុប្បន្នភាពការកំណត់ស៊ីម"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"ស៊ីមកាត"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"លុបស៊ីមដែលបានទាញយកនេះឬ?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ការលុបស៊ីមនេះនឹងលុបសេវាកម្ម <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ពីឧបករណ៍នេះ។\n\nសេវាកម្មសម្រាប់ <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> នឹងមិនត្រូវបានបោះបង់ទេ។"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"លុប"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"ការហៅតាម Wi-Fi អនុញ្ញាតឱ្យអ្នកហៅ និងទទួលទូរសព្ទតាមបណ្ដាញដែលមិនមានប្រភពមកពីក្រុមហ៊ុនសេវាទូរសព្ទដូចជា បណ្ដាញ Wi‑Fi មួយចំនួនជាដើម។"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"ការហៅទូរសព្ទ"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"សារ SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"ជាអាទិភាព"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"ការហៅទូរសព្ទជាអាទិភាព"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS ជាអាទិភាព"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"មិនអាចប្រើបានទេ"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"មិនមានស៊ីមទេ"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ចំណូលចិត្ត"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"ភ្ជាប់ជាមួយបណ្ដាញសាធារណៈ"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ការតភ្ជាប់បណ្ដាញ, អ៊ីនធឺណិត, ឥតខ្សែ, ទិន្នន័យ, wifi, wi-fi, wi fi, បណ្ដាញចល័ត, ឧបករណ៍ចល័ត, ក្រុមហ៊ុនសេវាទូរសព្ទចល័ត, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"មើលបណ្ដាញមានសុវត្ថិភាពពេលជិះយន្តហោះ"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"បិទមុខងារពេលជិះយន្តហោះ"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"មិនអាចប្រើបានទេ ដោយសារបើកមុខងារម៉ោងគេង"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"បានបញ្ចប់ការកំណត់កម្រិតសំខាន់នៃការជូនដំណឹងឡើងវិញ។"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"កម្មវិធី"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index e753a6e..dd281a5 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 ವಿಳಾಸಗಳು"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ಉಳಿಸಿದ ನೆಟ್ವರ್ಕ್"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"ಸಬ್ಸ್ಕ್ರಿಪ್ಶನ್ಗಳು"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"ಇತರ ನೆಟ್ವರ್ಕ್ಗಳು"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"ಈ ಬಳಕೆದಾರರಿಗೆ ವೈ ಫೈ ಸುಧಾರಿತ ಸೆಟ್ಟಿಂಗ್ಗಳು ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"ಉಳಿಸಿ"</string>
@@ -1597,7 +1596,8 @@
<string name="menu_delete" msgid="9199740901584348273">"APN ಅಳಿಸಿ"</string>
<string name="menu_new" msgid="6571230342655509006">"ಹೊಸ APN"</string>
<string name="menu_save" msgid="6611465355127483100">"ಉಳಿಸಿ"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"ತ್ಯಜಿಸಿ"</string>
+ <!-- no translation found for menu_cancel (1197826697950745335) -->
+ <skip />
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"ಹೆಸರಿನ ಕ್ಷೇತ್ರವು ಖಾಲಿ ಇರುವಂತಿಲ್ಲ."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ಖಾಲಿ ಇರುವಂತಿಲ್ಲ."</string>
@@ -2456,8 +2456,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ಟ್ಯಾಬ್ಲೆಟ್ ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಿನದನ್ನು ಬಳಸಿದೆ"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"ಸಾಧನವು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಿನದನ್ನು ಬಳಸಿದೆ"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ಬ್ಯಾಟರಿ ಸಾಮಾನ್ಯ ಅವಧಿಗಿಂತ ಮೊದಲೇ ಖಾಲಿಯಾಗಬಹುದು"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"ಬ್ಯಾಟರಿ ತಾತ್ಕಾಲಿಕವಾಗಿ ಸೀಮಿತವಾಗಿದೆ"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ಬ್ಯಾಟರಿ ಆರೋಗ್ಯವನ್ನು ಉಳಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಇನ್ನಷ್ಟು ತಿಳಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"ಬ್ಯಾಟರಿಯನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ಸೀಮಿತಗೊಳಿಸಲಾಗಿದೆ. ಇನ್ನಷ್ಟು ತಿಳಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಲಾಗಿದೆ. ನಿಮ್ಮ ಬ್ಯಾಟರಿಯು ನಿರೀಕ್ಷಿಸಿದ ಅವಧಿಗಿಂತ ಮುನ್ನವೇ ಖಾಲಿಯಾಗಬಹುದು.\n\nಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಆಧರಿಸಿ ಇವುಗಳು ಟಾಪ್ ಆ್ಯಪ್ಗಳಾಗಿವೆ:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಲಾಗಿದೆ. ನಿಮ್ಮ ಬ್ಯಾಟರಿಯು ನಿರೀಕ್ಷಿಸಿದ ಅವಧಿಗಿಂತ ಮುನ್ನವೇ ಖಾಲಿಯಾಗಬಹುದು.\n\nಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಆಧರಿಸಿ ಇವುಗಳು ಟಾಪ್ ಆ್ಯಪ್ಗಳಾಗಿವೆ:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಲಾಗಿದೆ. ನಿಮ್ಮ ಬ್ಯಾಟರಿಯು ನಿರೀಕ್ಷಿಸಿದ ಅವಧಿಗಿಂತ ಮುನ್ನವೇ ಖಾಲಿಯಾಗಬಹುದು.\n\nಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಆಧರಿಸಿ ಇವುಗಳು ಟಾಪ್ ಆ್ಯಪ್ಗಳಾಗಿವೆ:"</string>
@@ -2723,6 +2724,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬೇಡಿ"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"ಪರವಾಗಿಲ್ಲ, ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"ಪ್ರಮಾಣಪತ್ರವನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿಲ್ಲ"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"ಈ ಸಾಧನದಲ್ಲಿ ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲು <xliff:g id="APP_NAME">%s</xliff:g> ಗೆ ಅನುಮತಿಸುವುದೇ?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ಕೆಳಗಿನ ಆ್ಯಪ್ಗಳು ಮತ್ತು URL ಗಳಲ್ಲಿ ಈ ಪ್ರಮಾಣಪತ್ರಗಳ ಮೂಲಕ ನಿಮ್ಮನ್ನು ಗುರುತಿಸಲಾಗುತ್ತದೆ"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"ಅನುಮತಿಸಬೇಡಿ"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"ಅನುಮತಿಸಿ"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"ಇನ್ನಷ್ಟು ತೋರಿಸಿ"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"ಪ್ರಮಾಣಪತ್ರ ನಿರ್ವಹಣೆ ಆ್ಯಪ್"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ಯಾವುದೂ ಅಲ್ಲ"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"ಈ ಆ್ಯಪ್ನಿಂದ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಲಾದ ಪ್ರಮಾಣಪತ್ರಗಳ ಮೂಲಕ ಕೆಳಗಿನ ಆ್ಯಪ್ಗಳು ಮತ್ತು URL ಗಳಲ್ಲಿ ನಿಮ್ಮನ್ನು ಗುರುತಿಸಲಾಗುತ್ತದೆ"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"ತೆಗೆದುಹಾಕಿ"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"ತುರ್ತು ಡೈಯಲಿಂಗ್ ಸಿಗ್ನಲ್"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"ತುರ್ತು ಕರೆ ಮಾಡಿದಾಗ ಕಾರ್ಯ ರೀತಿಯನ್ನು ಹೊಂದಿಸಿ"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"ಬ್ಯಾಕಪ್"</string>
@@ -4642,6 +4652,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"ಗರಿಷ್ಠ ಗೋಚರಿಸುವ ಡೇಟಾ ಸೆಟ್ಗಳು"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯಗಳಿಗೆ ಮರುಹೊಂದಿಸಿ"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"ಸ್ವಯಂ ಭರ್ತಿ ಡೆವಲಪರ್ ಆಯ್ಕೆಗಳನ್ನು ಮರುಹೊಂದಿಸಲಾಗಿದೆ"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ಫೋರ್ಸ್ ಫುಲ್ GNSS ಅಳತೆಗಳು"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ಯಾವುದೇ ಡ್ಯೂಟಿ ಸೈಕ್ಲಿಂಗ್ ಇಲ್ಲದೆ ಎಲ್ಲಾ GNSS ಕಾನ್ಸ್ಟಲೇಶನ್ಗಳು ಮತ್ತು ಆವರ್ತನೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
<string name="device_theme" msgid="5027604586494772471">"ಸಾಧನದ ಥೀಮ್"</string>
<string name="default_theme" msgid="4815428567082263639">"ಡಿಫಾಲ್ಟ್"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ನೆಟ್ವರ್ಕ್ ಹೆಸರು"</string>
@@ -4658,8 +4676,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ಫೋಕಸ್ ಆಗಿ ಇರಲು ಅಧಿಸೂಚನೆಗಳನ್ನು ವಿರಾಮಗೊಳಿಸಿ"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ವೈಶಿಷ್ಟ್ಯ ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ ಏಕೆಂದರೆ ಇದು ನಿಮ್ಮ ಫೋನ್ನ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿಧಾನಗೊಳಿಸುತ್ತದೆ"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ಫೋರ್ಸ್ ಫುಲ್ GNSS ಅಳತೆಗಳು"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ಯಾವುದೇ ಡ್ಯೂಟಿ ಸೈಕ್ಲಿಂಗ್ ಇಲ್ಲದೆ ಎಲ್ಲಾ GNSS ಕಾನ್ಸ್ಟಲೇಶನ್ಗಳು ಮತ್ತು ಆವರ್ತನೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"ಯಾವಾಗಲೂ ಕ್ರ್ಯಾಶ್ ಸಂವಾದವನ್ನು ತೋರಿಸಿ"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"ಅಪ್ಲಿಕೇಶನ್ ಕ್ರ್ಯಾಶ್ ಆಗುವಾಗ ಪ್ರತಿ ಬಾರಿ ಸಂವಾದವನ್ನು ತೋರಿಸಿ"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE ಸಕ್ರಿಯಗೊಳಿಸಿದ ಆ್ಯಪ್ ಆಯ್ಕೆಮಾಡಿ"</string>
@@ -4727,7 +4743,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"(ಮ್ಯೂಟ್) ನಲ್ಲಿ"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ಆಫ್"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"ನೆಟ್ವರ್ಕ್ ವಿವರಗಳು"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"ನಿಮ್ಮ ಸಾಧನದ ಹೆಸರು ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಗೋಚರಿಸುತ್ತದೆ. ನೀವು ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ಸಂಪರ್ಕಿಸಿದಾಗ ಅಥವಾ ವೈ-ಫೈ ಹಾಟ್ಸ್ಪಾಟ್ ಅನ್ನು ಹೊಂದಿಸಿದಾಗ ಇತರ ಜನರು ಸಹ ಅದನ್ನು ನೋಡಬಹುದು."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿರುವ ಆ್ಯಪ್ಗಳಿಗೆ ನಿಮ್ಮ ಸಾಧನದ ಹೆಸರು ಕಾಣಿಸುತ್ತದೆ. ನೀವು ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳಿಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿದಾಗ, ವೈ-ಫೈ ನೆಟ್ವರ್ಕ್ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿದಾಗ ಅಥವಾ ವೈ-ಫೈ ಹಾಟ್ಸ್ಪಾಟ್ ಅನ್ನು ಸೆಟಪ್ ಮಾಡಿದಾಗ ಇತರ ಜನರು ಸಹ ಅದನ್ನು ನೋಡಬಹುದು."</string>
<string name="devices_title" msgid="649715719278562515">"ಸಾಧನಗಳು"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"ಎಲ್ಲಾ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"ಸಲಹೆಗಳು"</string>
@@ -4887,6 +4903,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"ಸಿಮ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"ಸಿಮ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ ಹಾಗೂ ಅದನ್ನು ಮತ್ತೆ ಸೇರಿಸಿ. ಸಮಸ್ಯೆ ಮುಂದುವರಿದರೆ, ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ಸಿಮ್ ಅನ್ನು ಮತ್ತೆ ಆನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. ಸಮಸ್ಯೆ ಮುಂದುವರಿದರೆ, ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"ನೆಟ್ವರ್ಕ್ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ಸಕ್ರಿಯವಾಗಿದೆ"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"ಸಿಮ್ ಕಾರ್ಡ್"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ಡೌನ್ಲೋಡ್ ಮಾಡಿದ ಈ ಸಿಮ್ ಅನ್ನು ಅಳಿಸುವುದೇ?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ಈ ಸಿಮ್ ಅನ್ನು ಅಳಿಸುವುದರಿಂದ, ಅದು ಈ ಸಾಧನದಿಂದ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ಸೇವೆಯನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ಗಾಗಿ ಇರುವ ಸೇವೆಯನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"ಅಳಿಸಿ"</string>
@@ -4964,12 +4984,9 @@
<string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ತುರ್ತು ಕರೆಗಳು"</string>
<string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"ವೈ-ಫೈ ಕರೆ ಮಾಡುವಿಕೆ ಮೂಲಕ ಮಾಡಲಾಗುವ ತುರ್ತು ಕರೆಗಳನ್ನು ನಿಮ್ಮ ವಾಹಕವು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.\nತುರ್ತು ಕರೆ ಮಾಡಲು ಸಾಧನವು ಸೆಲ್ಯುಲರ್ ನೆಟ್ವರ್ಕ್ಗೆ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಬದಲಾಯಿಸುತ್ತದೆ.\nಸೆಲ್ಯುಲರ್ ಪ್ರಸಾರ ವ್ಯಾಪ್ತಿ ಇರುವ ಪ್ರದೇಶಗಳಲ್ಲಿ ಮಾತ್ರ ತುರ್ತು ಕರೆಗಳನ್ನು ಮಾಡಲು ಸಾಧ್ಯ."</string>
<string name="wifi_calling_summary" msgid="8566648389959032967">"ಗುಣಮಟ್ಟವನ್ನು ಹೆಚ್ಚಿಸಲು ಕರೆಗಳನ್ನು ಮಾಡಲು ವೈ-ಫೈ ಬಳಸಿ"</string>
- <!-- no translation found for cross_sim_calling_settings_title (1179406214047299816) -->
- <skip />
- <!-- no translation found for cross_sim_calling_setting_summary (7960473304104701519) -->
- <skip />
- <!-- no translation found for keywords_cross_sim_calling (1702104511020507778) -->
- <skip />
+ <string name="cross_sim_calling_settings_title" msgid="1179406214047299816">"ಕ್ರಾಸ್-ಸಿಮ್ ಕರೆ ಮಾಡುವಿಕೆ"</string>
+ <string name="cross_sim_calling_setting_summary" msgid="7960473304104701519">"ಈ ಸಿಮ್ನ ಮೂಲಕ ಮತ್ತೊಂದು ಸಿಮ್ನ ಕರೆಗಳನ್ನು ಮಾಡಲು ಮತ್ತು SMS ಗಳನ್ನು ಕಳುಹಿಸಲು ಅನುಮತಿಸಿ."</string>
+ <string name="keywords_cross_sim_calling" msgid="1702104511020507778">"ಕ್ರಾಸ್-ಸಿಮ್ ಕರೆ ಮಾಡುವಿಕೆ"</string>
<string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ಒಳಬರುವ MMS ಸಂದೇಶ"</string>
<string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS ಸಂದೇಶವನ್ನು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
<string name="enable_mms_notification_summary" msgid="6432752438276672500">"ಮೊಬೈಲ್ ಡೇಟಾ ಆಫ್ ಇರುವಾಗ, <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> ನಲ್ಲಿ MMS ಸಂದೇಶ ಕಳುಹಿಸುವುದನ್ನು ಅನುಮತಿಸಲು ಟ್ಯಾಪ್ ಮಾಡಿ"</string>
@@ -5042,9 +5059,21 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"ವೈ-ಫೈ ಕರೆಮಾಡುವಿಕೆಯು, ಕೆಲವು ವೈ-ಫೈ ನೆಟ್ವರ್ಕ್ಗಳು ವಾಹಕ-ರಹಿತ ನೆಟ್ವರ್ಕ್ಗಳ ಮೂಲಕ ಕರೆಗಳನ್ನು ಮಾಡಲು ಮತ್ತು ಸ್ವೀಕರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"ಕರೆಗಳು"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <!-- no translation found for calls_sms_preferred (6016477652522583496) -->
+ <skip />
+ <!-- no translation found for calls_sms_calls_preferred (252913858812799809) -->
+ <skip />
+ <!-- no translation found for calls_sms_sms_preferred (5826706870873784062) -->
+ <skip />
+ <!-- no translation found for calls_sms_unavailable (4055729705246556529) -->
+ <skip />
+ <!-- no translation found for calls_sms_no_sim (2336377399761819718) -->
+ <skip />
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ಪ್ರಾಶಸ್ತ್ಯಗಳು"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"ಸಾರ್ವಜನಿಕ ನೆಟ್ವರ್ಕ್ಗಳಿಗೆ ಕನೆಕ್ಟ್ ಮಾಡಿ"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ನೆಟ್ವರ್ಕ್ ಕನೆಕ್ಷನ್, ಇಂಟರ್ನೆಟ್, ವೈರ್ಲೆಸ್, ಡೇಟಾ, ವೈಫೈ, ವೈ-ಫೈ, ವೈ ಫೈ, ಸೆಲ್ಯುಲಾರ್, ಮೊಬೈಲ್, ಸೆಲ್ ವಾಹಕ, 4g, 3g, 2g, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"ಏರೋಪ್ಲೇನ್-ಸುರಕ್ಷಿತ ನೆಟ್ವರ್ಕ್ ನೋಡಿ"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"ಏರ್ಪ್ಲೇನ್ ಮೋಡ್ ಆಫ್ ಮಾಡಿ"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"ಬೆಡ್ಟೈಮ್ ಮೋಡ್ ಆನ್ ಇರುವುದರಿಂದ ಲಭ್ಯವಿಲ್ಲ"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"ಮರುಹೊಂದಿಕೆ ಅಧಿಸೂಚನೆ ಪ್ರಾಮುಖ್ಯತೆ ಪೂರ್ಣಗೊಂಡಿದೆ."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ಆ್ಯಪ್ಗಳು"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 7f23884..93d406d 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 주소"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"저장된 네트워크"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"구독"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"기타 네트워크"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP 설정"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"이 사용자는 Wi‑Fi 고급 설정을 사용할 수 없습니다."</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"저장"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN 삭제"</string>
<string name="menu_new" msgid="6571230342655509006">"새 APN"</string>
<string name="menu_save" msgid="6611465355127483100">"저장"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"취소"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"취소"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"이름 입력란은 비워둘 수 없습니다."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN을 비워둘 수 없습니다."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"태블릿을 평소보다 더 많이 사용함"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"기기를 평소보다 더 많이 사용함"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"배터리가 평소보다 빨리 소진될 수 있습니다."</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"일시적으로 배터리 사용 제한"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"배터리 상태 유지에 도움이 됩니다. 자세히 알아보려면 탭하세요."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"일시적으로 배터리 사용이 제한됩니다. 자세히 알아보려면 탭하세요."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"휴대전화를 평소보다 더 많이 사용했습니다. 배터리가 예상보다 빨리 소진될 수 있습니다.\n\n배터리 사용량이 가장 많은 앱:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"태블릿을 평소보다 더 많이 사용했습니다. 배터리가 예상보다 빨리 소진될 수 있습니다.\n\n배터리 사용량이 가장 많은 앱:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"기기를 평소보다 더 많이 사용했습니다. 배터리가 예상보다 빨리 소진될 수 있습니다.\n\n배터리 사용량이 가장 많은 앱:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"설치 안함"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"계속 설치"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"인증서가 설치되지 않음"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g> 앱에서 이 기기에 인증서를 설치하도록 허용하시겠습니까?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"이 인증서를 통해 아래 앱 및 URL에서 사용자를 식별합니다."</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"허용 안함"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"허용"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"자세히 보기"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"인증서 관리 앱"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"없음"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"이 앱으로 설치한 인증서를 통해 아래 앱 및 URL에서 사용자 인증 정보를 식별합니다."</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"삭제"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"응급 상황 다이얼링 신호"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"긴급 통화 중 동작 설정"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"백업"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"표시할 데이터세트 최대 개수"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"기본값으로 초기화"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"개발자 옵션 자동완성 기능이 초기화되었습니다."</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"전체 GNSS 측정 강제 사용"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"듀티 사이클 없이 모든 GNSS 배열 및 빈도를 추적"</string>
<string name="device_theme" msgid="5027604586494772471">"기기 테마"</string>
<string name="default_theme" msgid="4815428567082263639">"기본값"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"네트워크 이름"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"방해받지 않도록 알림 일시중지"</string>
<string name="disabled_feature" msgid="7151433782819744211">"제공되지 않는 기능"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"이 기능은 휴대전화의 속도를 느리게 하므로 사용 중지되었습니다."</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"전체 GNSS 측정 강제 사용"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"듀티 사이클 없이 모든 GNSS 배열 및 빈도를 추적"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"비정상 종료 대화상자 항상 표시"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"앱이 비정상 종료될 때마다 대화상자 표시"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE 사용 앱 선택"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"사용(음소거)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"사용 안함"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"네트워크 세부정보"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"휴대전화에 설치된 앱에 기기 이름이 표시됩니다. 기기 이름은 블루투스 기기에 연결하거나 Wi-Fi 핫스팟을 설정할 때 다른 사용자에게 표시될 수도 있습니다."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"기기 이름이 휴대전화에 있는 앱에 표시됩니다. 기기 이름은 블루투스 기기 및 Wi-Fi 네트워크에 연결하거나 Wi-Fi 핫스팟을 설정할 때 다른 사용자에게도 표시될 수 있습니다."</string>
<string name="devices_title" msgid="649715719278562515">"기기"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"모든 설정"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"추천"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM을 활성화할 수 없음"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM을 삭제하고 다시 삽입해 보세요. 그래도 문제가 지속되면 기기를 다시 시작하세요."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM을 다시 사용 설정해 보세요. 그래도 문제가 지속되면 기기를 다시 시작하세요."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"네트워크 활성화"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>이(가) 활성화됨"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM 설정을 업데이트하려면 탭하세요."</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM 카드"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"다운로드한 SIM을 삭제하시겠습니까?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"이 SIM을 삭제하면 기기에서 <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> 서비스가 삭제됩니다.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> 서비스는 취소되지 않습니다."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"삭제"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi 통화를 사용하면 Wi‑Fi 네트워크와 같은 비이동통신사 네트워크를 통해 전화를 주고받을 수 있습니다."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"통화"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"기본"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"기본 전화"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"기본 SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"사용할 수 없음"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM 없음"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"환경설정"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"공용 네트워크에 연결"</string>
<string name="keywords_internet" msgid="7674082764898690310">"네트워크 연결, 인터넷, 무선, 데이터, Wifi, Wi-Fi, Wi Fi, 셀룰러, 모바일, 이동통신사, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"항공 안전 네트워크 보기"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"비행기 모드 사용 중지"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"취침 모드가 켜져 있으므로 사용할 수 없습니다."</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"알림 중요도가 재설정되었습니다."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"앱"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 78c753b..e460a31 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 даректери"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Сакталган тармактар"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Жазылуулар"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Башка тармактар"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP жөндөөлөрү"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Бул колдонуучу үчүн Wi‑Fi өздөштүрүлгөн жөндөөлөрү жеткиликсиз"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Сактоо"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN жок кылуу"</string>
<string name="menu_new" msgid="6571230342655509006">"Жаңы APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Сактоо"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Сакталбасын"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Жокко чыгаруу"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Аталыш сабы бош болбошу керек."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN бош болбошу керек."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Планшет адаттагыдан көбүрөөк колдонулду"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Түзмөк адаттагыдан көбүрөөк колдонулду"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Батарея эртерээк отуруп калышы мүмкүн"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Батареяны колдонуу убактылуу чектелген"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Батареянын абалын сактоого жардам берет. Кененирээк маалымат алуу үчүн таптап коюңуз."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Батареяны колдонуу убактылуу чектелген. Кененирээк маалымат алуу үчүн таптап коюңуз."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Телефонуңузду адаттагыдан көбүрөөк колдонуп жатасыз. Ушундан улам батареяңыз тез отуруп калышы мүмкүн.\n\nБатареяны эң көп пайдаланган колдонмолор:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Планшетиңизди адаттагыдан көбүрөөк колдонуп жатасыз. Ушундан улам батареяңыз тез отуруп калышы мүмкүн.\n\nБатареяны эң көп пайдаланган колдонмолор:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Түзмөгүңүздү адаттагыдан көбүрөөк колдонуп жатасыз. Ушундан улам батареяңыз тез отуруп калышы мүмкүн.\n\nБатареяны эң көп пайдаланган колдонмолор:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Орнотулбасын"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Баары бир орнотулсун"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Тастыктама орнотулган жок"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g> колдонмосуна ушул түзмөккө тастыктамаларды орнотууга уруксат берилсинби?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Бул тастыктамалар төмөндөгү колдонмолор менен URL даректеринде өздүгүңүздү аныктайт"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Уруксат берилбесин"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Уруксат берүү"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Көбүрөөк көрсөтүү"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Тастыктама башкаруу колдонмосу"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Жок"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Бул колдонмо орноткон тастыктамалар төмөндөгү колдонмолор менен URL даректеринде өздүгүңүздү аныктайт"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Өчүрүү"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Шашылыш чалуу сигналы"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Шашылыш чалуу аткарылганда көрүлчү аракетти коюу"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Камдык көчүрмөнү сактоо"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Көрүнүп турган дайындар топтомунун эң жогорку саны"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Демейки маанилерге кайтаруу"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Иштеп чыгуучунун параметрлерин автотолтуруу жөндөөсү кайра коюлду"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS көрсөткүчтөрүнө толук көз салууну иштетүү"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Иштөө цикли өчүрүлүп, бардык GNSS топторуна жана жыштыктарга көз салынат"</string>
<string name="device_theme" msgid="5027604586494772471">"Түзмөктүн темасы"</string>
<string name="default_theme" msgid="4815428567082263639">"Демейки"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Тармактын аталышы"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Алагды кылбоо үчүн билдирмелерди тындыруу"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Функция жеткиликтүү эмес"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Бул функция телефонуңузду жай иштетип жаткандыктан өчүрүлгөн"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS көрсөткүчтөрүнө толук көз салууну иштетүү"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Иштөө цикли өчүрүлүп, бардык GNSS топторуна жана жыштыктарга көз салынат"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Ката диалогун ар дайым көрсөтүү"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Колдонмо бузулган сайын диалог көрүнөт"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE иштетилген колдонмону тандоо"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Күйүк (үнсүз)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Өчүк"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Тармактын чоо-жайы"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Түзмөгүңүздүн аталышы телефонуңуздагы колдонмолорго көрүнүктүү. Bluetooth түзмөктөрүнө туташканыңызда же Wi‑Fi байланыш түйүнүн жөндөгөнүңүздө, аны башка адамдар да көрүшү мүмкүн."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Түзмөгүңүздүн аталышы телефонуңуздагы колдонмолорго көрүнүп турат. Bluetooth түзмөктөрүнө, Wi‑Fi тармагына туташканыңызда же Wi‑Fi байланыш түйүнүн жөндөгөнүңүздө, аны башка адамдар да көрүшү мүмкүн."</string>
<string name="devices_title" msgid="649715719278562515">"Түзмөктөр"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Бардык жөндөөлөр"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Сунуштар"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM-карта иштетилген жок"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM-картаны чыгарып, кайра салыңыз. Эгер маселе чечилбесе, түзмөктү өчүрүп күйгүзүңүз."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM-картаны кайра күйгүзүп көрүңүз. Эгер маселе чечилбесе, түзмөктү өчүрүп күйгүзүңүз."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Тармакты иштетүү"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> иштеп жатат"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM-картанын жөндөөлөрүн жаңыртуу үчүн таптап коюңуз"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-карта"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Бул жүктөлүп алынган SIM картадагы маалыматты тазалайсызбы?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Бул SIM картадагы маалыматты тазаласаңыз, түзмөктү <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> байланыш оператору тейлебей калат. Бирок \n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> байланыш операторунун тарифтик планы мурунку бойдон эле калат."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Тазалоо"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi аркылуу чалуу менен мобилдик байланыш оператору аркылуу эмес, айрым Wi‑Fi тармактарын колдонуп чала аласыз."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Чалуулар"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"артыкчылыктуу"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"чалуулар артыкчылыктуу"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS артыкчылыктуу"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"жеткиликсиз"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM-карта жок"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Жеке жөндөөлөр"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Жалпыга ачык тармактарга туташуу"</string>
<string name="keywords_internet" msgid="7674082764898690310">"тармакка туташуу, интернет, зымсыз, маалымат, wifi, wi-fi, wi fi, уюлдук, мобилдик, байланыш оператору, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Учактагы коопсуз тармактарды көрүү"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Учак режимин өчүрүү"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Уйку режиминде иштебейт"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Билдирмелердин маанилүүлүгүн баштапкы абалга келтирүү аяктады."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Колдонмолор"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 82149dc..d6d6c82 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"ທີ່ຢູ່ IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ເຄືອຂ່າຍທີ່ບັນທຶກໄວ້"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"ການສະໝັກໃຊ້"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"ເຄືອຂ່າຍອື່ນໆ"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"ການຕັ້ງຄ່າ IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"ບໍ່ສາມາດໃຊ້ການຕັ້ງຄ່າ Wi‑Fi ຂັ້ນສູງກັບຜູ້ໃຊ້ນີ້ໄດ້"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"ບັນທຶກ"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"ລຶບ APN"</string>
<string name="menu_new" msgid="6571230342655509006">"ເພີ່ມ APN ໃໝ່"</string>
<string name="menu_save" msgid="6611465355127483100">"ບັນທຶກ"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"ຍົກເລີກ"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"ຍົກເລີກ"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"ແຖບຂໍ້ມູນຊື່ບໍ່ສາມາດປ່ອຍຫວ່າງໄດ້."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ບໍ່ສາມາດປ່ອຍໃຫ້ຫວ່າງໄດ້."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ໃຊ້ແທັບເລັດຫຼາຍກວ່າປົກກະຕິ"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"ໃຊ້ອຸປະກອນຫຼາຍກວ່າປົກກະຕິ"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ແບັດເຕີຣີອາດໝົດໄວກວ່າປົກກະຕິ"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"ຈຳກັດແບັດເຕີຣີຊົ່ວຄາວ"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ຊ່ວຍຖະໜອມອາຍຸແບັດເຕີຣີ. ແຕະເພື່ອສຶກສາເພີ່ມເຕີມ."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"ຈຳກັດແບັດເຕີຣີຊົ່ວຄາວ. ແຕະເພື່ອສຶກສາເພີ່ມເຕີມ."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"ມີການນຳໃຊ້ໂທລະສັບຂອງທ່ານຫຼາຍກວ່າປົກກະຕິ. ແບັດເຕີຣີອາດໝົດໄວກວ່າທີ່ຄາດໄວ້.\n\nແອັບທີ່ໃຊ້ແບັດເຕີຣີຫຼາຍສຸດແມ່ນ:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"ມີການນຳໃຊ້ແທັບເລັດຂອງທ່ານຫຼາຍກວ່າປົກກະຕິ. ແບັດເຕີຣີອາດໝົດໄວກວ່າທີ່ຄາດໄວ້.\n\nແອັບທີ່ໃຊ້ແບັດເຕີຣີຫຼາຍສຸດແມ່ນ:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"ມີການນຳໃຊ້ອຸປະກອນຂອງທ່ານຫຼາຍກວ່າປົກກະຕິ. ແບັດເຕີຣີອາດໝົດໄວກວ່າທີ່ຄາດໄວ້.\n\nແອັບທີ່ໃຊ້ແບັດເຕີຣີຫຼາຍສຸດແມ່ນ:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ຢ່າຕິດຕັ້ງ"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"ຢືນຢັນການຕິດຕັ້ງ"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"ບໍ່ໄດ້ຕິດຕັ້ງໃບຮັບຮອງເທື່ອ"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"ອະນຸຍາດໃຫ້ <xliff:g id="APP_NAME">%s</xliff:g> ຕິດຕັ້ງໃບຮັບຮອງຢູ່ອຸປະກອນນີ້ບໍ?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ໃບຮັບຮອງເຫຼົ່ານີ້ຈະລະບຸຕົວຕົນທ່ານຫາແອັບ ແລະ URL ທາງລຸ່ມ"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"ບໍ່ອະນຸຍາດ"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"ອະນຸຍາດ"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"ສະແດງເພີ່ມເຕີມ"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"ແອັບການຈັດການໃບຮັບຮອງ"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ບໍ່ມີ"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"ໃບຮັບຮອງທີ່ຕິດຕັ້ງໂດຍແອັບນີ້ຈະລະບຸຕົວຕົນທ່ານຫາແອັບ ແລະ URL ທາງລຸ່ມ"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"ລຶບອອກ"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"ສັນຍານການໂທສຸກເສີນ"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"ຕັ້ງຄ່າການເຮັດວຽກເມື່ອມີການໂທຫາໝາຍເລກສຸກເສີນ"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"ສຳຮອງຂໍ້ມູນ"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"ຊຸດຂໍ້ມູນທີ່ສະແດງສູງສຸດ"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ຣີເຊັດເປັນຄ່າເລີ່ມຕົ້ນ"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"ຣີເຊັດຕົວເລືອກການຕື່ມຂໍ້ມູນນັກພັດທະນາໂດຍອັດຕະໂນມັດແລ້ວ"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ບັງຄັບການກວດສອບ GNSS ເຕັມຮູບແບບ"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ຕິດຕາມກຸ່ມ ແລະ ຄວາມຖີ່ GNSS ທັງໝົດໂດຍບໍ່ມີຮອບຕາມພັນທະ"</string>
<string name="device_theme" msgid="5027604586494772471">"ຮູບແບບສີສັນອຸປະກອນ"</string>
<string name="default_theme" msgid="4815428567082263639">"ຄ່າເລີ່ມຕົ້ນ"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ຊື່ເຄືອຂ່າຍ"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ຢຸດການແຈ້ງເຕືອນຊົ່ວຄາວເພື່ອໃຫ້ມີສະມາທິ"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ບໍ່ສາມາດໃຊ້ຄຸນສົມບັດໄດ້"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"ຄຸນສົມບັດນີ້ຖືກປິດໄວ້ແລ້ວເນື່ອງຈາກມັນເຮັດໃຫ້ໂທລະສັບຂອງທ່ານຊ້າ"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ບັງຄັບການກວດສອບ GNSS ເຕັມຮູບແບບ"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ຕິດຕາມກຸ່ມ ແລະ ຄວາມຖີ່ GNSS ທັງໝົດໂດຍບໍ່ມີຮອບຕາມພັນທະ"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"ສະແດງກ່ອງຂໍ້ຄວາມການເຮັດວຽກລົ້ມເຫລວທຸກເທື່ອ"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"ສະແດງກ່ອງຂໍ້ຄວາມທຸກເທື່ອທີ່ແອັບເຮັດວຽກລົ້ມເຫລວ"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ເລືອກແອັບທີ່ໃຊ້ ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ເປີດ (ປິດສຽງ)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ປິດ"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"ລາຍລະອຽດເຄືອຂ່າຍ"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"ຊື່ອຸປະກອນຂອງທ່ານຈະສາມາດເບິ່ງເຫັນໄດ້ໂດຍແອັບຢູ່ໂທລະສັບຂອງທ່ານ. ນອກຈາກນັ້ນ, ຄົນອື່ນອາດຈະເຫັນມັນໄດ້ເມື່ອທ່ານເຊື່ອມຕໍ່ຫາອຸປະກອນ Bluetooth ຫຼື ຕັ້ງ Wi-Fi ຮັອດສະປອດ."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ຊື່ອຸປະກອນຂອງທ່ານຈະສະແດງໃຫ້ແອັບຕ່າງໆຢູ່ໂທລະສັບເຫັນ. ມັນອາດຖືກສະແດງໃຫ້ຄົນອື່ນເຫັນໃນເວລາທີ່ທ່ານເຊື່ອມຕໍ່ຫາອຸປະກອນ Bluetooth, ເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍ Wi-Fi ຫຼື ຕັ້ງຄ່າຮັອດສະປອດ Wi-Fi ນຳ."</string>
<string name="devices_title" msgid="649715719278562515">"ອຸປະກອນ"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"ການຕັ້ງຄ່າທັງໝົດ"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"ຄຳແນະນຳ"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"ບໍ່ສາມາດເປີດນຳໃຊ້ຊິມໄດ້"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"ກະລຸນາຖອດຊິມອອກແລ້ວໃສ່ເຂົ້າໄປໃໝ່. ຫາກຍັງຄົງພົບບັນຫາຢູ່, ໃຫ້ຣີສະຕາດອຸປະກອນຂອງທ່ານ."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ໃຫ້ລອງເປີດຊິມຄືນໃໝ່. ຫາກຍັງຄົງພົບບັນຫາຢູ່, ໃຫ້ຣີສະຕາດອຸປະກອນຂອງທ່ານ."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"ການເປີດນຳໃຊ້ເຄືອຂ່າຍ"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"ເປີດໃຊ້ <xliff:g id="CARRIER_NAME">%1$s</xliff:g> ຢູ່"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"ແຕະເພື່ອອັບເດດການຕັ້ງຄ່າຊິມກາດ"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"ຊິມກາດ"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ລຶບ SIM ທີ່ດາວໂຫລດມາແລ້ວນີ້ອອກບໍ?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ການລຶບ SIM ນີ້ຈະລຶບບໍລິການ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ອອກຈາກອຸປະກອນນີ້.\n\nຈະບໍ່ຍົກເລີກບໍລິການສຳລັບ <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"ລຶບ"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"ການໂທ Wi‑Fi ຈະເຮັດໃຫ້ທ່ານສາມາດໂທ ແລະ ຮັບສາຍຜ່ານເຄືອຂ່າຍທີ່ບໍ່ແມ່ນຂອງຜູ້ໃຫ້ບໍລິການໄດ້ ເຊັ່ນ: ເຄືອຂ່າຍ Wi‑Fi ບາງບ່ອນ."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"ການໂທ"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"ຕ້ອງການ"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"ຕ້ອງການການໂທ"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"ຕ້ອງການ SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ບໍ່ມີຂໍ້ມູນ"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"ບໍ່ມີຊິມ"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ການຕັ້ງຄ່າ"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"ເຊື່ອມຕໍ່ຫາເຄືອຂ່າຍສາທາລະນະ"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ການເຊື່ອມຕໍ່ເຄືອຂ່າຍ, ອິນເຕີເນັດ, ໄຮ້ສາຍ, ອິນເຕີເນັດມືຖື, wifi, wi-fi, wi fi, ເຄືອຂ່າຍທືຖື, ມືຖື, ຜູ້ໃຫ້ບໍລິການມືຖື, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"ເບິ່ງເຄືອຂ່າຍທີ່ປອດໄພສຳລັບຍົນ"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"ປິດໂໝດຢູ່ໃນຍົນ"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"ບໍ່ສາມາດໃຊ້ໄດ້ເນື່ອງຈາກເປີດໂໝດເວລານອນຢູ່"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"ຣີເຊັດຄວາມສຳຄັນການແຈ້ງເຕືອນສຳເລັດແລ້ວ."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ແອັບ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index c9fccbb..a1d1b8b 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -1062,8 +1062,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"„IPv6“ adresai"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Išsaugoti tinklai"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Prenumeratos"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Kiti tinklai"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP nustatymai"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"„Wi‑Fi“ išplėstiniai nustatymai nepasiekiami šiam naudotojui"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Išsaugoti"</string>
@@ -1639,7 +1638,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Ištrinti APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Naujas APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Išsaugoti"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Atmesti"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Atšaukti"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Pavadinimo laukas negali būti tuščias."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN negali būti tuščias."</string>
@@ -2518,8 +2517,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Planšetinis kompiuteris buvo naudojamas daugiau nei įprasta"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Įrenginys buvo naudojamas daugiau nei įprasta"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Akumuliatoriaus energija gali išsekti greičiau nei įprasta"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Akumuliatorius laikinai apribotas"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Apsaugo akumuliatorių. Palieskite, kad sužinotumėte daugiau."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Akumuliatorius laikinai apribotas. Palieskite, kad sužinotumėte daugiau."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefonas buvo naudojamas daugiau nei įprastai. Akumuliatoriaus energija gali išsekti greičiau, nei tikėjotės.\n\nDaugiausiai akumuliatoriaus energijos suvartojančios programos:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Planšetinis kompiuteris buvo naudojamas daugiau nei įprastai. Akumuliatoriaus energija gali išsekti greičiau, nei tikėjotės.\n\nDaugiausiai akumuliatoriaus energijos suvartojančios programos:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Įrenginys buvo naudojamas daugiau nei įprastai. Akumuliatoriaus energija gali išsekti greičiau, nei tikėjotės.\n\nDaugiausiai akumuliatoriaus energijos suvartojančios programos:"</string>
@@ -2799,6 +2799,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Neįdiegti"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Vis tiek įdiegti"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifikatas neįdiegtas"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Leisti „<xliff:g id="APP_NAME">%s</xliff:g>“ įdiegti sertifikatus šiame įrenginyje?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Šie sertifikatai identifikuos jus, kai naudosite toliau nurodytas programas ir URL"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Neleisti"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Leisti"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Rodyti daugiau"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Sertifikatų tvarkymo programa"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nėra"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Sertifikatai, kuriuos įdiegė ši programa, identifikuos jus, kai naudosite toliau nurodytas programas ir URL"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Pašalinti"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Kritinės padėties numerio rinkimo signalas"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Nustatyti elgesį, kai skambinama pagalbos numeriu"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Atsarginė kopija"</string>
@@ -4802,6 +4811,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maks. matomų duomenų rinkinių"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Nustatyti numatytąsias vertes iš naujo"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Automatinio pildymo kūrėjo parinktys nustatytos iš naujo"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Priversti vykdyti visus GNSS matavimus"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Stebėti visas GNSS konferencijas ir visus dažnius netaikant darbo ciklų"</string>
<string name="device_theme" msgid="5027604586494772471">"Įrenginio tema"</string>
<string name="default_theme" msgid="4815428567082263639">"Numatytoji"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Tinklo pavadinimas"</string>
@@ -4818,8 +4835,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pristabdyti pranešimus, kad neblaškytų dėmesio"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funkcija negalima"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Ši funkcija buvo išjungta, nes, kai ji įjungta, telefonas veikia lėčiau"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Priversti vykdyti visus GNSS matavimus"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Stebėti visas GNSS konferencijas ir visus dažnius netaikant darbo ciklų"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Visada rodyti strigčių dialogo langą"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Rodyti dialogo langą kiekvieną kartą, kai programa užstringa"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Pasirinkti programą, kurioje įgalinta ANGLE"</string>
@@ -4887,7 +4902,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Įjungti (nutildyti)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Išjungti"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Išsami tinklo info."</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Įrenginio pavadinimas matomas jūsų telefone esančioms programoms. Kai prisijungiate prie „Bluetooth“ įrenginių arba nustatote „Wi-Fi“ viešosios interneto prieigos tašką, jį taip pat gali matyti kiti žmonės."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Įrenginio pavadinimas matomas jūsų telefone esančioms programoms. Kai prisijungiate prie „Bluetooth“ įrenginių ar „Wi-FI“ tinklo arba nustatote „Wi-Fi“ viešosios interneto prieigos tašką, jį taip pat gali matyti kiti žmonės."</string>
<string name="devices_title" msgid="649715719278562515">"Įrenginiai"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Visi nustatymai"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Pasiūlymai"</string>
@@ -5049,6 +5064,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nepavyko suaktyvinti SIM kortelės"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Išimkite SIM kortelę ir vėl įdėkite. Jei problema išlieka, iš naujo paleiskite įrenginį."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Pabandykite vėl įjungti SIM kortelę. Jei problema išlieka, iš naujo paleiskite įrenginį."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Tinklo aktyvinimas"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operatorius „<xliff:g id="CARRIER_NAME">%1$s</xliff:g>“ aktyvus"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Palieskite ir atnaujinkite SIM nustatymus"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM kortelė"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Ištrinti šią atsisiųstą SIM kortelę?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Ištrynus šią SIM kortelę bus pašalintos „<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>“ paslaugos iš šio įrenginio.\n\n„<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>“ paslaugos nebus atšauktos."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Ištrinti"</string>
@@ -5205,9 +5224,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Naudodami „Wi-Fi“ skambinimą galite atlikti ir gauti skambučius ne operatoriaus tinklais, pvz., kai kuriais „Wi‑Fi“ tinklais."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Skambučiai"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"pageidaujama"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"pageidaujami skambučiai"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"pageidaujami SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"nepasiekiama"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Nėra SIM kortelės"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Nuostatos"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Prisijungti prie viešųjų tinklų"</string>
<string name="keywords_internet" msgid="7674082764898690310">"tinklo ryšys, internetas, belaidis ryšys, duomenys, „Wifi“, „Wi-Fi“, „Wi Fi“, mobilusis ryšys, mobilusis, mobiliojo ryšio operatorius, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Žr. tinklus, kuriais saugu naudotis lėktuvuose"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Išjungti lėktuvo režimą"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nepasiekiama, nes įjungtas laiko eiti miegoti režimas"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Pranešimų svarba nustatyta iš naujo."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Programos"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 610f1ac..b1228fa 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -1042,8 +1042,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 adreses"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saglabātie tīkli"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonementi"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Citi tīkli"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP iestatījumi"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi‑Fi papildu iestatījumi šim lietotājam nav pieejami."</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Saglabāt"</string>
@@ -1618,7 +1617,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Dzēst APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Jauns APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Saglabāt"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Atmest"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Atcelt"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Lauks Nosaukums nedrīkst būt tukšs."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN nedrīkst būt tukšs."</string>
@@ -2487,8 +2486,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Planšetdators tika izmantots vairāk nekā parasti."</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Ierīce tika izmantota vairāk nekā parasti."</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Akumulators var izlādēties ātrāk nekā parasti"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Akumulatora uzlādes īslaicīga ierobežošana"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Tas palīdz uzturēt akumulatoru darba kārtībā. Pieskarieties, lai uzzinātu vairāk."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Akumulatora uzlādes līmenis ir īslaicīgi ierobežots. Pieskarieties, lai uzzinātu vairāk."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Jūsu tālrunis tika izmantots vairāk nekā parasti. Akumulators var izlādēties ātrāk, nekā paredzēts.\n\nLietotnes, kas izmanto visvairāk akumulatora enerģijas:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Jūsu planšetdators tika izmantots vairāk nekā parasti. Akumulators var izlādēties ātrāk, nekā paredzēts.\n\nLietotnes, kas izmanto visvairāk akumulatora enerģijas:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Jūsu ierīce tika izmantota vairāk nekā parasti. Akumulators var izlādēties ātrāk, nekā paredzēts.\n\nLietotnes, kas izmanto visvairāk akumulatora enerģijas:"</string>
@@ -2761,6 +2761,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Neinstalēt"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Tik un tā instalēt"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifikāts nav instalēts"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Vai atļaut lietotnei <xliff:g id="APP_NAME">%s</xliff:g> instalēt sertifikātus šajā ierīcē?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Izmantojot šos sertifikātus, tālāk norādītās lietotnes un vietrāži URL varēs jūs identificēt."</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Neatļaut"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Atļaut"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Rādīt vairāk"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Sertifikātu pārvaldības lietotne"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nav"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Izmantojot šīs lietotnes instalētos sertifikātus, tālāk norādītās lietotnes un vietrāži URL varēs jūs identificēt."</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Noņemt"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Ārkārtas zvana signāls"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Iestatīt uzvedību, kad tiek veikts ārkārtas zvans"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Dublēšana"</string>
@@ -4722,6 +4731,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksimālais redzamo datu kopu skaits"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Atiestatīt uz noklusējuma vērtībām"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Izstrādātājiem paredzēto opciju automātiskā aizpilde ir atiestatīta."</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Veikt pilnus GNSS mērījumus"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Izsekot visas GNSS konstelācijas un frekvences bez darba cikliem"</string>
<string name="device_theme" msgid="5027604586494772471">"Ierīces motīvs"</string>
<string name="default_theme" msgid="4815428567082263639">"Noklusējums"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Tīkla nosaukums"</string>
@@ -4738,8 +4755,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pārtraukt paziņojumus, lai ilglaicīgi koncentrētos"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funkcija nav pieejama"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Šī funkcija ir izslēgta, jo tā palēnina jūsu tālruņa darbību."</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Veikt pilnus GNSS mērījumus"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Izsekot visas GNSS konstelācijas un frekvences bez darba cikliem"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Vienmēr rādīt avārijas dialoglodziņu"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Rādīt dialoglodziņu katru reizi, kad lietotne avarē"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Atlasiet lietotni, kam ANGLE ir iespējots"</string>
@@ -4807,7 +4822,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Ieslēgt (izslēgt skaņu)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Izslēgt"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Dati par tīklu"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Jūsu ierīces nosaukums ir redzams tālrunī instalētajām lietotnēm. Ja izveidosiet savienojumu ar Bluetooth ierīcēm vai iestatīsiet Wi-Fi tīklāju, tas būs redzams arī citām personām."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Jūsu ierīces nosaukums ir redzams tālrunī instalētajām lietotnēm. Tas var būt redzams arī citām personām, ja izveidosiet savienojumu ar Bluetooth ierīcēm, Wi-Fi tīklu vai iestatīsiet Wi-Fi tīklāju."</string>
<string name="devices_title" msgid="649715719278562515">"Ierīces"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Visi iestatījumi"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Ieteikumi"</string>
@@ -4968,6 +4983,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nevar aktivizēt SIM karti"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Izņemiet un atkal ievietojiet SIM karti. Ja problēma nav novērsta, restartējiet savu ierīci."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Mēģiniet atkal ieslēgt SIM karti. Ja problēma nav novērsta, restartējiet savu ierīci."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Tīkla aktivizācija"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ir aktīvs"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Pieskarieties, lai atjauninātu SIM kartes iestatījumus."</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM karte"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Vai dzēst šo lejupielādēto SIM karti?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Izdzēšot šo SIM karti, operatora “<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>” pakalpojumi tiek noņemti no šīs ierīces.\n\nOperatora “<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>” pakalpojumi netiks atcelti."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Dzēst"</string>
@@ -5122,9 +5141,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Izmantojot Wi-Fi zvanus, varat veikt un saņemt zvanus tīklos, ko nenodrošina mobilo sakaru operatori, piemēram, dažos Wi-Fi tīklos."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Zvani"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"Īsziņas"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"vēlamie"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"vēlamie zvani"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"vēlamās īsziņas"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"nav pieejami"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Nav SIM kartes"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferences"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Izveidot savienojumu ar publiskiem tīkliem"</string>
<string name="keywords_internet" msgid="7674082764898690310">"tīkla savienojums, internets, bezvadu, dati, Wi-Fi, mobilais tīkls, mobilie sakari, mobilo sakaru operators, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Skatīt tīklus, kas droši lidojuma režīmā"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Izslēgt lidojuma režīmu"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Šī preference nav pieejama, jo ir ieslēgts naktsmiera režīms."</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Paziņojumu svarīguma līmeņa atiestatīšana ir pabeigta."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Lietotnes"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 2e05501..188f46f 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-адреси"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Зачувани мрежи"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Претплати"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Други мрежи"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Поставки за IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Напредни поставки за Wi‑Fi не се достапни за корисников"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Зачувај"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Избриши APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Нов APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Зачувај"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Отфрли"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Откажи"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Полето за име не може да биде празно."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN не може да биде празна."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Таблетот се користи повеќе од вообичаено"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Уредот се користи повеќе од вообичаено"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Батеријата може да се потроши порано од вообичаено"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Батеријата е привремено ограничена"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Помага да се зачува состојбата на батеријата. Допрете за да дознаете повеќе."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Батеријата е привремено ограничена. Допрете за да дознаете повеќе."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Телефонот сте го користеле повеќе од вообичаено. Батеријата може да се потроши порано од очекуваното.\n\nАпликации што најмногу ја користеле батеријата:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Таблетот сте го користеле повеќе од вообичаено. Батеријата може да се потроши порано од очекуваното.\n\nАпликации што најмногу ја користеле батеријата:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Уредот сте го користеле повеќе од вообичаено. Батеријата може да се потроши порано од очекуваното.\n\nАпликации што најмногу ја користеле батеријата:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Не инсталирај"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Сепак инсталирај"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Сертификатот не е инсталиран"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Да се дозволи <xliff:g id="APP_NAME">%s</xliff:g> да инсталира сертификати на уредов?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Овие сертификати ќе ве идентификуваат на апликациите и URL-адресите подолу"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Не дозволувај"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Дозволи"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Прикажи повеќе"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Управување со сертификати"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Нема"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Сертификатите инсталирани од апликацијава ве идентификуваат на апликациите и URL-адресите подолу"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Отстрани"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал за итно бирање"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Постави однесување кога се прави итен повик"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Бекап"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Максимум видливи збирови на податоци"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Ресетирај на стандардните вредности"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Опциите за програмери за автоматско пополнување се ресетирани"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Присилување целосни мерења со GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Следете ги сите констелации и фреквенции со GNSS без работен циклус"</string>
<string name="device_theme" msgid="5027604586494772471">"Тема на уредот"</string>
<string name="default_theme" msgid="4815428567082263639">"Стандардно"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Име на мрежата"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Паузирајте ги известувањата за да останете фокусирани"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Функцијата не е достапна"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Функцијава е исклучена бидејќи го успорува телефонот"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Присилување целосни мерења со GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Следете ги сите констелации и фреквенции со GNSS без работен циклус"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Секогаш прикажувај дијалог на пад"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Прикажи дијалог при секој пад на апликација"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Избери апликација овозможена за ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Вклучено (исклучен звук)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Исклучено"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Детали за мрежата"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Името на уредот е видливо за апликациите на телефонот. Може да го видат и други луѓе кога ќе се поврзете со уреди со Bluetooth или кога ќе поставите Wi-Fi точка на пристап."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Името на уредот е видливо за апликациите на телефонот. Може да го видат и други луѓе кога ќе се поврзете со уреди со Bluetooth, ќе се поврзете на Wi-Fi мрежа или кога ќе поставите Wi-Fi точка на пристап."</string>
<string name="devices_title" msgid="649715719278562515">"Уреди"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Сите поставки"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Предлози"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Не може да се активира SIM-картичката"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Извадете и повторно вметнете ја SIM-картичката. Ако и понатаму се соочувате со проблемот, рестартирајте го уредот."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Обидете се повторно да ја вклучите SIM-картичката. Ако и понатаму се соочувате со проблемот, рестартирајте го уредот."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активирање на мрежата"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> е активен"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Допрете за да ги ажурирате поставките на SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-картичка"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Да се избрише преземената SIM-картичка?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Ако ја избришете SIM-картичкава, услугата на <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ќе се отстрани од уредов.\n\nУслугата за <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> нема да се откаже."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Избриши"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Функцијата „Повици преку Wi-Fi“ ви овозможува да упатувате и примате повици преку мрежи што не се на операторот, на пр., некои Wi‑Fi мрежи."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Повици"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"претпочитано"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"претпочитани се повици"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"претпочитана е SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"недостапно"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Нема SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Поставки"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Поврзувајте се на јавни мрежи"</string>
<string name="keywords_internet" msgid="7674082764898690310">"мрежна врска, интернет, безжичен, мобилен, Wi-Fi, мобилна, мобилен оператор, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Прикажи мрежи безбедни за во авион"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Исклучете го авионскиот режим"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Недостапно бидејќи е вклучен „Режимот за спиење“"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Ресетирањето на важноста на известувањата е завршено."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Апликации"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 399f87d..d66d8c0 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 വിലാസങ്ങൾ"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"സംരക്ഷിച്ച നെറ്റ്വർക്ക്"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"സബ്സ്ക്രിപ്ഷനുകൾ"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"മറ്റ് നെറ്റ്വർക്കുകൾ"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP ക്രമീകരണങ്ങൾ"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"ഈ ഉപയോക്താവിന് വൈഫൈ വിപുല ക്രമീകരണം ലഭ്യമല്ല"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"സംരക്ഷിക്കുക"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN ഇല്ലാതാക്കുക"</string>
<string name="menu_new" msgid="6571230342655509006">"പുതിയ APN"</string>
<string name="menu_save" msgid="6611465355127483100">"സംരക്ഷിക്കുക"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"നിരസിക്കുക"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"റദ്ദാക്കുക"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"പേരിന്റെ ഫീൽഡ് ശൂന്യമായിരിക്കരുത്."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ശൂന്യമായിരിക്കരുത്."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ടാബ്ലെറ്റ്, സാധാരണയിൽ കൂടുതൽ ഉപയോഗിച്ചു"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"ഉപകരണം, സാധാരണയിൽ കൂടുതൽ ഉപയോഗിച്ചു"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"സാധാരണയിലും നേരത്തെ ബാറ്ററി ചാർജ് തീർന്നേക്കാം"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"ബാറ്ററി താൽക്കാലികമായി പരിമിതപ്പെടുത്തി"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ബാറ്ററിയുടെ ആരോഗ്യം സംരക്ഷിക്കാൻ സഹായിക്കുന്നു. കൂടുതലറിയാൻ ടാപ്പ് ചെയ്യുക."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"ബാറ്ററി താൽക്കാലം പരിമിതപ്പെടുത്തി. കൂടുതലറിയാൻ ടാപ്പ് ചെയ്യുക."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"നിങ്ങളുടെ ഫോൺ സാധാരണയിൽ കൂടുതൽ ബാറ്ററി ഉപയോഗിച്ചു. നിങ്ങളുടെ ബാറ്ററിയുടെ ചാർജ് പ്രതീക്ഷിച്ചതിനേക്കാൾ വേഗത്തിൽ തീർന്നേക്കാം\n\nബാറ്ററി ഉപയോഗമനുസരിച്ചുള്ള മുൻനിര ആപ്പുകൾ ഇനിപ്പറയുന്നു:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"നിങ്ങളുടെ ടാബ്ലെറ്റ് സാധാരണയിൽ കൂടുതൽ ബാറ്ററി ഉപയോഗിച്ചു. നിങ്ങളുടെ ബാറ്ററിയുടെ ചാർജ് പ്രതീക്ഷിച്ചതിനേക്കാൾ വേഗത്തിൽ തീർന്നേക്കാം\n\nബാറ്ററി ഉപയോഗമനുസരിച്ചുള്ള മുൻനിര ആപ്പുകൾ ഇനിപ്പറയുന്നു:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"നിങ്ങളുടെ ഉപകരണം സാധാരണയിൽ കൂടുതൽ ബാറ്ററി ഉപയോഗിച്ചു. നിങ്ങളുടെ ബാറ്ററിയുടെ ചാർജ് പ്രതീക്ഷിച്ചതിനേക്കാൾ വേഗത്തിൽ തീർന്നേക്കാം\n\nബാറ്ററി ഉപയോഗമനുസരിച്ചുള്ള മുൻനിര ആപ്പുകൾ ഇനിപ്പറയുന്നു:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ഇൻസ്റ്റാൾ ചെയ്യരുത്"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"എന്തായാലും ഇൻസ്റ്റാൾ ചെയ്യുക"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"സർട്ടിഫിക്കറ്റ് ഇൻസ്റ്റാൾ ചെയ്തില്ല"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"ഈ ഉപകരണത്തിൽ സർട്ടിഫിക്കറ്റുകൾ ഇൻസ്റ്റാൾ ചെയ്യാൻ <xliff:g id="APP_NAME">%s</xliff:g> എന്നതിനെ അനുവദിക്കണോ?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ചുവടെയുള്ള ആപ്പുകളും URL-കളും ഈ സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിച്ച് നിങ്ങളെ തിരിച്ചറിയും"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"അനുവദിക്കരുത്"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"അനുവദിക്കുക"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"കൂടുതൽ കാണിക്കുക"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"സർട്ടിഫിക്കറ്റ് മാനേജ്മെന്റ് ആപ്പ്"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ഒന്നുമില്ല"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"ചുവടെയുള്ള ആപ്പുകളും URL-കളും നിങ്ങൾ ആക്സസ് ചെയ്യുമ്പോൾ, ഈ ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്ത സർട്ടിഫിക്കറ്റുകളിലൂടെ സിസ്റ്റം നിങ്ങളെ തിരിച്ചറിയും"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"നീക്കം ചെയ്യുക"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"അടിയന്തര ഡയലിംഗ് സിഗ്നൽ"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"ഒരു അടിയന്തര കോൾ ലഭിക്കുന്ന സമയത്തെ പ്രവർത്തരീതി സജ്ജീകരിക്കുക"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"ബാക്കപ്പെടുക്കുക"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"കാണാനാവുന്ന പരമാവധി ഡാറ്റാസെറ്റുകൾ"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ഡിഫോൾട്ട് മൂല്യങ്ങളിലേക്ക് പുനഃക്രമീകരിക്കുക"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"സ്വമേധയാ പൂരിപ്പിക്കുന്ന ഡെവലപ്പർ ഓപ്ഷനുകൾ പുനഃക്രമീകരിച്ചു"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"പൂർണ്ണ GNSS അളവുകൾ നടപ്പിലാക്കുക"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"നോ ഡ്യൂട്ടി സൈക്ലിംഗ് ഉപയോഗിച്ച് മുഴുവൻ GNSS കോൺസ്റ്റലേഷനുകളും ആവൃത്തികളും ട്രാക്ക് ചെയ്യൂ"</string>
<string name="device_theme" msgid="5027604586494772471">"ഉപകരണത്തിന്റെ തീം"</string>
<string name="default_theme" msgid="4815428567082263639">"ഡിഫോൾട്ട്"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"നെറ്റ്വർക്കിന്റെ പേര്"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ഫോക്കസ് ചെയ്ത നിലയിൽ തുടരാൻ, അറിയിപ്പുകൾ താൽക്കാലികമായി നിർത്തുക"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ഫീച്ചർ ലഭ്യമല്ല"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"നിങ്ങളുടെ ഫോണിൻ്റെ വേഗത കുറയ്ക്കുന്നതിനാൽ ഈ ഫീച്ചർ ഓഫാക്കി"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"പൂർണ്ണ GNSS അളവുകൾ നടപ്പിലാക്കുക"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"നോ ഡ്യൂട്ടി സൈക്ലിംഗ് ഉപയോഗിച്ച് മുഴുവൻ GNSS കോൺസ്റ്റലേഷനുകളും ആവൃത്തികളും ട്രാക്ക് ചെയ്യൂ"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"എപ്പോഴും ക്രാഷ് ഡയലോഗ് കാണിക്കുക"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"ആപ്പ് ക്രാഷാകുമ്പോഴെല്ലാം ഡയലോഗ് കാണിക്കുക"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE പ്രവർത്തനക്ഷമമാക്കിയ ആപ്പ് തിരഞ്ഞെടുക്കുക"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ഓണാണ് (മ്യൂട്ട് ചെയ്യുക)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ഓഫാണ്"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"നെറ്റ്വർക്ക് വിശദാംശങ്ങൾ"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"നിങ്ങളുടെ ഫോണിലെ അപ്ലിക്കേഷനുകൾക്ക് നിങ്ങളുടെ ഉപകരണത്തിന്റെ പേര് ദൃശ്യമാണ്. വൈഫൈ ഹോട്ട്സ്പോട്ട് സജ്ജീകരിക്കുമ്പോഴോ Bluetooth ഉപകരണങ്ങളുമായി കണക്റ്റ് ചെയ്യുമ്പോഴോ, ഇത് മറ്റ് ആളുകൾക്കും കാണാനായേക്കും."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ഫോണിലെ ആപ്പുകൾക്ക് നിങ്ങളുടെ ഉപകരണത്തിന്റെ പേര് ദൃശ്യമാണ്. Bluetooth ഉപകരണങ്ങളിലേക്കോ വൈഫൈ നെറ്റ്വർക്കിലേക്കോ കണക്റ്റ് ചെയ്യുമ്പോഴോ ഒരു വൈഫൈ ഹോട്ട്സ്പോട്ട് സജ്ജീകരിക്കുമ്പോഴോ ഇത് മറ്റ് ആളുകൾക്കും കാണാനായേക്കും."</string>
<string name="devices_title" msgid="649715719278562515">"ഉപകരണങ്ങൾ"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"എല്ലാ ക്രമീകരണവും"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"നിർദ്ദേശങ്ങൾ"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM സജീവമാക്കാനാകില്ല"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM നീക്കം ചെയ്ത് വീണ്ടും ഇടുക. പ്രശ്നം തുടരുകയാണെങ്കിൽ ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്യുക."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM വീണ്ടും ഓണാക്കാൻ ശ്രമിക്കുക. പ്രശ്നം തുടരുകയാണെങ്കിൽ ഉപകരണം റീസ്റ്റാർട്ട് ചെയ്യുക."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"നെറ്റ്വർക്ക് സജീവമാക്കൽ"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> സജീവമാണ്"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"സിം ക്രമീകരണം അപ്ഡേറ്റ് ചെയ്യാൻ ടാപ്പ് ചെയ്യുക"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"സിം കാർഡ്"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ഡൗൺലോഡ് ചെയ്ത ഈ സിം മായ്ക്കണോ?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ഈ സിം മായ്ക്കുന്നതിലൂടെ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> സേവനം ഈ ഉപകരണത്തിൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും.\n\n <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> സേവനം റദ്ദാക്കില്ല."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"മായ്ക്കുക"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"ചില വൈ-ഫൈ നെറ്റ്വർക്കുകൾ പോലുള്ള കാരിയർ ഇതര നെറ്റ്വർക്കുകളിലൂടെ കോളുകൾ വിളിക്കാനും സ്വീകരിക്കാനും വൈഫൈ കോളിംഗ് നിങ്ങളെ അനുവദിക്കുന്നു."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"കോളുകൾ"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"തിരഞ്ഞെടുത്തത്"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"തിരഞ്ഞെടുത്ത കോളുകൾ"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"തിരഞ്ഞെടുത്ത SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ലഭ്യമല്ല"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"സിം ഇല്ല"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"മുൻഗണനകൾ"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"പൊതു നെറ്റ്വർക്കിലേക്ക് കണക്റ്റ് ചെയ്യുക"</string>
<string name="keywords_internet" msgid="7674082764898690310">"നെറ്റ്വർക്ക് കണക്ഷൻ, ഇന്റര്നെറ്റ്, വയർലെസ്, ഡാറ്റ, വൈഫൈ, വൈഫൈ, വൈഫൈ, സെല്ലുലാർ, മൊബൈൽ, സെൽ കാരിയർ, 4g, 3g, 2g, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"വിമാന-സുരക്ഷിത നെറ്റ്വർക്കുകൾ കാണുക"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"ഫ്ലൈറ്റ് മോഡ് ഓഫാക്കുക"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"ഉറക്ക സമയ മോഡ് ഓണായതിനാൽ ലഭ്യമല്ല"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"അറിയിപ്പുകളുടെ പ്രാധാന്യം റീസെറ്റ് ചെയ്യുന്നത് പൂർത്തിയാക്കി."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ആപ്പുകൾ"</string>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index c585f8d..bd639cf 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -275,7 +275,7 @@
<item msgid="317746827951691657">"toast харуулах"</item>
<item msgid="5679422988212309779">"төслийн медиа"</item>
<item msgid="6454031639780101439">"VPN идэвхжүүлэх"</item>
- <item msgid="2441327072846850561">"ханын зураг бичих"</item>
+ <item msgid="2441327072846850561">"дэлгэцийн зураг бичих"</item>
<item msgid="2162456889277589861">"бүтцийг өөрчлөх"</item>
<item msgid="4644645617399271070">"дэлгэцийн агшинг өөрчлөх"</item>
<item msgid="8321845997769724385">"гар утасны төлөвийг унших"</item>
@@ -342,7 +342,7 @@
<item msgid="4000577305179914546">"toast харуулах"</item>
<item msgid="8660207174515570558">"Төслийн медиа"</item>
<item msgid="3904996949561946108">"VPN идэвхжүүлэх"</item>
- <item msgid="504052124101832515">"Ханын зураг бичих"</item>
+ <item msgid="504052124101832515">"Дэлгэцийн зураг бичих"</item>
<item msgid="1657182386933187909">"Бүтцийг өөрчлөх"</item>
<item msgid="437655393941385937">"Дэлгэцийн агшинг өөрчлөх"</item>
<item msgid="973363520315356844">"Гар утасны төлөвийг унших"</item>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 1e4bdf0..6b92ec6 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 хаяг"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Хадгалсан сүлжээ"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Захиалга"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Бусад сүлжээ"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP тохиргоо"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Энэ хэрэглэгчид Wi-Fi дэлгэрэнгүй тохиргоо боломжгүй байна"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Хадгалах"</string>
@@ -1271,15 +1270,15 @@
<string name="screen_timeout" msgid="7709947617767439410">"Дэлгэцийн завсарлага"</string>
<string name="screen_timeout_title" msgid="785134393520893049">"Дэлгэц унтарна"</string>
<string name="screen_timeout_summary" msgid="5558778019594643427">"Идвэхгүй <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> болсны дараа"</string>
- <string name="wallpaper_settings_title" msgid="5635129851136006383">"Ханын зураг"</string>
- <string name="style_and_wallpaper_settings_title" msgid="7580575814098427579">"Загвар ба ханын зураг"</string>
+ <string name="wallpaper_settings_title" msgid="5635129851136006383">"Дэлгэцийн зураг"</string>
+ <string name="style_and_wallpaper_settings_title" msgid="7580575814098427579">"Загвар ба дэлгэцийн зураг"</string>
<string name="wallpaper_settings_summary_default" msgid="7569803705735001813">"Өгөгдмөл"</string>
<string name="wallpaper_settings_summary_custom" msgid="3174561317688848729">"Захиалгат"</string>
- <string name="wallpaper_suggestion_title" msgid="3812842717939877330">"Ханын зураг солих"</string>
+ <string name="wallpaper_suggestion_title" msgid="3812842717939877330">"Дэлгэцийн зураг солих"</string>
<string name="wallpaper_suggestion_summary" msgid="9077061486716754784">"Дэлгэцээ өөрчлөх"</string>
- <string name="wallpaper_settings_fragment_title" msgid="8445963841717633149">"Ханын зураг сонгох"</string>
+ <string name="wallpaper_settings_fragment_title" msgid="8445963841717633149">"Дэлгэцийн зураг сонгох"</string>
<string name="style_suggestion_title" msgid="1213747484782364775">"Утсаа өөрчлөх"</string>
- <string name="style_suggestion_summary" msgid="4271131877800968159">"Өөр загвар, ханын зураг болон бусад зүйлийг туршиж үзнэ үү"</string>
+ <string name="style_suggestion_summary" msgid="4271131877800968159">"Өөр загвар, дэлгэцийн зураг болон бусад зүйлийг туршиж үзнэ үү"</string>
<string name="screensaver_settings_title" msgid="3588535639672365395">"Дэлгэц амраагч"</string>
<string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Цэнэглэх эсвэл суурилуулах үед"</string>
<string name="screensaver_settings_summary_either_short" msgid="2126139984738506920">"Аль аль нь"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN устгах"</string>
<string name="menu_new" msgid="6571230342655509006">"Шинэ APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Хадгалах"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Цуцлах"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Цуцлах"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Нэр оруулах талбар хоосон байж болохгүй."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN хоосон байж болохгүй."</string>
@@ -1773,7 +1772,7 @@
<string name="module_license_title" msgid="8705484239826702828">"Google Play-н систем шинэчлэлтийн лиценз"</string>
<string name="terms_title" msgid="2071742973672326073">"Ерөнхий нөхцлүүд"</string>
<string name="webview_license_title" msgid="5832692241345780517">"Системийн WebView-ийн лиценз"</string>
- <string name="wallpaper_attributions" msgid="3080339190260272255">"Ханын зураг"</string>
+ <string name="wallpaper_attributions" msgid="3080339190260272255">"Дэлгэцийн зураг"</string>
<string name="wallpaper_attributions_values" msgid="987277439026021925">"Сансрын зураг нийлүүлэгчид: \n © 2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
<string name="settings_manual_activity_title" msgid="1682978148920788484">"Гар ажиллагаатай"</string>
<string name="settings_manual_activity_unavailable" msgid="2514549851682321576">"Гар ажиллагааг ачаалах явцад алдаа гарлаа."</string>
@@ -2166,7 +2165,7 @@
<string name="accessibility_screen_magnification_short_summary" msgid="2207048420669939150">"Томруулахын тулд 3 удаа дар"</string>
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="4885018322430052037">"Томруулахын тулд товчлуурыг товшино уу"</string>
<string name="accessibility_screen_magnification_summary" msgid="2023126829553044999">"Контентыг илүү тодорхой үзүүлэхийн тулд дэлгэц дээр хурдан томруулна уу.<br/><br/> <b>Томруулахын тулд:</b><br/> 1. Томруулах онцлогийг эхлүүлэхийн тулд товчлол ашиглана уу<br/> 2. Дэлгэцийг товшино уу<br/> 3. Дэлгэц дээр шилжихийн тулд 2 хуруугаар чирнэ үү<br/> 4. Томруулалтыг тохируулахын тулд 2 хуруугаар чимхэнэ үү<br/> 5. Томруулах онцлогийг зогсоохын тулд товчлол ашиглана уу<br/><br/> <b>Түр хугацаанд томруулахын тулд:</b><br/> 1. Томруулах онцлогийг эхлүүлэхийн тулд товчлол ашиглана уу<br/> 2. Дэлгэцийн аль нэг хэсэгт удаан дарна уу<br/> 3. Дэлгэц дээр шилжихийн тулд хуруугаар чирнэ үү<br/> 4. Томруулах онцлогийг зогсоохын тулд хуруугаа өргөнө үү"</string>
- <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Томруулах сонголт асаалттай үед та дэлгэцээ томруулж болно.\n\n"<b>"Томруулахын тулд "</b>" томруулах сонголтыг эхлүүлж, дэлгэцийн аль нэг хэсгийг товшино уу.\n"<ul><li>"Гүйлгэхийн тулд 2 эсвэл түүнээс дээш хуруугаараа чирнэ үү"</li>\n<li>"Томруулах хэмжээг тохируулахын тулд 2 эсвэл түүнээс дээш хуруугаараа чимхэнэ үү"</li></ul>\n\n<b>"Түр хугацаанд томруулахын тулд "</b>" томруулах сонголтыг эхлүүлээд, дэлгэцийн аль нэг хэсэг дээр удаан дарна уу.\n"<ul><li>"Дэлгэцийн эргэн тойронд очихын тулд чирнэ үү"</li>\n<li>"Жижигрүүлэхийн тулд хуруугаа авна уу"</li></ul>\n\n"Та гар эсвэл навигацийн самбарт томруулах боломжгүй."</string>
+ <string name="accessibility_screen_magnification_navbar_summary" msgid="807985499898802296">"Томруулах сонголт асаалттай үед та дэлгэцээ томруулж болно.\n\n"<b>"Томруулахын тулд "</b>" томруулах сонголтыг эхлүүлж, дэлгэцийн аль нэг хэсгийг товшино уу.\n"<ul><li>"Гүйлгэхийн тулд 2 эсвэл түүнээс дээш хуруугаараа чирнэ үү"</li>\n<li>"Томруулах хэмжээг тохируулахын тулд 2 эсвэл түүнээс дээш хуруугаараа чимхэнэ үү"</li></ul>\n\n<b>"Түр хугацаанд томруулахын тулд "</b>" томруулах сонголтыг эхлүүлээд, дэлгэцийн аль нэг хэсэг дээр удаан дарна уу.\n"<ul><li>"Дэлгэцийн эргэн тойронд очихын тулд чирнэ үү"</li>\n<li>"Жижигрүүлэхийн тулд хуруугаа авна уу"</li></ul>\n\n"Та гар эсвэл навигацын самбарт томруулах боломжгүй."</string>
<string name="accessibility_tutorial_pager" msgid="8461939455728454061">"<xliff:g id="NUM_PAGES">%2$d</xliff:g>-н <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>-р хуудас"</string>
<string name="accessibility_tutorial_dialog_title_button" msgid="4681164949716215131">"Нээхийн тулд хандалтын товчлуурыг ашиглах"</string>
<string name="accessibility_tutorial_dialog_title_volume" msgid="494810949830845234">"Нээхийн тулд дууны түвшний түлхүүрүүдийг удаан дар"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Таблетыг ердийнхөөс их хэмжээгээр ашигласан"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Төхөөрөмжийг ердийнхөөс их хэмжээгээр ашигласан"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Батарей ердийн үеийнхээс хурдан дуусаж болзошгүй"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Батарейг түр хугацаанд хязгаарласан"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Батарей барилтыг хадгалахад тусална. Нэмэлт мэдээлэл авахын тулд товшино уу."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Батарейг түр хугацаанд хязгаарласан. Нэмэлт мэдээлэл авахын тулд товшино уу."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Таны утсыг ердийн үеийнхээс их хэмжээгээр ашигласан байна. Таны батарей тооцоолж байснаас хурдан дуусаж болзошгүй.\n\nБатарейг хамгийн их ашигласан аппууд:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Таны таблетыг ердийн үеийнхээс их хэмжээгээр ашигласан байна. Таны батарей тооцоолж байснаас хурдан дуусаж болзошгүй.\n\nБатарейг хамгийн их ашигласан аппууд:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Таны төхөөрөмжийг ердийн үеийнхээс их хэмжээгээр ашигласан байна. Таны батарей тооцоолж байснаас хурдан дуусаж болзошгүй.\n\nБатарейг хамгийн их ашигласан аппууд:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Бүү суулга"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Ямар ч тохиолдолд суулгах"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Сертификатыг суулгаагүй"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g>-г энэ төхөөрөмж дээр сертификатууд суулгахыг зөвшөөрөх үү?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Эдгээр сертификат нь таныг доорх аппууд болон URL-уудад таниулна"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Бүү зөвшөөр"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Зөвшөөрөх"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Дэлгэрэнгүй харуулах"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Сертификатын менежментийн апп"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Байхгүй"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Энэ аппаар суулгасан сертификатууд нь таныг доорх аппууд, URL-уудад таниулна"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Хасах"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Яаралтай тусламжийн дуудлагын дохио"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Яаралтай дуудлага хийх үеийн үйлдлийг тохируулах"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Нөөцлөх"</string>
@@ -4204,8 +4213,8 @@
<string name="storage_summary" msgid="5903562203143572768">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> ашигласан - <xliff:g id="FREE_SPACE">%2$s</xliff:g> сул"</string>
<string name="storage_summary_with_sdcard" msgid="2063780050580228868">"Дотоод сан: <xliff:g id="PERCENTAGE">%1$s</xliff:g>-г ашигласан - <xliff:g id="FREE_SPACE">%2$s</xliff:g> сул"</string>
<string name="display_summary" msgid="5526061030874717172">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> идэвхгүй байсны дараа унтах"</string>
- <string name="display_dashboard_summary" msgid="5102247404958535634">"Ханын зураг, идэвхгүй, фонтын хэмжээ"</string>
- <string name="display_dashboard_summary_with_style" msgid="2792175367835485163">"Загвар, ханын зураг, дэлгэцийн завсарлага, фонтын хэмжээ"</string>
+ <string name="display_dashboard_summary" msgid="5102247404958535634">"Дэлгэцийн зураг, идэвхгүй, фонтын хэмжээ"</string>
+ <string name="display_dashboard_summary_with_style" msgid="2792175367835485163">"Загвар, дэлгэцийн зураг, дэлгэцийн завсарлага, фонтын хэмжээ"</string>
<string name="display_dashboard_nowallpaper_summary" msgid="6198590533661927162">"Идэвхгүй, фонтын хэмжээ"</string>
<string name="display_summary_example" msgid="4275121979039344438">"10 минут идэвхгүй байсны дараа унтах"</string>
<string name="memory_summary" msgid="8221954450951651735">"Ойролцоогоор <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>-н <xliff:g id="USED_MEMORY">%1$s</xliff:g> санах ойг ашигласан"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Харагдах өгөгдлийн багцийн дээд хэмжээ"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Өгөгдмөл утга руу шинэчлэх"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Хөгжүүлэгчийн тохиргоог автоматаар бөглөх хэсгийг шинэчилсэн"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Бүтэн GNSS хэмжилтийг хүчлэх"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Бүх GNSS орд болон давтамжийг давтамжийн түвшингүйгээр шинжлэх"</string>
<string name="device_theme" msgid="5027604586494772471">"Төхөөрөмжийн загвар"</string>
<string name="default_theme" msgid="4815428567082263639">"Өгөгдмөл"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Сүлжээний нэр"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Төвлөрсөн хэвэрэ байхын тулд мэдэгдлийг түр зогсоох"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Онцлог боломжгүй байна"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Энэ онцлог таны утсыг удаашруулж буй тул үүнийг унтраасан"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Бүтэн GNSS хэмжилтийг хүчлэх"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Бүх GNSS орд болон давтамжийг давтамжийн түвшингүйгээр шинжлэх"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Гэмтлийн харилцах цонхыг тогтмол харуулах"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Харилцах цонхыг апп гэмтэх бүрд харуулах"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ӨНЦӨГ идэвхжүүлсэн аппыг сонгох"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Асаалттай (дууг хаах)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Унтраалттай"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Сүлжээний мэдээлэл"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Таны төхөөрөмжийн нэр таны утасны аппуудад харагдана. Та Bluetooth төхөөрөмжүүдэд холбогдох эсвэл Wi-Fi сүлжээний цэгийг тохируулах үед энэ нь бусад хүмүүст харагдаж болзошгүй."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Таны төхөөрөмжийн нэр таны утсан дээрх аппуудад харагдана. Үүнийг мөн таныг Bluetooth төхөөрөмжүүд болон Wi-Fi сүлжээнд холбогдох эсвэл Wi-Fi сүлжээний цэг тохируулах үед бусад хүн харж болзошгүй."</string>
<string name="devices_title" msgid="649715719278562515">"Төхөөрөмжүүд"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Бүх тохиргоо"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Зөвлөмж"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"СИМ-г идэвхжүүлэх боломжгүй"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"СИМ-г салгаад, дахин хийнэ үү. Хэрэв асуудал үргэлжилсээр байвал төхөөрөмжөө дахин эхлүүлнэ үү."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"СИМ-г дахин асааж үзнэ үү. Хэрэв асуудал үргэлжилсээр байвал төхөөрөмжөө дахин эхлүүлнэ үү."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Сүлжээг идэвхжүүлэх"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> идэвхтэй байна"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"СИМ-н тохиргоог шинэчлэхийн тулд товшино уу"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"СИМ карт"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Энэ татаж авсан СИМ-г устгах уу?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Энэ СИМ-г устгаснаар <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-н үйлчилгээг энэ төхөөрөмжөөс хасна.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>-н үйлчилгээг цуцлахгүй."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Устгах"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi дуудлага нь танд зарим Wi-Fi сүлжээ гэх мэт оператор компанийн бус сүлжээгээр дуудлага хийх болон хүлээн авах боломжийг олгодог."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Дуудлага"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"сонгосон"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"дуудлагыг сонгосон"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS-г сонгосон"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"боломжгүй"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM байхгүй"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Сонголт"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Олон нийтийн Wi-Fi сүлжээнд холбогдох"</string>
<string name="keywords_internet" msgid="7674082764898690310">"сүлжээний холболт, интернэт, утасгүй интернэт, дата, wifi, wi-fi, wi fi, үүрэн холбоо, мобайл, үүрэн холбооны оператор, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Нислэгийн аюулгүй сүлжээг харах"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Нислэгийн горимыг унтраах"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Унтлагын цагийн горим асаалттай байгаа тул боломжгүй"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Мэдэгдлийн ач холбогдлыг шинэчилж дууссан."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Аппууд"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 9494c42..12a6765 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 अॅड्रेस"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"सेव्ह केलेली नेटवर्क"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"सदस्यत्वे"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"इतर नेटवर्क"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP सेटिंग्ज"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"वाय‑फाय प्रगत सेटिंग्ज या वापरकर्त्यासाठी उपलब्ध नाहीत"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"सेव्ह करा"</string>
@@ -1598,7 +1597,8 @@
<string name="menu_delete" msgid="9199740901584348273">"APN हटवा"</string>
<string name="menu_new" msgid="6571230342655509006">"नवीन APN"</string>
<string name="menu_save" msgid="6611465355127483100">"सेव्ह करा"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"टाकून द्या"</string>
+ <!-- no translation found for menu_cancel (1197826697950745335) -->
+ <skip />
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"नाव फील्ड रिक्त असू शकत नाही."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN रिक्त असू शकत नाही."</string>
@@ -2457,8 +2457,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"टॅबलेट नेहमीपेक्षा जास्त वापरले गेला"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"डिव्हाइस नेहमीपेक्षा जास्त वापरले गेले"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"बॅटरी नेहमीपेक्षा लवकर संपू शकते"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"बॅटरी तात्पुरती मर्यादित आहे"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"बॅटरीची क्षमता वाढवण्यात मदत करते. अधिक जाणून घेण्यासाठी टॅप करा."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"बॅटरी तात्पुरती मर्यादित आहे. अधिक जाणून घेण्यासाठी टॅप करा."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"तुमचा फोन नेहमीपेक्षा जास्त वापरला गेला आहे. तुमची बॅटरी अपेक्षेपेक्षा लवकर संपू शकते.\n\nबॅटरीच्या वापरावर आधारित टॉप अॅप्स:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"तुमचा टॅबलेट नेहमीपेक्षा जास्त वापरला गेला आहे. तुमची बॅटरी अपेक्षेपेक्षा लवकर संपू शकते.\n\nबॅटरीच्या वापरावर आधारित टॉप अॅप्स:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"तुमचे डिव्हाइस नेहमीपेक्षा जास्त वापरले गेले आहे. तुमची बॅटरी अपेक्षेपेक्षा लवकर संपू शकते.\n\nबॅटरीच्या वापरावर आधारित टॉप अॅप्स:"</string>
@@ -2724,6 +2725,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"इंस्टॉल करू नका"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"तरीही इंस्टॉल करा"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"प्रमाणपत्र इंस्टॉल केलेले नाही"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"या डिव्हाइसवर <xliff:g id="APP_NAME">%s</xliff:g> ला प्रमाणपत्रे इंस्टॉल करण्याची अनुमती द्यायची का?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ही प्रमाणपत्रे तुम्हाला खालील ॲप आणि URL वर ओळखतील"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"अनुमती देऊ नका"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"अनुमती द्या"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"आणखी दाखवा"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"प्रमाणपत्र व्यवस्थापन ॲप"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"काहीही नाही"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"या ॲपद्वारे इंस्टॉल केलेली प्रमाणपत्रे खालील ॲप्स आणि URL वर तुम्हाला ओळखतील"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"काढून टाका"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"आणीबाणी डायलिंग सिग्नल"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"आणीबाणी कॉल केला जातो तेव्हा वर्तन सेट करा"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"बॅकअप"</string>
@@ -4643,6 +4653,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"कमाल दृश्यमान डेटासेट"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"डीफॉल्ट मूल्यांवर रीसेट करा"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"ऑटोफिल डेव्हलपर पर्याय रीसेट केले गेले आहेत"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"पूर्ण GNSS मापांची सक्ती करा"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"कुठल्याही ड्युटी सायकलिंग शिवाय सर्व GNSS तारामंडळे आणि वारंवारता ट्रॅक करा"</string>
<string name="device_theme" msgid="5027604586494772471">"डिव्हाइस थीम"</string>
<string name="default_theme" msgid="4815428567082263639">"डीफॉल्ट"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"नेटवर्कचे नाव"</string>
@@ -4659,8 +4677,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"लक्ष केंद्रित केलेले राहण्यासाठी सूचना थांंबवा"</string>
<string name="disabled_feature" msgid="7151433782819744211">"वैशिष्ट्य उपलब्ध नाही"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"हे वैशिष्ट्य बंद केले गेले आहे कारण, ते तुमच्या फोनला धीमे करते"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"पूर्ण GNSS मापांची सक्ती करा"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"कुठल्याही ड्युटी सायकलिंग शिवाय सर्व GNSS तारामंडळे आणि वारंवारता ट्रॅक करा"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"नेहमी क्रॅश डायलॉग दाखवा"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"अॅप क्रॅश झाल्यावर प्रत्येक वेळी डायलॉग दाखवा"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE सुरू केलेले अॅप निवडा"</string>
@@ -4728,7 +4744,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"सुरू (म्यूट)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"बंद"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"नेटवर्क तपशील"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"तुमचे डिव्हाइस नाव तुमच्या फोनवरील ॲप्सना दृश्यमान आहे. तुम्ही ब्लूटूथ डिव्हाइसशी जोडता किंवा वाय-फाय हॉटस्पॉट सेट करता, तेव्हा हे इतर लोकांद्वारे देखील बघितले जाऊ शकते."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"तुमच्या डिव्हाइसचे नाव तुमच्या फोनवरील ॲप्सना दृश्यमान आहे. तुम्ही ब्लूटूथ डिव्हाइसशी कनेक्ट करता, वाय-फाय नेटवर्कशी कनेक्ट करता किंवा वाय-फाय हॉटस्पॉट सेट करता तेव्हा हे कदाचित इतर लोकदेखील पाहू शकतात."</string>
<string name="devices_title" msgid="649715719278562515">"डिव्हाइस"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"सर्व सेटिंग्ज"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"सूचना"</string>
@@ -4888,6 +4904,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"सिम ॲक्टिव्हेट करू शकत नाही"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"सिम काढा आणि ते पुन्हा घाला. समस्या कायम राहिल्यास, तुमचे डिव्हाइस रीस्टार्ट करा."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"सिम पुन्हा सुरू करून पाहा. समस्या सुरू राहिल्यास, तुमचे डिव्हाइस रीस्टार्ट करा."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"नेटवर्क अॅक्टिव्हेशन"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> अॅक्टिव्ह आहे"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"सिमची सेटिंग्ज अपडेट करण्यासाठी टॅप करा"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"सिम कार्ड"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"हे डाउनलोड केलेले सिम मिटवायचे?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"हे सिम मिटवल्याने या डिव्हाइसवरून <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> सेवा काढली जाते.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ची सेवा रद्द केली जाणार नाही."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"मिटवा"</string>
@@ -4965,12 +4985,9 @@
<string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"आणीबाणी कॉल"</string>
<string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"तुमचा वाहक वाय-फाय कॉलिंगवर आणीबाणी कॉल करण्यासाठी सपोर्ट करत नाही.\nतुमचे डिव्हाइस आणीबाणी कॉल करण्यासाठी सेल्युलर नेटवर्कवर आपोआप स्विच होते.\n फक्त सेल्युलर नेटवर्कच्या परिसरात आणीबाणी कॉल करता येतात."</string>
<string name="wifi_calling_summary" msgid="8566648389959032967">"कॉलची गुणवत्ता वाढवण्यासाठी वाय-फाय वापरा"</string>
- <!-- no translation found for cross_sim_calling_settings_title (1179406214047299816) -->
- <skip />
- <!-- no translation found for cross_sim_calling_setting_summary (7960473304104701519) -->
- <skip />
- <!-- no translation found for keywords_cross_sim_calling (1702104511020507778) -->
- <skip />
+ <string name="cross_sim_calling_settings_title" msgid="1179406214047299816">"क्रॉस सिम कॉलिंग"</string>
+ <string name="cross_sim_calling_setting_summary" msgid="7960473304104701519">"इतर सिमवरील कॉल आणि एसएमएस ना या सिमवर अनुमती द्या."</string>
+ <string name="keywords_cross_sim_calling" msgid="1702104511020507778">"क्रॉस सिम कॉलिंग"</string>
<string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"येणारा MMS मेसेज"</string>
<string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS मेसेज पाठवू शकत नाही"</string>
<string name="enable_mms_notification_summary" msgid="6432752438276672500">"मोबाइल डेटा बंद असताना MMS मेसेजिंगला अनुमती देण्यासाठी <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> वर टॅप करा"</string>
@@ -5043,9 +5060,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"वाय-फाय कॉलिंग तुम्हाला वाय-फाय यांसारख्या वाहक नसलेल्या नेटवर्कवरून कॉल करण्याची आणि घेण्याची अनुमती देते."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"कॉल"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"एसएमएस"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"प्राधान्य दिलेले"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"कॉलला प्राधान्य आहे"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS ला प्राधान्य आहे"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"उपलब्ध नाही"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"सिम नाही"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"प्राधान्ये"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"सार्वजनिक नेटवर्कशी कनेक्ट करा"</string>
<string name="keywords_internet" msgid="7674082764898690310">"नेटवर्क कनेक्शन, इंटरनेट, वायरलेस, डेटा, वायफाय, वाय-फाय, वाय फाय, सेल्युलर, मोबाइल, सेल वाहक, 4g, 3g, 2g, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"विमानात वापरण्यास सुरक्षित नेटवर्क पहा"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"विमान मोड बंद करा"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"बेडटाइम मोड सुरू असल्यामुळे उपलब्ध नाही"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"सूचनांचे महत्त्व रीसेट करणे पूर्ण झाले."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ॲप्स"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index fdc151f..305bcb5 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Alamat IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Rangkaian disimpan"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Langganan"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Rangkaian lain"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Tetapan IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Tetapan terperinci Wi-Fi tidak tersedia untuk pengguna ini"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Simpan"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Padam APN"</string>
<string name="menu_new" msgid="6571230342655509006">"APN Baharu"</string>
<string name="menu_save" msgid="6611465355127483100">"Simpan"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Buang"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Batal"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Medan Nama tidak boleh kosong."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN tidak boleh kosong."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet digunakan lebih kerap berbanding biasa"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Peranti digunakan lebih kerap berbanding biasa"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Bateri mungkin kehabisan lebih awal daripada biasa"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Bateri terhad untuk sementara"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Membantu mengekalkan kesihatan bateri. Ketik untuk mengetahui lebih lanjut."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Bateri terhad untuk sementara. Ketik untuk mengetahui lebih lanjut."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefon anda telah digunakan lebih kerap berbanding biasa. Bateri anda mungkin kehabisan lebih cepat daripada jangkaan.\n\nApl yang paling banyak digunakan mengikut penggunaan bateri:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tablet anda telah digunakan lebih kerap berbanding biasa. Bateri anda mungkin kehabisan lebih cepat daripada jangkaan.\n\nApl yang paling banyak digunakan mengikut penggunaan bateri:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Peranti anda telah digunakan lebih kerap berbanding biasa. Bateri anda mungkin kehabisan lebih cepat daripada jangkaan.\n\nApl yang paling banyak digunakan mengikut penggunaan bateri:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Jangan pasang"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Pasang juga"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sijil tidak dipasang"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Benarkan <xliff:g id="APP_NAME">%s</xliff:g> untuk memasang sijil pada peranti ini?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Sijil-sijil ini akan mengenal pasti anda untuk apl dan URL di bawah"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Jangan benarkan"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Benarkan"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Tunjukkan lagi"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Apl pengurusan sijil"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Tiada"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Sijil yang dipasang oleh apl ini mengenal pasti anda kepada apl dan URL di bawah"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Alih keluar"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Isyarat dail kecemasan"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Tetapkan tingkah laku semasa membuat panggilan kecemasan"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Sandaran"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Set data maksimum yang kelihatan"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Tetapkan semula kepada nilai lalai"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Ciri autolengkapkan pilihan pembangun telah ditetapkan semula"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Paksa ukuran GNSS penuh"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Jejak semua gugusan dan kekerapan GNSS tanpa kitaran tugas"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema peranti"</string>
<string name="default_theme" msgid="4815428567082263639">"Lalai"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nama rangkaian"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Jeda pemberitahuan untuk mengekalkan tumpuan"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Ciri tidak tersedia"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Ciri ini telah dimatikan kerana memperlahankan telefon anda"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Paksa ukuran GNSS penuh"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Jejak semua gugusan dan kekerapan GNSS tanpa kitaran tugas"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Sentiasa tunjukkan dialog ranap sistem"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Tunjukkan dialog setiap kali apl ranap"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Pilih apl didayakan ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Hidup (redam)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Mati"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Butiran rangkaian"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Nama peranti anda kelihatan kepada apl pada telefon anda. Nama ini mungkin dapat dilihat oleh orang lain juga apabila anda menyambung ke peranti Bluetooth atau menyediakan tempat liputan Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Nama peranti anda boleh dilihat oleh apl pada telefon anda. Nama peranti anda juga boleh dilihat oleh orang lain apabila anda menyambung kepada peranti Bluetooth, menyambung kepada rangkaian Wi-Fi atau menyediakan tempat liputan Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Peranti"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Semua Tetapan"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Cadangan"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Tidak dapat mengaktifkan SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Keluarkan SIM dan masukkan kad itu kembali. Jika masalah berlanjutan, mulakan semula peranti anda."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Cuba hidupkan SIM sekali lagi. Jika masalah berlanjutan, mulakan semula peranti anda."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Pengaktifan rangkaian"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> aktif"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Ketik untuk mengemas kini tetapan SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Kad SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Padamkan SIM yang dimuat turun ini?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Pemadaman SIM ini akan mengalih keluar perkhidmatan <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> daripada peranti ini.\n\nPerkhidmatan <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> tidak akan dibatalkan."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Padam"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Panggilan Wi-Fi membolehkan anda membuat dan menerima panggilan melalui rangkaian bukan pembawa seperti sesetengah rangkaian Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Panggilan"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"diutamakan"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"panggilan diutamakan"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS diutamakan"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"tidak tersedia"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Tiada SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Pilihan"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Sambungkan kepada rangkaian awam"</string>
<string name="keywords_internet" msgid="7674082764898690310">"sambungan rangkaian, internet, wayarles, data, wifi, wi-fi, wi fi, selular, mudah alih, pembawa selular, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Paparkan rangkaian selamat pesawat"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Matikan Mod Pesawat"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Tidak tersedia kerana mod waktu tidur dihidupkan"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Selesai menetapkan semula kepentingan pemberitahuan."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apl"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 2a31eaf..f73034d 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 လိပ်စာများ"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"သိမ်းထား ကွန်ရက်များ"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"စာရင်းသွင်းခြင်းများ"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"အခြားကွန်ရက်များ"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP ဆက်တင်များ"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Wi‑Fi အဆင့်မြှင့်ဆက်တင်များ ဤအသုံးပြုသူအတွက် မရပါ။"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"သိမ်းရန်"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APNကိုဖျက်မည်"</string>
<string name="menu_new" msgid="6571230342655509006">"APN အသစ်"</string>
<string name="menu_save" msgid="6611465355127483100">"သိမ်းရန်"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"ဖယ်ပစ်ရန်"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"မလုပ်တော့"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"အမည်အကွက်မှာ ကွက်လပ်ဖြစ်မနေစေရပါ"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APNမှာ ကွက်လပ်ဖြစ်မနေစေရပါ"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"တက်ဘလက်ကို ပုံမှန်ထက် ပိုသုံးထားသည်"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"စက်ပစ္စည်းကို ပုံမှန်ထက် ပိုသုံးထားသည်"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ပုံမှန်ထက် ဘက်ထရီ အကုန်မြန်နိုင်သည်"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"ဘက်ထရီ ယာယီကန့်သတ်ထားသည်"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ဘက်ထရီအခြေအနေကို ထိန်းသိမ်းရာတွင် ကူညီသည်။ ပိုမိုလေ့လာရန် တို့ပါ။"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"ဘက်ထရီ ယာယီကန့်သတ်ထားသည်။ ပိုမိုလေ့လာရန် တို့ပါ။"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"သင့်ဖုန်းကို ပုံမှန်ထက် ပိုသုံးထားသည်။ သင့်ဘက်ထရီသည် ခန့်မှန်းထားသည်ထက် စောလျင်စွာ ကုန်နိုင်ပါသည်။\n\nဘက်ထရီ အများဆုံး အသုံးပြုနေသည့် အက်ပ်များမှာ−"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"သင့်တက်ဘလက်ကို ပုံမှန်ထက် ပိုသုံးထားသည်။ သင့်ဘက်ထရီသည် ခန့်မှန်းထားသည်ထက် စောလျင်စွာ ကုန်နိုင်ပါသည်။\n\nဘက်ထရီ အများဆုံး အသုံးပြုနေသည့် အက်ပ်များမှာ−"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"သင့်စက်ပစ္စည်းကို ပုံမှန်ထက် ပိုသုံးထားသည်။ သင့်ဘက်ထရီသည် ခန့်မှန်းထားသည်ထက် စောလျင်စွာ ကုန်နိုင်ပါသည်။\n\nဘက်ထရီ အများဆုံး အသုံးပြုနေသည့် အက်ပ်များမှာ−"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"မသွင်းပါနှင့်"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"မည်သို့ပင်ဖြစ်စေ ထည့်သွင်းရန်"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"အသိအမှတ်ပြုလက်မှတ်ကို ထည့်သွင်းမထားပါ"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"ဤစက်တွင် အသိအမှတ်ပြုလက်မှတ်များ ထည့်သွင်းရန် <xliff:g id="APP_NAME">%s</xliff:g> ကို ခွင့်ပြုမလား။"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ဤအသိအမှတ်ပြုလက်မှတ်များက အောက်ပါ အက်ပ်နှင့် URL များတွင် သင့်ကို ခွဲခြားဖော်ပြပေးလိမ့်မည်"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"ခွင့်မပြုရန်"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"ခွင့်ပြုရန်"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"ပိုပြရန်"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"အသိအမှတ်ပြုလက်မှတ် စီမံခန့်ခွဲသည့်အက်ပ်"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"မရှိ"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"ဤအက်ပ်က ထည့်သွင်းထားသော အသိအမှတ်ပြုလက်မှတ်များသည် အောက်ပါ အက်ပ်နှင့် URL များတွင် သင့်ကို ခွဲခြားဖော်ပြပေးလိမ့်မည်"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"ဖယ်ရှားရန်"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"အရေးပေါ် ဖုန်းခေါ်ခြင်း လိုင်းအား"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"အရေးပေါ်ခေါ်ဆိုမှုအတွက် လုပ်ဆောင်ပုံကို သတ်မှတ်ရန်"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"အရန်သိမ်းရန်"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"အများဆုံးမြင်နိုင်သည့် ဒေတာအတွဲ အရေအတွက်"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"မူရင်းတန်ဖိုးများသို့ ပြင်ဆင်သတ်မှတ်ထားသည်"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"တီထွင်သူများရွေးစရာ အလိုအလျောက်ဖြည့်ခြင်းကို ပြင်ဆင်သတ်မှတ်ထားသည်"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS အတိုင်းအတာအပြည့် သက်ရောက်ရန်"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"လည်ပတ်ချိန်မပါဘဲ GNSS စက်ဝိုင်းပုံမြင်ကွင်းကျယ်ပုံများနှင့် ကြိမ်နှုန်းအားလုံးကို ခြေရာခံပါ"</string>
<string name="device_theme" msgid="5027604586494772471">"စက်ပစ္စည်း အပြင်အဆင်"</string>
<string name="default_theme" msgid="4815428567082263639">"မူရင်း"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ကွန်ရက် အမည်"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"အာရုံစူးစိုက်နိုင်ရန် အကြောင်းကြားချက်များကို ခေတ္တရပ်ထားပါ"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ဝန်ဆောင်မှု မရနိုင်ပါ။"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"ဤဝန်ဆောင်မှုသည် သင့်ဖုန်းကို နှေးစေသောကြောင့် ၎င်းကို ပိတ်ထားပါသည်"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS အတိုင်းအတာအပြည့် သက်ရောက်ရန်"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"လည်ပတ်ချိန်မပါဘဲ GNSS စက်ဝိုင်းပုံမြင်ကွင်းကျယ်ပုံများနှင့် ကြိမ်နှုန်းအားလုံးကို ခြေရာခံပါ"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"ရပ်တန့်သွားမှု ဒိုင်ယာလော့ကို အမြဲပြရန်"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"အက်ပ်ရပ်တန့်သွားသည့်အခါတိုင်း ဒိုင်ယာလော့ကို ပြရန်"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE ကို ဖွင့်ထားသည့်အက်ပ်ကို ရွေးပါ"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ဖွင့်ရန် (အသံတိတ်ရန်)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ပိတ်ရန်"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"ကွန်ရက် အသေးစိတ်များ"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"သင့်စက်ပစ္စည်းအမည်ကို သင့်ဖုန်းပေါ်ရှိ အက်ပ်များက မြင်ရပါသည်။ သင် \'ဘလူးတုသ်\' စက်ပစ္စည်းများသို့ ချိတ်ဆက်သည့်အခါ သို့မဟုတ် Wi-Fi ဟော့စပေါ့ ထုတ်လွှင့်သည့်အခါ အခြားသူများက မြင်နိုင်ပါသည်။"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"သင့်စက်ပစ္စည်းအမည်ကို သင့်ဖုန်းပေါ်ရှိ အက်ပ်များက မြင်ရပါသည်။ သင် ဘလူးတုသ်သုံးစက်များသို့ ချိတ်ဆက်သည့်အခါ၊ Wi-Fi ကွန်ရက်သို့ ချိတ်ဆက်သည့်အခါ သို့မဟုတ် Wi-Fi ဟော့စပေါ့ ထုတ်လွှင့်သည့်အခါ တို့တွင်လည်း ၎င်းကို အခြားသူများက မြင်နိုင်ပါသည်။"</string>
<string name="devices_title" msgid="649715719278562515">"စက်များ"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"ဆက်တင်အားလုံး"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"အကြံပြုချက်များ"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"ဆင်းမ်ကို ဖွင့်၍မရပါ"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"ဆင်းမ်ကို ဖယ်ရှားပြီး ပြန်ထည့်ကြည့်ပါ။ ပြဿနာရှိနေသေးပါက သင့်စက်ကို ပြန်လည်စတင်ပါ။"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ဆင်းမ်ကို ပြန်ဖွင့်ကြည့်ပါ။ ပြဿနာရှိနေသေးပါက သင့်စက်ကို ပြန်လည်စတင်ပါ။"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"ကွန်ရက် စတင်အသုံးပြုခြင်း"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ကို အသုံးပြုနေသည်"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"ဆင်းမ်ကတ်ဆက်တင်များ အပ်ဒိတ်လုပ်ရန် တို့ပါ"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"ဆင်းမ်ကတ်"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ဒေါင်းလုဒ်လုပ်ထားသော ဤဆင်းမ်ကို ဖျက်လိုသလား။"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ဤဆင်းမ်ကို ဖျက်ခြင်းဖြင့် ဤစက်ပစ္စည်းမှ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ဝန်ဆောင်မှုကို ဖယ်ရှားပါမည်။\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> အတွက် ဝန်ဆောင်မှုကို ပယ်ဖျက်မည်မဟုတ်ပါ။"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"ဖျက်ရန်"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi‑Fi ခေါ်ဆိုမှုက Wi-Fi ကွန်ရက်အချို့ကဲ့သို့သော ဖုန်းဝန်ဆောင်မှုပေးသူမဟုတ်သည့် ကွန်ရက်များတွင် ဖုန်းခေါ်ဆိုရန်နှင့် လက်ခံရန် ခွင့်ပြုပေးသည်။"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"ခေါ်ဆိုမှုများ"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"ဦးစားပေး"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"ခေါ်ဆိုမှုများ ဦးစားပေး"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS ဦးစားပေး"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"မရနိုင်ပါ"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM မရှိပါ"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ရွေးချယ်မှုများ"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"အများသုံးကွန်ရက်များသို့ ချိတ်ဆက်လိုက်သည်"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ကွန်ရက်ချိတ်ဆက်မှု၊ အင်တာနက်၊ ကြိုးမဲ့၊ ဒေတာ၊ wifi၊ wi-fi၊ wi fi၊ ဆယ်လူလာ၊ မိုဘိုင်း၊ ဖုန်းဝန်ဆောင်မှုပေးသူ၊ 4g၊ 3g၊ 2g၊ lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"လေယာဉ်ပျံလုံခြုံရေး ကွန်ရက်များ ကြည့်ရန်"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"\'လေယာဉ်ပျံမုဒ်\' ကို ပိတ်ရန်"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"အိပ်ချိန်မုဒ်ကို ဖွင့်ထားသောကြောင့် မရရှိနိုင်ပါ"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"အကြောင်းကြားချက်၏ အရေးပါမှုကို ပြင်ဆင်သတ်မှတ်ပြီးပါပြီ။"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"အက်ပ်များ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 56d1086..44db536 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-adresser"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Lagrede nettverk"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonnementer"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Andre nettverk"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-innstillinger"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"De avanserte innstillingene for Wi-Fi er ikke tilgjengelig for denne brukeren"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Lagre"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Slett APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Nytt APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Lagre"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Forkast"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Avbryt"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Navnefeltet kan ikke være tomt."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN kan ikke være tomt."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Nettbrettet brukes mer enn vanlig"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Enheten brukes mer enn vanlig"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Batteriet kan gå tomt raskere enn vanlig"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batteriet er midlertidig begrenset"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Bidrar til å bevare batteritilstanden. Trykk for å finne ut mer."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batteriet er midlertidig begrenset. Trykk for å finne ut mer."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefonen din har blitt brukt mer enn vanlig. Batteriet kan gå tomt raskere enn forventet.\n\nApper med høyest batteribruk:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Nettbrettet ditt har blitt brukt mer enn vanlig. Batteriet kan gå tomt raskere enn forventet.\n\nApper med høyest batteribruk:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Enheten din har blitt brukt mer enn vanlig. Batteriet kan gå tomt raskere enn forventet.\n\nApper med høyest batteribruk:"</string>
@@ -2695,7 +2695,7 @@
<string name="tts_reset" msgid="9047681050813970031">"Tilbakestill"</string>
<string name="tts_play" msgid="2945513377250757221">"Spill av"</string>
<string name="vpn_settings_title" msgid="9131315656202257272">"VPN"</string>
- <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Selvjusterende tilkobling"</string>
+ <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Adaptive Connectivity"</string>
<string name="adaptive_connectivity_summary" msgid="3648731530666326885">"Forlenger batterilevetiden og enhetsytelsen ved å administrere nettverkstilkoblingene automatisk"</string>
<string name="credentials_title" msgid="7535942196886123656">"Legitimasjonslager"</string>
<string name="credentials_install" msgid="3933218407598415827">"Installer et sertifikat"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ikke installer"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Installer likevel"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifikatet ble ikke installert"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Vil du tillate at <xliff:g id="APP_NAME">%s</xliff:g> installerer sertifikater på denne enheten?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Disse sertifikatene identifiserer deg bare for appene og nettadressene nedenfor"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ikke tillat"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Tillat"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Vis flere"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App for sertifikathåndtering"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Ingen"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Sertifikater som installeres av denne appen, identifiserer deg bare for appene og nettadressene nedenfor"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Fjern"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Ringesignal for nødssituasjoner"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Velg oppførsel når en nødsamtale opprettes"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Sikkerhetskopiering"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksimalt antall synlige datasett"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Tilbakestill til standardverdier"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Autofyll av utvikleralternativer er tilbakestilt"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Tving fullstendige GNSS-målinger"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Spor alle GNSS-konstellasjoner og -frekvenser uten syklus for oppgaver"</string>
<string name="device_theme" msgid="5027604586494772471">"Enhetstema"</string>
<string name="default_theme" msgid="4815428567082263639">"Standard"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nettverksnavn"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Sett varsler på pause for å holde deg fokusert"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funksjonen er ikke tilgjengelig"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Denne funksjonen er slått av fordi den gjør telefonen din tregere"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Tving fullstendige GNSS-målinger"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Spor alle GNSS-konstellasjoner og -frekvenser uten syklus for oppgaver"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Vis alltid krasjdialogboksen"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Vis dialogboksen hver gang en app krasjer"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Velg en ANGLE-aktivert app"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"På (kutt lyden)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Av"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Nettverksdetaljer"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Enhetsnavnet ditt er synlig for apper på telefonen. Det kan også ses av andre personer når du kobler til Bluetooth-enheter eller konfigurerer en Wi-Fi-sone."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Enhetsnavnet ditt er synlig for apper på telefonen. Det kan også ses av andre personer når du kobler til Bluetooth-enheter, kobler til et Wi-Fi-nettverk eller konfigurerer en Wi-Fi-sone."</string>
<string name="devices_title" msgid="649715719278562515">"Enheter"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Alle innstillinger"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Forslag"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Kan ikke aktivere SIM-kortet"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Fjern SIM-kortet og sett det inn igjen. Start enheten på nytt hvis problemet vedvarer."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Prøv å slå på SIM-kortet igjen. Start enheten på nytt hvis problemet vedvarer."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivering av nettverk"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> er aktiv"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Trykk for å oppdatere SIM-kortinnstillingene"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-kort"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Vil du slette dette nedlastede SIM-kortet?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Hvis du tømmer dette SIM-kortet, fjernes <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-tjenesten fra denne enheten.\n\nTjenesten for <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> blir ikke kansellert."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Slett"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Med Wi-Fi-anrop kan du ringe og motta anrop via nettverk utenfor operatøren, for eksempel noen Wi-Fi-nettverk."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Anrop"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"foretrukket"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"anrop foretrekkes"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS foretrekkes"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"utilgjengelig"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Uten SIM-kort"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Innstillinger"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Koble til offentlige nettverk"</string>
<string name="keywords_internet" msgid="7674082764898690310">"nettverkstilkobling, internett, trådløs, data, wifi, wi-fi, wi fi, mobilnett, mobil, mobiloperatør, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Se nettverk som er trygge på fly"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Slå av flymodus"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Utilgjengelig fordi sengetidsmodus er på"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Tilbakestilling av viktighet for varsler er fullført."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apper"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 7f90bbe..05f11c6 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 ठेगानाहरू"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"सेभ गरिएका नेटवर्कहरू"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"सदस्यताहरू"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"अन्य नेटवर्कहरू"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP सेटिङहरू"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"यस प्रयोगकर्ताका लागि Wi‑Fi उन्नत सम्बन्धी सेटिङहरू उपलब्ध छैनन्"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"सुरक्षित गर्नुहोस्"</string>
@@ -1597,7 +1596,8 @@
<string name="menu_delete" msgid="9199740901584348273">"APN मेटाउनुहोस्"</string>
<string name="menu_new" msgid="6571230342655509006">"नयाँ APN"</string>
<string name="menu_save" msgid="6611465355127483100">"सुरक्षित गर्नुहोस्"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"त्याग्नुहोस्"</string>
+ <!-- no translation found for menu_cancel (1197826697950745335) -->
+ <skip />
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"नाम फिल्ड खाली हुन सक्तैन।"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN खाली हुन सक्तैन।"</string>
@@ -2456,8 +2456,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ट्याब्लेट सामान्यभन्दा बढी प्रयोग भयो"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"यन्त्रलाई सामान्यभन्दा बढी प्रयोग भयो"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ब्याट्री अरू बेलाभन्दा छिटै सकिन सक्छ"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"केही समयका लागि ब्याट्री प्रयोग सीमित गरिएको छ"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ब्याट्री लामो समयसम्म टिक्ने बनाउन मद्दत गर्छ। थप जान्न ट्याप गर्नुहोस्।"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"केही समयका लागि ब्याट्रीको प्रयोग सीमित गरिएको छ। थप जान्न ट्याप गर्नुहोस्।"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"तपाईंको फोन सामान्यभन्दा धेरै प्रयोग भएको छ। तपाईंको ब्याट्रीको चार्ज अपेक्षा गरिएभन्दा चाँडो सकिन सक्छ।\n\nसबैभन्दा बढी ब्याट्री उपयोग गर्ने एपहरू:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"तपाईंको ट्याब्लेट सामान्यभन्दा धेरै प्रयोग भएको छ। तपाईंको ब्याट्रीको चार्ज अपेक्षा गरिएभन्दा चाँडो सकिन सक्छ।\n\nसबैभन्दा बढी ब्याट्री उपयोग गर्ने एपहरू:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"तपाईंको यन्त्र सामान्यभन्दा धेरै प्रयोग भएको छ। तपाईंको ब्याट्रीको चार्ज अपेक्षा गरिएभन्दा चाँडो सकिन सक्छ।\n\nसबैभन्दा बढी ब्याट्री उपयोग गर्ने एपहरू:"</string>
@@ -2723,6 +2724,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"स्थापना नगर्नुहोस्"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"जे भए पनि पनि स्थापना गर्नुहोस्"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"प्रमाणपत्र स्थापना गरिएको छैन"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g> लाई यो यन्त्रमा प्रमाणपत्रहरू इन्स्टल गर्ने अनुमति दिने हो?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"यी प्रमाणपत्रहरूको सहायताले तल दिइएका एप र URL हरूमा तपाईंको पहिचान गरिने छ"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"अनुमति नदिनुहोस्"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"अनुमति दिनुहोस्"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"थप देखाइयोस्"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"प्रमाणपत्र व्यवस्थापन गर्ने एप"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"कुनै पनि होइन"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"यो एप प्रयोग गरी इन्स्टल गरिएका प्रमाणपत्रहरूका सहायताले तल दिइएका एप र URL हरूमा तपाईंका युजरनेम तथा पासवर्ड पहिचान गरिन्छ"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"हटाउनुहोस्"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"इमर्जेन्सी डाइलिङसम्बन्धी सङ्केत"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"आपातकालीन कल राखिएको बेलाको व्यवहार सेट गर्नुहोस्"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"ब्याकअप"</string>
@@ -4642,6 +4652,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"देख्न सकिने डेटासेटहरूको सङ्ख्या अधिकतम पार्नुहोस्"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"पूर्वनिर्धारित मानहरूमा रिसेट गर्नुहोस्"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"स्वतः भरणसम्बन्धी विकासकर्ताका विकल्पहरू रिसेट गरिएको छ"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"पूर्ण GNSS मापनहरू बलपूर्वक लागू गर्नुहोस्"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"कुनै उपयोगिता अनुपात बिना नै सबै GNSS कन्स्टेलेसन तथा फ्रिक्वेन्सीहरूलाई ट्र्याक गर्नुहोस्"</string>
<string name="device_theme" msgid="5027604586494772471">"यन्त्रको विषयवस्तु"</string>
<string name="default_theme" msgid="4815428567082263639">"पूर्वनिर्धारित"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"नेटवर्कको नाम"</string>
@@ -4658,8 +4676,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"केन्द्रित रहन सूचनाहरू पज गर्नुहोस्"</string>
<string name="disabled_feature" msgid="7151433782819744211">"सुविधा उपलब्ध छैन"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"यो सुविधाले तपाईंको फोन ढिलो बनाउने हुनाले यसलाई निष्क्रिय पारिएको छ"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"पूर्ण GNSS मापनहरू बलपूर्वक लागू गर्नुहोस्"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"कुनै उपयोगिता अनुपात बिना नै सबै GNSS कन्स्टेलेसन तथा फ्रिक्वेन्सीहरूलाई ट्र्याक गर्नुहोस्"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"सधैँ क्र्याससम्बन्धी संवाद देखाउनुस्"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"प्रत्येकपटक एप क्र्यास हुँदा संवाद देखाउनुहोस्"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"कोण सक्षम पारिएको एप चयन गर्नुहोस्"</string>
@@ -4727,7 +4743,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"सक्रिय (म्युट)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"निष्क्रिय"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"नेटवर्कको विवरण"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"तपाईंको फोनमा रहेका एपहरूले तपाईंको यन्त्रको नाम देख्न सक्छन्। तपाईंले ब्लुटुथ यन्त्रहरूमा जडान गर्दा वा कुनै Wi-Fi हटस्पट सेटअप गर्दा अरू मान्छेहरू पनि यसलाई देख्न सक्छन्।"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"तपाईंको फोनमा रहेका एपको प्रयोग गरी तपाईंको यन्त्रको नाम हेर्न सकिन्छ। तपाईंले ब्लुटुथ चल्ने यन्त्रमा कनेक्ट गर्दा, कुनै Wi-Fi नेटवर्कमा कनेक्ट गर्दा वा कुनै Wi-Fi हटस्पट सेटअप गर्दा अरू मान्छेहरू पनि यसलाई देख्न सक्छन्।"</string>
<string name="devices_title" msgid="649715719278562515">"यन्त्रहरू"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"सबै सेटिङहरू"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"सुझावहरू"</string>
@@ -4887,6 +4903,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM सक्रिय गर्न सकिएन"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM बाहिर झिकेर फेरि हाल्नुहोस्। अझै समस्या रहिरह्यो भने आफ्नो यन्त्र रिस्टार्ट गर्नुहोस्।"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"फेरि SIM सक्रिय गरी हेर्नुहोस्। अझै समस्या रहिरह्यो भने आफ्नो यन्त्र रिस्टार्ट गर्नुहोस्।"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"नेटवर्क सक्रिय गर्ने प्रक्रिया"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> सक्रिय छ"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM का सेटिङ परिवर्तन गर्न ट्याप गर्नुहोस्"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM कार्ड"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"डाउनलोड गरिएको यो SIM मेटाउने हो?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"तपाईंले यो SIM मेटाउनुभयो भने यस यन्त्रबाट <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> सेवा हटाइने छ।\n\n <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> को सेवा भने रद्द गरिने छैन।"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"मेट्नुहोस्"</string>
@@ -4964,12 +4984,9 @@
<string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"आपताकालीन कल"</string>
<string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"तपाईंको सेवा प्रदायकले Wi‑Fi मार्फत आपत्कालीन कल गर्ने सुविधा समर्थन गदैन। \nअपतकालीन कल गर्नका लागि उक्त यन्त्रले स्वतः सेलुलर नेटवर्क प्रयोग गर्छ।\n सेलुलर नेटवर्कको कभरेज राम्रो भएका क्षेत्रमा मात्र अपतकालीन कल गर्न सम्भव हुन्छ।"</string>
<string name="wifi_calling_summary" msgid="8566648389959032967">"कलको गुणस्तर सुधार्न Wi‑Fi प्रयोग गरी कल गर्नुहोस्"</string>
- <!-- no translation found for cross_sim_calling_settings_title (1179406214047299816) -->
- <skip />
- <!-- no translation found for cross_sim_calling_setting_summary (7960473304104701519) -->
- <skip />
- <!-- no translation found for keywords_cross_sim_calling (1702104511020507778) -->
- <skip />
+ <string name="cross_sim_calling_settings_title" msgid="1179406214047299816">"क्रस SIM कलिङ"</string>
+ <string name="cross_sim_calling_setting_summary" msgid="7960473304104701519">"यो SIM कार्ड प्रयोगमा हुँदा अर्को SIM कार्डबाट कल वा SMS हरू पठाउने र प्राप्त गर्ने अनुमति दिनुहोस्।"</string>
+ <string name="keywords_cross_sim_calling" msgid="1702104511020507778">"क्रस SIM कलिङ"</string>
<string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"आगमन MMS सन्देश"</string>
<string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS सन्देश पठाउन सकिएन"</string>
<string name="enable_mms_notification_summary" msgid="6432752438276672500">"मोबाइल डेटा निष्क्रिय हुँदा <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> लाई MMS सन्देश पठाउने अनुमति दिन ट्याप गर्नुहोस्"</string>
@@ -5042,9 +5059,21 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"तपाईं Wi-Fi कलिङ सुविधा प्रयोग गरी केही Wi-Fi नेटवर्क जस्ता SIM रहित नेटवर्कमार्फत कल गर्न र कल प्राप्त गर्न सक्नुहुन्छ।"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"कलहरू"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <!-- no translation found for calls_sms_preferred (6016477652522583496) -->
+ <skip />
+ <!-- no translation found for calls_sms_calls_preferred (252913858812799809) -->
+ <skip />
+ <!-- no translation found for calls_sms_sms_preferred (5826706870873784062) -->
+ <skip />
+ <!-- no translation found for calls_sms_unavailable (4055729705246556529) -->
+ <skip />
+ <!-- no translation found for calls_sms_no_sim (2336377399761819718) -->
+ <skip />
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"प्राथमिकताहरू"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"सार्वजनिक Wi-Fi नेटवर्कमा कनेक्ट गरियोस्"</string>
<string name="keywords_internet" msgid="7674082764898690310">"नेटवर्क कनेक्सन, इन्टरनेट, वायरलेस, डेटा, wifi, wi-fi, wi fi, सेलुलर, मोबाइल, सेल सेवा प्रदायक, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"हवाइजहाजमा सुरक्षित रूपमा प्रयोग गर्न सकिने नेटवर्कहरू हेर्नु…"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"हवाइजहाज मोड अफ गर्नुहोस्"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"बेडटाइम मोड अन हुँदा यो सुविधाले काम गर्दैन"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"सूचनाको प्राथमिकता रिसेट गर्ने कार्य पूरा भयो।"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"एपहरू"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 4efcdc3..e6eb140 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -432,7 +432,7 @@
<string name="security_settings_fingerprint_enroll_dialog_delete" msgid="6027141901007342389">"Verwijderen"</string>
<string name="security_settings_fingerprint_enroll_start_title" msgid="7391368057800077604">"Raak de sensor aan"</string>
<string name="security_settings_fingerprint_enroll_start_message" msgid="5010227772754175346">"Plaats je vinger op de sensor en til deze op nadat je een trilling hebt gevoeld."</string>
- <string name="security_settings_fingerprint_enroll_repeat_title" msgid="9172202128243545021">"Til op en raak opnieuw aan"</string>
+ <string name="security_settings_fingerprint_enroll_repeat_title" msgid="9172202128243545021">"Raak de sensor aan"</string>
<string name="security_settings_fingerprint_enroll_repeat_message" msgid="5382958363770893577">"Raak de sensor meerdere keren aan om de verschillende delen van je vingerafdruk toe te voegen."</string>
<string name="security_settings_fingerprint_enroll_finish_title" msgid="3606325177406951457">"Vingerafdruk toegevoegd"</string>
<string name="security_settings_fingerprint_enroll_finish_message" msgid="8220458039597261933">"Als je dit icoon ziet, kun je je vingerafdruk gebruiken voor identificatie of om een aankoop goed te keuren."</string>
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-adressen"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Opgeslagen netwerken"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonnementen"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Andere netwerken"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-instellingen"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Geavanceerde wifi-instellingen zijn niet beschikbaar voor deze gebruiker"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Opslaan"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN verwijderen"</string>
<string name="menu_new" msgid="6571230342655509006">"Nieuwe APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Opslaan"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Weggooien"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Annuleren"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Het veld \'Naam\' mag niet leeg zijn."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"De APN mag niet leeg zijn."</string>
@@ -2130,7 +2129,7 @@
<string name="accessibility_settings" msgid="4713215774904704682">"Toegankelijkheid"</string>
<string name="accessibility_settings_title" msgid="6739115703615065716">"Instellingen voor toegankelijkheid"</string>
<string name="accessibility_settings_summary" msgid="2195085206729325737">"Schermlezers, weergave, interactieopties"</string>
- <string name="vision_settings_title" msgid="8919983801864103069">"Optische instellingen"</string>
+ <string name="vision_settings_title" msgid="8919983801864103069">"Visuele instellingen"</string>
<string name="vision_settings_description" msgid="7614894785054441991">"Je kunt dit apparaat aanpassen aan je behoeften. Deze toegankelijkheidsfuncties kunnen later worden gewijzigd in Instellingen."</string>
<string name="vision_settings_suggestion_title" msgid="4689275412658803919">"Lettergrootte wijzigen"</string>
<string name="screen_reader_category_title" msgid="6195867428854871553">"Schermlezers"</string>
@@ -2177,18 +2176,18 @@
<string name="accessibility_tutorial_dialog_message_volume" msgid="5033080515460519183">"Als je deze functie wilt gebruiken, houd je beide volumetoetsen ingedrukt."</string>
<string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Tik ergens op je scherm om de vergroting te starten of te stoppen."</string>
<string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Als je deze functie wilt gebruiken, swipe je met twee vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met twee vingers omhoog en houd vast om tussen functies te schakelen."</string>
- <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Als je deze functie wilt gebruiken, swipe je met drie vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met drie vingers omhoog en houd vast om tussen functies te schakelen."</string>
+ <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Als je deze functie wilt gebruiken, swipe je met 3 vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met 3 vingers omhoog en houd vast om tussen functies te schakelen."</string>
<string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Als je een toegankelijkheidsfunctie wilt gebruiken, swipe je met twee vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met twee vingers omhoog en houd vast om tussen functies te schakelen."</string>
- <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Als je een toegankelijkheidsfunctie wilt gebruiken, swipe je met drie vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met drie vingers omhoog en houd vast om tussen functies te schakelen."</string>
+ <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Als je een toegankelijkheidsfunctie wilt gebruiken, swipe je met 3 vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met 3 vingers omhoog en houd vast om tussen functies te schakelen."</string>
<string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
<string name="accessibility_shortcut_title" msgid="8125867833704517463">"Snelkoppeling voor <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
<string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Knop Toegankelijkheid"</string>
<string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"Met twee vingers omhoog swipen"</string>
- <string name="accessibility_shortcut_edit_dialog_title_software_gesture_talkback" msgid="7422753388389160524">"Met drie vingers omhoog swipen"</string>
+ <string name="accessibility_shortcut_edit_dialog_title_software_gesture_talkback" msgid="7422753388389160524">"Met 3 vingers omhoog swipen"</string>
<string name="accessibility_shortcut_edit_dialog_title_software" msgid="4796192466943479849">"Tik op de knop Toegankelijkheid"</string>
<string name="accessibility_shortcut_edit_dialog_summary_software" msgid="5606196352833449600">"Tik op de knop Toegankelijkheid <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> onderaan je scherm.\n\nTik op de knop Toegankelijkheid en houd vast om tussen functies te schakelen."</string>
<string name="accessibility_shortcut_edit_dialog_summary_software_gesture" msgid="8292555254353761635">"Swipe met twee vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met twee vingers omhoog en houd vast om tussen functies te schakelen."</string>
- <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe met drie vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met drie vingers omhoog en houd vast om tussen functies te schakelen."</string>
+ <string name="accessibility_shortcut_edit_dialog_summary_software_gesture_talkback" msgid="84483464524360845">"Swipe met 3 vingers omhoog vanaf de onderkant van het scherm.\n\nSwipe met 3 vingers omhoog en houd vast om tussen functies te schakelen."</string>
<string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="2356853121810443026">"Volumetoetsen ingedrukt houden"</string>
<string name="accessibility_shortcut_hardware_keyword" msgid="3921915304537166064">"volumetoetsen ingedrukt houden"</string>
<string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Houd beide volumetoetsen ingedrukt"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet heeft meer verbruikt dan normaal"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Apparaat heeft meer verbruikt dan normaal"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Batterij is mogelijk eerder leeg dan normaal"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batterij tijdelijk beperkt"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Hiermee kun je de batterijduur sparen. Tik voor meer informatie."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batterij tijdelijk beperkt. Tik voor meer informatie."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Je telefoon is vaker gebruikt dan normaal. De batterij is mogelijk eerder leeg dan verwacht.\n\nTop-apps op basis van batterijgebruik:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Je tablet is vaker gebruikt dan normaal. De batterij is mogelijk eerder leeg dan verwacht.\n\nTop-apps op basis van batterijgebruik:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Je apparaat is vaker gebruikt dan normaal. De batterij is mogelijk eerder leeg dan verwacht.\n\nTop-apps op basis van batterijgebruik:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Niet installeren"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Toch installeren"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificaat niet geïnstalleerd"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Toestaan dat <xliff:g id="APP_NAME">%s</xliff:g> certificaten installeert op dit apparaat?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Met deze certificaten word je geïdentificeerd bij de onderstaande apps en URL\'s"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Niet toestaan"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Toestaan"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Meer weergeven"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App voor certificaatbeheer"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Geen"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Aan de hand van de certificaten die worden geïnstalleerd door deze app, word je geïdentificeerd bij de onderstaande apps en URL\'s"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Verwijderen"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Noodoproepsignaal"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Gedrag bij noodoproepen instellen"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Back-up"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max. zichtbare gegevenssets"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Resetten naar standaardwaarden"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Ontwikkelaarsopties voor automatisch invullen zijn gereset"</string>
+ <string name="location_category" msgid="3496759112306219062">"Locatie"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Locatie-indicator in statusbalk"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Tonen voor alle locaties, inclusief netwerk en connectiviteit"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Volledige GNSS-metingen afdwingen"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Alle GNSS-constellaties en -frequenties bijhouden zonder duty cycling"</string>
<string name="device_theme" msgid="5027604586494772471">"Apparaatthema"</string>
<string name="default_theme" msgid="4815428567082263639">"Standaard"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Netwerknaam"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Meldingen onderbreken om gefocust te blijven"</string>
<string name="disabled_feature" msgid="7151433782819744211">"De functie is niet beschikbaar"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Deze functie is uitgeschakeld omdat je telefoon erdoor wordt vertraagd"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Volledige GNSS-metingen afdwingen"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Alle GNSS-constellaties en -frequenties bijhouden zonder duty cycling"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Altijd een crashvenster weergeven"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Bij gecrashte apps altijd een venster weergeven"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"App met ANGLE-functionaliteit selecteren"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Aan (dempen)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Uit"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Netwerkgegevens"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"De naam van je apparaat is zichtbaar voor apps op je telefoon. De apparaatnaam kan ook door andere mensen worden gezien wanneer je verbinding maakt met Bluetooth-apparaten of een wifi-hotspot instelt."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Je apparaatnaam is zichtbaar voor apps op je telefoon. De apparaatnaam kan ook door andere mensen worden gezien als je verbinding maakt met bluetooth-apparaten of een wifi-netwerk, of als je een wifi-hotspot instelt."</string>
<string name="devices_title" msgid="649715719278562515">"Apparaten"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Alle instellingen"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Suggesties"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Kan simkaart niet activeren"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Verwijder de simkaart en plaats deze opnieuw. Als het probleem blijft optreden, start je het apparaat opnieuw op."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Probeer de simkaart weer in te schakelen. Als het probleem blijft optreden, start je het apparaat opnieuw op."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Netwerkactivering"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> is actief"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tik om de instellingen voor de simkaart te updaten"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Simkaart"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Deze gedownloade simkaart wissen?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Als deze simkaart wordt gewist, wordt de <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>-service van dit apparaat verwijderd.\n\nDe service voor <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> wordt niet geannuleerd."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Wissen"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Met bellen via wifi kun je bellen en gebeld worden via niet-providernetwerken zoals bepaalde wifi-netwerken."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Gesprekken"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"Sms"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"voorkeur"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"voorkeur voor gesprekken"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"voorkeur voor sms"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"niet beschikbaar"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Geen simkaart"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Voorkeuren"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Verbinden met openbare netwerken"</string>
<string name="keywords_internet" msgid="7674082764898690310">"netwerkverbinding, internet, draadloos, data, wifi, wi-fi, wi fi, mobiel, mobiele provider, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Netwerken bekijken die geschikt zijn voor vliegtuigen"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Vliegtuigmodus uitschakelen"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Niet beschikbaar omdat de bedtijdstand is ingeschakeld"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Belang van meldingen is gereset."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index da5527d..0717009 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 ଠିକଣା"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ସେଭ୍ ହୋଇଥିବା ନେଟ୍ୱାର୍କ"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"ସଦସ୍ୟତା"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"ଅନ୍ୟ ନେଟୱାର୍କ"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP ସେଟିଂସ୍"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"ଏହି ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ପାଇଁ ୱାଇ-ଫାଇ ଉନ୍ନତ ସେଟିଙ୍ଗ ଉପଲବ୍ଧ ନାହିଁ"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"ସେଭ୍ କରନ୍ତୁ"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN ଡିଲିଟ୍ କରନ୍ତୁ"</string>
<string name="menu_new" msgid="6571230342655509006">"ନୂଆ APN"</string>
<string name="menu_save" msgid="6611465355127483100">"ସେଭ୍ କରନ୍ତୁ"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"ପରିତ୍ୟାଗ"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"ବାତିଲ୍ କରନ୍ତୁ"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"ନାମ ସ୍ଥାନ ଶୂନ୍ୟ ରହିପାରିବ ନାହିଁ।"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APNକୁ ଖାଲି ରଖାଯାଇପାରିବ ନାହିଁ।"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ଟାବଲେଟ୍ ସାଧାରଣ ତୁଳନାରେ ଅଧିକ ବ୍ୟବହାର କରାଯାଇଛି"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"ଡିଭାଇସ୍ ସାଧାରଣ ତୁଳନାରେ ଅଧିକ ବ୍ୟବହାର କରାଯାଇଛି"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ଅନୁମାନ କରାଯାଉଥିବା ସମୟର ପୂର୍ବରୁ ବ୍ୟାଟେରୀ ସରିଯାଇପାରେ"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"ବ୍ୟାଟେରୀ ଅସ୍ଥାୟୀ ଭାବେ ସୀମିତ ଅଛି"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ବ୍ୟାଟେରୀ ହେଲ୍ଥକୁ ଭଲ ଅବସ୍ଥାରେ ରଖିବାରେ ସାହାଯ୍ୟ କରେ। ଅଧିକ ଜାଣିବାକୁ ଟାପ୍ କରନ୍ତୁ।"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"ବ୍ୟାଟେରୀ ଅସ୍ଥାୟୀ ଭାବେ ସୀମିତ ଅଛି। ଅଧିକ ଜାଣିବାକୁ ଟାପ୍ କରନ୍ତୁ।"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"ଆପଣଙ୍କ ଫୋନ୍ ସାଧାରଣ ତୁଳନାରେ ଅଧିକ ବ୍ୟବହାର କରାଯାଇଛି। ଆପଣଙ୍କ ବ୍ୟାଟେରୀ ହୁଏତ ଆଶା କରାଯାଉଥିବା ସମୟ ଠାରୁ ଶୀଘ୍ର ସରି ଯାଇପାରେ।\n\n ବ୍ୟାଟେରୀର ବ୍ୟବହାର ଦ୍ୱାରା ଶ୍ରେଷ୍ଠ ଆପ୍ସ:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"ଆପଣଙ୍କର ଟାବ୍ଲେଟ୍ ସାଧାରଣ ତୁଳନାରେ ଅଧିକ ବ୍ୟବହାର କରାଯାଇଛି। ଆପଣଙ୍କ ବ୍ୟାଟେରୀ ହୁଏତ ଆଶା କରାଯାଉଥିବା ସମୟ ଠାରୁ ଶୀଘ୍ର ସରି ଯାଇପାରେ।\n\n ବ୍ୟାଟେରୀର ବ୍ୟବହାର ଦ୍ୱାରା ଶ୍ରେଷ୍ଠ ଆପ୍ସ:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"ଆପଣଙ୍କ ଡିଭାଇସ୍ ସାଧାରଣ ତୁଳନାରେ ଅଧିକ ବ୍ୟବହାର କରାଯାଇଛି। ଆପଣଙ୍କ ବ୍ୟାଟେରୀ ହୁଏତ ଆଶା କରାଯାଉଥିବା ସମୟ ଠାରୁ ଶୀଘ୍ର ସରି ଯାଇପାରେ।\n\n ବ୍ୟାଟେରୀର ବ୍ୟବହାର ଦ୍ୱାରା ଶ୍ରେଷ୍ଠ ଆପ୍ସ:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ଇନ୍ଷ୍ଟଲ୍ କରନ୍ତୁ ନାହିଁ"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"ଯେ କୌଣସି ମତେ ଇନଷ୍ଟଲ୍ କରନ୍ତୁ"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"ସାର୍ଟିଫିକେଟ୍ ଇନ୍ଷ୍ଟଲ୍ କରାଯାଇ ନାହିଁ"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"ଏହି ଡିଭାଇସରେ ସାର୍ଟିଫିକେଟଗୁଡ଼ିକୁ ଇନଷ୍ଟଲ୍ କରିବା ପାଇଁ <xliff:g id="APP_NAME">%s</xliff:g>କୁ ଅନୁମତି ଦେବେ କି?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ଏହି ସାର୍ଟିଫିକେଟଗୁଡ଼ିକ ନିମ୍ନରେ ଥିବା ଆପ୍ ଏବଂ URLଗୁଡ଼ିକ ପାଇଁ ଆପଣଙ୍କୁ ଚିହ୍ନଟ କରିବ"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"ଅନୁମତି ଦିଅନ୍ତୁ ନାହିଁ"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"ଅଧିକ ଦେଖାନ୍ତୁ"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"ସାର୍ଟିଫିକେଟ୍ ମ୍ୟାନେଜମେଣ୍ଟ ଆପ୍"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"କିଛି ନାହିଁ"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"ଏହି ଆପ୍ ଦ୍ୱାରା ଇନଷ୍ଟଲ୍ କରାଯାଇଥିବା ସାର୍ଟିଫିକେଟଗୁଡ଼ିକ ନିମ୍ନରେ ଥିବା ଆପ୍ ଏବଂ URLଗୁଡ଼ିକ ପାଇଁ ଆପଣଙ୍କୁ ଚିହ୍ନଟ କରିବ"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"କାଢ଼ି ଦିଅନ୍ତୁ"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"ଆପାତକାଳୀନ ଡାଏଲିଙ୍ଗ ସିଗ୍ନାଲ୍"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"ଏକ ଜରୁରୀକାଳୀନ କଲ୍ କରୁଥିବାବେଳେ ଗତିବିଧି ସେଟ୍ କରନ୍ତୁ"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"ବ୍ୟାକଅପ୍"</string>
@@ -3883,7 +3892,7 @@
<string name="switch_on_text" msgid="5664542327776075105">"ଚାଲୁ"</string>
<string name="switch_off_text" msgid="1315547447393646667">"ବନ୍ଦ"</string>
<string name="screen_pinning_title" msgid="6927227272780208966">"ଆପ୍ ପିନିଂ"</string>
- <string name="app_pinning_intro" msgid="6409063008733004245">"ବର୍ତ୍ତମାନର ଆପକୁ ଆପଣ ଅନପିନ୍ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଏହାକୁ ସ୍କ୍ରିନରେ ଦେଖାଇବା ପାଇଁ ଆପ୍ ପିନିଂ ଆପଣଙ୍କୁ ଅନୁମତି ଦିଏ। ଏହି ଫିଚର୍ ଅନେକ କ୍ଷେତ୍ରରେ ବ୍ୟବହୃତ ହୋଇପାରେ, ଉଦାହରଣ ସ୍ଵରୂପ, ଜଣେ ବିଶ୍ୱସ୍ତ ସାଙ୍ଗକୁ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ଗେମ୍ ଖେଳିବାକୁ ଦେବା।"</string>
+ <string name="app_pinning_intro" msgid="6409063008733004245">"ବର୍ତ୍ତମାନର ଆପକୁ ଆପଣ ଅନପିନ୍ ନକରିବା ପର୍ଯ୍ୟନ୍ତ ଏହାକୁ ସ୍କ୍ରିନରେ ଦେଖାଇବା ପାଇଁ ଆପ୍ ପିନିଂ ଆପଣଙ୍କୁ ଅନୁମତି ଦିଏ। ଏହି ଫିଚର୍ ଏହି କ୍ଷେତ୍ରରେ ବ୍ୟବହୃତ ହୋଇପାରେ, ଉଦାହରଣ ସ୍ଵରୂପ, ଜଣେ ବିଶ୍ୱସ୍ତ ସାଙ୍ଗକୁ ଏକ ନିର୍ଦ୍ଦିଷ୍ଟ ଗେମ୍ ଖେଳିବାକୁ ଦେବା।"</string>
<string name="screen_pinning_description" msgid="7289730998890213708">"କୌଣସି ଆପ୍ ପିନ୍ କରାଗଲେ, ପିନ୍ ହୋଇଥିବା ଆପଟି ଅନ୍ୟ ଆପଗୁଡ଼ିକୁ ଖୋଲିପାରେ ଏବଂ ବ୍ୟକ୍ତିଗତ ଡାଟାକୁ ଆକ୍ସେସ୍ କରାଯାଇପାରେ। \n\nଆପ୍ ପିନିଂ ବ୍ୟବହାର କରିବାକୁ: \n1. ଆପ୍ ପିନିଂ ଚାଲୁ କରନ୍ତୁ \n2. ଓଭରଭିଉ ଖୋଲନ୍ତୁ \n3. ସ୍କ୍ରିନର ଶୀର୍ଷରେ ଥିବା ଆପ୍ ଆଇକନରେ ଟାପ୍ କରି ତା\'ପରେ ପିନରେ ଟାପ୍ କରନ୍ତୁ"</string>
<string name="screen_pinning_guest_user_description" msgid="5826264265872938958">"କୌଣସି ଆପ୍ ପିନ୍ କରାଗଲେ, ପିନ୍ ହୋଇଥିବା ଆପଟି ଅନ୍ୟ ଆପଗୁଡ଼ିକୁ ଖୋଲିପାରେ ଏବଂ ବ୍ୟକ୍ତିଗତ ଡାଟାକୁ ଆକ୍ସେସ୍ କରାଯାଇପାରେ। \n\nଯଦି ଆପଣ କୌଣସି ବ୍ୟକ୍ତିଙ୍କ ସହ ଆପଣଙ୍କ ଡିଭାଇସ୍ ସୁରକ୍ଷିତ ଭାବେ ସେୟାର୍ କରିବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ ଏହା ପରିବର୍ତ୍ତେ ଜଣେ ଅତିଥି ଉପଯୋଗକର୍ତ୍ତା ବ୍ୟବହାର କରି ଦେଖନ୍ତୁ। \n\nଆପ୍ ପିନିଂ ବ୍ୟବହାର କରିବାକୁ: \n1. ଆପ୍ ପିନିଂ ଚାଲୁ କରନ୍ତୁ \n2. ଓଭରଭିଉ ଖୋଲନ୍ତୁ \n3. ସ୍କ୍ରିନର ଶୀର୍ଷରେ ଥିବା ଆପ୍ ଆଇକନରେ ଟାପ୍ କରି ତା\'ପରେ ପିନରେ ଟାପ୍ କରନ୍ତୁ"</string>
<string name="screen_pinning_dialog_message" msgid="8144925258679476654">"ଆପ୍ ପିନ୍ କରାଗଲେ: \n\n• ବ୍ୟକ୍ତିଗତ ଡାଟାକୁ ଆକ୍ସେସ୍ କରାଯାଇପାରେ \n (ଯେପରିକି ଯୋଗାଯୋଗଗୁଡ଼ିକ ଏବଂ ଇମେଲ୍ ବିଷୟବସ୍ତୁ) \n• ପିନ୍ ହୋଇଥିବା ଆପ ଅନ୍ୟ ଆପଗୁଡ଼ିକୁ ଖୋଲିପାରେ \n\nକେବଳ ଆପଣ ବିଶ୍ୱାସ କରୁଥିବା ଲୋକମାନଙ୍କ ସହ ଆପ୍ ପିନିଂ ବ୍ୟବହାର କରନ୍ତୁ।"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"ସର୍ବାଧିକ ଦେଖାଯାଉଥିବା ଡାଟାସେଟ୍ଗୁଡିକ"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ଡିଫଲ୍ଟ ମୂଲ୍ୟକୁ ରିସେଟ୍ କରନ୍ତୁ"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"ଅଟୋଫିଲ୍ ଡେଭଲପର୍ ବିକଳ୍ପଗୁଡିକ ରିସେଟ୍ ହୋଇଛି"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ପୂର୍ଣ୍ଣ GNSS ପରିମାପ ବାଧ୍ୟ କରନ୍ତୁ"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ଡ୍ୟୁଟି ସାଇକିଲିଂ ନଥାଇ ସମସ୍ତ GNSS ତାରାମଣ୍ଡଳ ଓ ଫ୍ରିକ୍ୱେନ୍ସୀକୁ ଟ୍ରାକ୍ କରନ୍ତୁ"</string>
<string name="device_theme" msgid="5027604586494772471">"ଡିଭାଇସ୍ ଥିମ୍"</string>
<string name="default_theme" msgid="4815428567082263639">"ପ୍ରାକ୍-ନିର୍ଦ୍ଧାରିତ"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ନେଟୱାର୍କ ନାମ"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ଫୋକସ୍ ରହିବା ପାଇଁ ବିଜ୍ଞପ୍ତି ବିରତି କରନ୍ତୁ"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ଫିଚର୍ ଉପଲବ୍ଧ ନାହିଁ"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"ଏହି ଫିଚର୍ ଆପଣଙ୍କ ଫୋନ୍କୁ ଧିମା କରୁଥିବାରୁ ଏହାକୁ ବନ୍ଦ କରିଦିଆଯାଇଛି"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"ପୂର୍ଣ୍ଣ GNSS ପରିମାପ ବାଧ୍ୟ କରନ୍ତୁ"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ଡ୍ୟୁଟି ସାଇକିଲିଂ ନଥାଇ ସମସ୍ତ GNSS ତାରାମଣ୍ଡଳ ଓ ଫ୍ରିକ୍ୱେନ୍ସୀକୁ ଟ୍ରାକ୍ କରନ୍ତୁ"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"କ୍ରାଶ୍ ହୋଇଥିବା ଡାୟଲଗ୍କୁ ସର୍ବଦା ଦେଖାନ୍ତୁ"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"ପ୍ରତ୍ୟେକ ଥର ଗୋଟିଏ ଆପ୍ କ୍ରାଶ୍ ହେବାପରେ ଡାୟଲଗ୍ ଦେଖାନ୍ତୁ"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE ସକ୍ଷମ ଥିବା ଆପ୍ ଚୟନ କରନ୍ତୁ"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ଚାଲୁ (ମ୍ୟୁଟ୍)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ବନ୍ଦ"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"ନେଟୱାର୍କ୍ ବିବରଣୀ"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"ଆପଣଙ୍କ ଡିଭାଇସ୍ରେ ଥିବା ଆପ୍ଗୁଡ଼ିକୁ ଆପଣଙ୍କର ଡିଭାଇସ୍ ନାମ ଦେଖାଯାଉଛି। ବ୍ଲୁଟୂଥ୍ ଡିଭାଇସ୍ ସହ ଯୋଡ଼ି ହେବାବେଳେ କିମ୍ୱା ଏକ ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ସେଟ୍ କରିବା ସମୟରେ, ଏହା ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ମଧ୍ୟ ଦେଖାଦେଇପାରେ।"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ଆପଣଙ୍କ ଫୋନରେ ଥିବା ଆପଗୁଡ଼ିକୁ ଆପଣଙ୍କ ଡିଭାଇସ୍ ନାମ ଦୃଶ୍ୟମାନ ହୋଇଥାଏ। ଯେତେବେଳେ ଆପଣ ବ୍ଲୁଟୁଥ୍ ଡିଭାଇସଗୁଡ଼ିକ ସହ ସଂଯୋଗ କରନ୍ତି, ଏକ ୱାଇ-ଫାଇ ନେଟୱାର୍କ ସହ ସଂଯୋଗ କରନ୍ତି କିମ୍ବା ଏକ ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ସେଟ୍ ଅପ୍ କରନ୍ତି, ସେତେବେଳେ ଏହା ଅନ୍ୟ ଲୋକମାନଙ୍କୁ ମଧ୍ୟ ଦେଖାଯାଇପାରେ।"</string>
<string name="devices_title" msgid="649715719278562515">"ଡିଭାଇସ୍"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"ସମସ୍ତ ସେଟିଂସ୍"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"ପରାମର୍ଶ"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIMକୁ ସକ୍ରିୟ କରାଯାଇପାରିବ ନାହିଁ"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIMକୁ କାଢ଼ି ପୁଣି ଭର୍ତ୍ତି କରନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରହେ, ତେବେ ଆପଣଙ୍କ ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ।"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIMକୁ ପୁଣି ଚାଲୁ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ। ଯଦି ସମସ୍ୟା ଜାରି ରହେ, ତେବେ ଆପଣଙ୍କ ଡିଭାଇସକୁ ରିଷ୍ଟାର୍ଟ କରନ୍ତୁ।"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"ନେଟୱାର୍କ ସକ୍ରିୟକରଣ"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ସକ୍ରିୟ ଅଛି"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM ସେଟିଂସକୁ ଅପଡେଟ୍ କରିବା ପାଇଁ ଟାପ୍ କରନ୍ତୁ"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM କାର୍ଡ"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ଡାଉନଲୋଡ୍ ହୋଇଥିବା ଏହି SIMକୁ ଖାଲି କରିବେ?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ଏହି SIMକୁ ଖାଲି କରିବା ଦ୍ୱାରା, ଏହି ଡିଭାଇସରୁ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ସେବାକୁ କାଢ଼ି ଦିଆଯିବ।\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ପାଇଁ ସେବା ବାତିଲ୍ ହେବ ନାହିଁ।"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"ଖାଲି କରନ୍ତୁ"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"ୱାଇ‑ଫାଇ କଲିଂ ଆପଣଙ୍କୁ କେତେକ ୱାଇ‑ଫାଇ ନେଟୱାର୍କ ପରି ନନ୍‑କ୍ୟାରିଅର୍ ନେଟୱାର୍କରେ କଲ୍ କରିବା ଓ ପ୍ରାପ୍ତ କରିବାକୁ ଅନୁମତି ଦେଇଥାଏ।"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"କଲଗୁଡ଼ିକ"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"ପସନ୍ଦ କରାଯାଇଛି"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"କଲଗୁଡ଼ିକୁ ପସନ୍ଦ କରାଯାଇଛି"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS ପସନ୍ଦ କରାଯାଇଛି"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ଉପଲବ୍ଧ ନାହିଁ"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"କୌଣସି SIM ନାହିଁ"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ପସନ୍ଦଗୁଡ଼ିକ"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"ସାର୍ବଜନୀନ ନେଟୱାର୍କଗୁଡ଼ିକ ସହ ସଂଯୋଗ କରନ୍ତୁ"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ନେଟୱାର୍କ ସଂଯୋଗ, ଇଣ୍ଟରନେଟ୍, ୱାୟାରଲେସ୍, ଡାଟା, ୱାଇଫାଇ, ୱାଇ-ଫାଇ, ୱାଇ ଫାଇ, ସେଲ୍ୟୁଲାର୍, ମୋବାଇଲ, ସେଲ୍ କ୍ୟାରିଅର୍, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"ଏୟାରପ୍ଲେନ୍-ସେଫ୍ ନେଟୱାର୍କଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"ଏୟାରପ୍ଲେନ୍ ମୋଡକୁ ବନ୍ଦ କରନ୍ତୁ"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"ଶୋଇବା ସମୟ ମୋଡ୍ ଚାଲୁ ଥିବା ଯୋଗୁଁ ଉପଲବ୍ଧ ନାହିଁ"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"ବିଜ୍ଞପ୍ତିର ପ୍ରାଥମିକତା ରିସେଟ୍ କରିବା ସମ୍ପୂର୍ଣ୍ଣ ହୋଇଛି।"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ଆପଗୁଡ଼ିକ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index fda16d4..597aaee 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 ਪਤੇ"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"ਰੱਖਿਅਤ ਕੀਤੇ ਨੈੱਟਵਰਕ"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"ਗਾਹਕੀਆਂ"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"ਹੋਰ ਨੈੱਟਵਰਕ"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP ਸੈਟਿੰਗਾਂ"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"ਵਾਈ-ਫਾਈ ਉੱਨਤ ਸੈਟਿੰਗਾਂ ਇਸ ਵਰਤੋਂਕਾਰ ਲਈ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"ਰੱਖਿਅਤ ਕਰੋ"</string>
@@ -1597,7 +1596,8 @@
<string name="menu_delete" msgid="9199740901584348273">"APN ਮਿਟਾਓ"</string>
<string name="menu_new" msgid="6571230342655509006">"ਨਵਾਂ APN"</string>
<string name="menu_save" msgid="6611465355127483100">"ਰੱਖਿਅਤ ਕਰੋ"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"ਰੱਦ ਕਰੋ"</string>
+ <!-- no translation found for menu_cancel (1197826697950745335) -->
+ <skip />
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"ਨਾਮ ਖੇਤਰ ਨੂੰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ।"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ਨੂੰ ਖਾਲੀ ਨਹੀਂ ਛੱਡਿਆ ਜਾ ਸਕਦਾ।"</string>
@@ -2456,8 +2456,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ਟੈਬਲੈੱਟ ਦੀ ਵਰਤੋਂ ਆਮ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਹੋਈ ਹੈ"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ ਆਮ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਹੋਈ ਹੈ"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"ਬੈਟਰੀ ਆਮ ਨਾਲੋਂ ਪਹਿਲਾਂ ਖਤਮ ਹੋ ਸਕਦੀ ਹੈ"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"ਬੈਟਰੀ ਕੁਝ ਸਮੇਂ ਲਈ ਸੀਮਤ"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ਬੈਟਰੀ ਦੀ ਸਥਿਤੀ ਬਚਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ। ਹੋਰ ਜਾਣਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"ਬੈਟਰੀ ਕੁਝ ਸਮੇਂ ਲਈ ਸੀਮਤ। ਹੋਰ ਜਾਣਨ ਲਈ ਟੈਪ ਕਰੋ।"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"ਤੁਹਾਡੇ ਫ਼ੋਨ ਦੀ ਵਰਤੋਂ ਆਮ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਕੀਤੀ ਗਈ ਹੈ। ਤੁਹਾਡੀ ਬੈਟਰੀ ਸ਼ਾਇਦ ਉਮੀਦ ਨਾਲੋਂ ਛੇਤੀ ਮੁੱਕ ਜਾਵੇ।\n\nਬੈਟਰੀ ਵਰਤੋਂ ਮੁਤਾਬਕ ਪ੍ਰਮੁੱਖ ਐਪਾਂ:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ ਦੀ ਵਰਤੋਂ ਆਮ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਕੀਤੀ ਗਈ ਹੈ। ਤੁਹਾਡੀ ਬੈਟਰੀ ਸ਼ਾਇਦ ਉਮੀਦ ਨਾਲੋਂ ਛੇਤੀ ਮੁੱਕ ਜਾਵੇ।\n\nਬੈਟਰੀ ਵਰਤੋਂ ਮੁਤਾਬਕ ਪ੍ਰਮੁੱਖ ਐਪਾਂ:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਵਰਤੋਂ ਆਮ ਨਾਲੋਂ ਜ਼ਿਆਦਾ ਕੀਤੀ ਗਈ ਹੈ। ਤੁਹਾਡੀ ਬੈਟਰੀ ਸ਼ਾਇਦ ਉਮੀਦ ਨਾਲੋਂ ਛੇਤੀ ਮੁੱਕ ਜਾਵੇ।\n\nਬੈਟਰੀ ਵਰਤੋਂ ਮੁਤਾਬਕ ਪ੍ਰਮੁੱਖ ਐਪਾਂ:"</string>
@@ -2723,6 +2724,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ਸਥਾਪਤ ਨਾ ਕਰੋ"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"ਫੇਰ ਵੀ ਸਥਾਪਤ ਕਰੋ"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"ਪ੍ਰਮਾਣ-ਪੱਤਰ ਸਥਾਪਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"ਕੀ <xliff:g id="APP_NAME">%s</xliff:g> ਨੂੰ ਇਸ ਡੀਵਾਈਸ \'ਤੇ ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ ਦੀ ਸਥਾਪਨਾ ਕਰਨ ਦੇਣੀ ਹੈ?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ਇਹ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਐਪਾਂ ਅਤੇ URL ਵਿੱਚ ਤੁਹਾਡੀ ਪਛਾਣ ਕਰਨਗੇ"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"ਇਜਾਜ਼ਤ ਨਾ ਦਿਓ"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"ਇਜਾਜ਼ਤ ਦਿਓ"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"ਹੋਰ ਦਿਖਾਓ"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"ਪ੍ਰਮਾਣ-ਪੱਤਰ ਪ੍ਰਬੰਧਨ ਐਪ"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ਕੋਈ ਨਹੀਂ"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"ਇਸ ਐਪ ਵੱਲੋਂ ਸਥਾਪਤ ਕੀਤੇ ਗਏ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਐਪਾਂ ਅਤੇ URL ਵਿੱਚ ਤੁਹਾਡੀ ਪਛਾਣ ਕਰਨਗੇ"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"ਹਟਾਓ"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"ਸੰਕਟਕਾਲੀਨ ਡਾਇਲਿੰਗ ਸਿਗਨਲ"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"ਜਦੋਂ ਇੱਕ ਸੰਕਟਕਾਲੀਨ ਕਾਲ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਵਿਵਹਾਰ ਸੈੱਟ ਕਰੋ"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"ਬੈਕਅੱਪ"</string>
@@ -3883,12 +3893,9 @@
<string name="switch_on_text" msgid="5664542327776075105">"ਚਾਲੂ"</string>
<string name="switch_off_text" msgid="1315547447393646667">"ਬੰਦ"</string>
<string name="screen_pinning_title" msgid="6927227272780208966">"ਐਪ ਪਿਨਿੰਗ"</string>
- <!-- no translation found for app_pinning_intro (6409063008733004245) -->
- <skip />
- <!-- no translation found for screen_pinning_description (7289730998890213708) -->
- <skip />
- <!-- no translation found for screen_pinning_guest_user_description (5826264265872938958) -->
- <skip />
+ <string name="app_pinning_intro" msgid="6409063008733004245">"ਐਪ ਪਿਨਿੰਗ ਵਿਸ਼ੇਸ਼ਤਾ ਤੁਹਾਨੂੰ ਮੌਜੂਦਾ ਐਪ ਉਦੋਂ ਤੱਕ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਰੱਖਣ ਦਿੰਦੀ ਹੈ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਇਸਨੂੰ ਅਨਪਿੰਨ ਨਹੀਂ ਕਰਦੇ। ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਇੰਝ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਉਦਾਹਰਨ ਲਈ, ਕਿਸੇ ਭਰੋਸੇਮੰਦ ਦੋਸਤ ਨੂੰ ਕੋਈ ਖਾਸ ਗੇਮ ਖੇਡਣ ਲਈ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ।"</string>
+ <string name="screen_pinning_description" msgid="7289730998890213708">"ਜਦੋਂ ਕੋਈ ਐਪ ਪਿੰਨ ਕੀਤੀ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਪਿੰਨ ਕੀਤੀ ਐਪ ਹੋਰ ਐਪਾਂ ਨੂੰ ਖੋਲ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਨਿੱਜੀ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ। \n\nਐਪ ਪਿਨਿੰਗ ਨੂੰ ਵਰਤਣ ਲਈ: \n1. ਐਪ ਪਿਨਿੰਗ ਨੂੰ ਚਾਲੂ ਕਰੋ \n2. ਰੂਪ-ਰੇਖਾ ਨੂੰ ਖੋਲ੍ਹੋ \n3. ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ \'ਤੇ ਐਪ ਪ੍ਰਤੀਕ \'ਤੇ ਟੈਪ ਕਰਕੇ ਪਿੰਨ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
+ <string name="screen_pinning_guest_user_description" msgid="5826264265872938958">"ਜਦੋਂ ਕੋਈ ਐਪ ਪਿੰਨ ਕੀਤੀ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਪਿੰਨ ਕੀਤੀ ਐਪ ਹੋਰ ਐਪਾਂ ਨੂੰ ਖੋਲ੍ਹ ਸਕਦੀ ਹੈ ਅਤੇ ਨਿੱਜੀ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀ ਹੈ। \n\nਜੇ ਤੁਸੀਂ ਕਿਸੇ ਵਿਅਕਤੀ ਨਾਲ ਆਪਣਾ ਡੀਵਾਈਸ ਸੁਰੱਖਿਅਤ ਢੰਗ ਨਾਲ ਸਾਂਝਾ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਇਸ ਦੀ ਬਜਾਏ ਮਹਿਮਾਨ ਵਰਤੋਂਕਾਰ ਨੂੰ ਵਰਤ ਕੇ ਦੇਖੋ। \n\nਐਪ ਪਿਨਿੰਗ ਨੂੰ ਵਰਤਣ ਲਈ: \n1. ਐਪ ਪਿਨਿੰਗ ਨੂੰ ਚਾਲੂ ਕਰੋ \n2. ਰੂਪ-ਰੇਖਾ ਨੂੰ ਖੋਲ੍ਹੋ \n3. ਸਕ੍ਰੀਨ ਦੇ ਸਿਖਰ \'ਤੇ ਐਪ ਪ੍ਰਤੀਕ \'ਤੇ ਟੈਪ ਕਰਕੇ ਪਿੰਨ \'ਤੇ ਟੈਪ ਕਰੋ"</string>
<string name="screen_pinning_dialog_message" msgid="8144925258679476654">"ਜਦੋਂ ਐਪ ਪਿੰਨ ਕੀਤੀ ਹੁੰਦੀ ਹੈ: \n\n• ਨਿੱਜੀ ਡਾਟੇ ਤੱਕ ਪਹੁੰਚ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ \n (ਜਿਵੇਂ ਕਿ ਸੰਪਰਕ ਅਤੇ ਈਮੇਲ ਸਮੱਗਰੀ) \n• ਪਿੰਨ ਕੀਤੀ ਐਪ ਹੋਰ ਐਪਾਂ ਨੂੰ ਖੋਲ੍ਹ ਸਕਦੀ ਹੈ \n\nਐਪ ਪਿਨਿੰਗ ਵਿਸ਼ੇਸ਼ਤਾ ਦੀ ਵਰਤੋਂ ਸਿਰਫ਼ ਆਪਣੇ ਭਰੋਸੇਯੋਗ ਲੋਕਾਂ ਨਾਲ ਹੀ ਕਰੋ।"</string>
<string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"ਅਨਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਅਣਲਾਕ ਪੈਟਰਨ ਵਾਸਤੇ ਪੁੱਛੋ"</string>
<string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"ਅਨਪਿੰਨ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਪਿੰਨ ਮੰਗੋ"</string>
@@ -4511,8 +4518,7 @@
<string name="ambient_display_tap_screen_title" product="device" msgid="4423803387551153840">"ਡੀਵਾਈਸ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
<string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"ਸਮਾਂ, ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇਖਣ ਲਈ ਆਪਣੀ ਸਕ੍ਰੀਨ \'ਤੇ ਟੈਪ ਕਰੋ।"</string>
<string name="emergency_gesture_screen_title" msgid="3280543310204360902">"ਸੰਕਟਕਾਲੀਨ SOS"</string>
- <!-- no translation found for emergency_gesture_switchbar_title (7494629420708117232) -->
- <skip />
+ <string name="emergency_gesture_switchbar_title" msgid="7494629420708117232">"ਸੰਕਟਕਾਲੀਨ SOS ਵਰਤੋ"</string>
<string name="emergency_gesture_entrypoint_summary" msgid="4730874229911208834">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਗਿਆ"</string>
<string name="emergency_gesture_screen_summary" msgid="458991229689082120">"ਪਾਵਰ ਬਟਨ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ 5 ਜਾਂ ਜ਼ਿਆਦਾ ਵਾਰ ਦੱਬ ਕੇ ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਕਾਰਵਾਈਆਂ ਸ਼ੁਰੂ ਕਰੋ"</string>
<string name="emergency_gesture_sound_setting_title" msgid="7153948164862156536">"ਉਲਟੀ ਗਿਣਤੀ ਵਾਲਾ ਅਲਾਰਮ ਚਲਾਓ"</string>
@@ -4646,6 +4652,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"ਵੱਧ-ਤੋਂ-ਵੱਧ ਦਿਖਣਯੋਗ ਡਾਟਾਸੈੱਟ"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲਾਂ \'ਤੇ ਰੀਸੈੱਟ ਕਰੋ"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"ਆਟੋਫਿਲ ਵਿਕਾਸਕਾਰ ਵਿਕਲਪਾਂ ਨੂੰ ਰੀਸੈੱਟ ਕਰ ਦਿੱਤਾ ਹੈ"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS ਮਾਪ ਨੂੰ ਜ਼ਬਰਦਰਸਤੀ ਲਾਗੂ ਕਰੋ"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ਡਿਊਟੀ ਸਾਈਕਲਿੰਗ ਤੋਂ ਬਿਨਾਂ ਸਾਰੇ GNSS ਉਪਗ੍ਰਹਿ ਗਰੁੱਪਾਂ ਅਤੇ ਵਾਰਵਾਰਤਾਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
<string name="device_theme" msgid="5027604586494772471">"ਡੀਵਾਈਸ ਥੀਮ"</string>
<string name="default_theme" msgid="4815428567082263639">"ਪੂਰਵ-ਨਿਰਧਾਰਤ"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ਨੈੱਟਵਰਕ ਦਾ ਨਾਮ"</string>
@@ -4662,8 +4676,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ਧਿਆਨ ਕੇਂਦਰਿਤ ਰੱਖਣ ਲਈ ਸੂਚਨਾਵਾਂ ਰੋਕੋ"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ਵਿਸ਼ੇਸ਼ਤਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"ਇਸ ਵਿਸ਼ੇਸ਼ਤਾ ਨੂੰ ਬੰਦ ਕਰ ਦਿੱਤਾ ਗਿਆ ਹੈ ਕਿਉਂਕਿ ਇਹ ਤੁਹਾਡੇ ਫ਼ੋਨ ਨੂੰ ਹੌਲੀ ਕਰ ਦਿੰਦੀ ਹੈ"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"GNSS ਮਾਪ ਨੂੰ ਜ਼ਬਰਦਰਸਤੀ ਲਾਗੂ ਕਰੋ"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ਡਿਊਟੀ ਸਾਈਕਲਿੰਗ ਤੋਂ ਬਿਨਾਂ ਸਾਰੇ GNSS ਉਪਗ੍ਰਹਿ ਗਰੁੱਪਾਂ ਅਤੇ ਵਾਰਵਾਰਤਾਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"ਹਮੇਸ਼ਾਂ ਕ੍ਰੈਸ਼ ਵਿੰਡੋ ਦਿਖਾਓ"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"ਕਿਸੇ ਐਪ ਦੇ ਕ੍ਰੈਸ਼ ਹੋਣ \'ਤੇ ਹਰ ਵਾਰ ਵਿੰਡੋ ਦਿਖਾਓ"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE ਸਮਰਥਿਤ ਐਪ ਚੁਣੋ"</string>
@@ -4731,7 +4743,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ਚਾਲੂ (ਮਿਊਟ)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ਬੰਦ"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"ਨੈੱਟਵਰਕ ਵੇਰਵੇ"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਨਾਮ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਐਪਾਂ ਨੂੰ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਇਹ ਤੁਹਾਡੇ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਜਾਂ ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਸੈੱਟਅੱਪ ਕਰਨ \'ਤੇ ਹੋਰ ਲੋਕਾਂ ਵੱਲੋਂ ਵੀ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦਾ ਨਾਮ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਐਪਾਂ ਨੂੰ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ। ਇਸਨੂੰ ਤੁਹਾਡੇ ਬਲੂਟੁੱਥ ਡੀਵਾਈਸ ਨਾਲ ਕਨੈਕਟ ਕਰਨ, ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨਾਲ ਕਨੈਕਟ ਕਰਨ ਜਾਂ ਵਾਈ-ਫਾਈ ਹੌਟਸਪੌਟ ਸੈੱਟਅੱਪ ਕਰਨ \'ਤੇ ਹੋਰ ਲੋਕਾਂ ਵੱਲੋਂ ਵੀ ਦੇਖਿਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
<string name="devices_title" msgid="649715719278562515">"ਡੀਵਾਈਸਾਂ"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"ਸਾਰੀਆਂ ਸੈਟਿੰਗਾਂ"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"ਸੁਝਾਅ"</string>
@@ -4891,6 +4903,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"ਸਿਮ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"ਸਿਮ ਹਟਾ ਕੇ ਦੁਬਾਰਾ ਪਾਓ। ਜੇ ਸਮੱਸਿਆ ਜਾਰੀ ਰਹਿੰਦੀ ਹੈ, ਤਾਂ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ।"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ਸਿਮ ਨੂੰ ਦੁਬਾਰਾ ਚਾਲੂ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਜੇ ਸਮੱਸਿਆ ਜਾਰੀ ਰਹਿੰਦੀ ਹੈ, ਤਾਂ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਸ਼ੁਰੂ ਕਰੋ।"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"ਨੈੱਟਵਰਕ ਕਿਰਿਆਸ਼ੀਲਤਾ"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ਕਿਰਿਆਸ਼ੀਲ ਹੈ"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM ਸੈਟਿੰਗਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਟੈਪ ਕਰੋ"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"ਸਿਮ ਕਾਰਡ"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ਕੀ ਇਹ ਡਾਊਨਲੋਡ ਕੀਤਾ ਸਿਮ ਮਿਟਾਉਣਾ ਹੈ?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ਇਹ ਸਿਮ ਮਿਟਾਉਣ ਨਾਲ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ਸੇਵਾ ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਹਟ ਜਾਂਦੀ ਹੈ।\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ਲਈ ਸੇਵਾ ਰੱਦ ਨਹੀਂ ਕੀਤੀ ਜਾਵੇਗੀ।"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"ਮਿਟਾਓ"</string>
@@ -4968,12 +4984,9 @@
<string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ਸੰਕਟਕਾਲੀਨ ਕਾਲਾਂ"</string>
<string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ ਰਾਹੀਂ ਸੰਕਟਕਾਲੀਨ ਕਾਲਾਂ ਕਰਨ ਦੀ ਸੁਵਿਧਾ ਤੁਹਾਡੇ ਕੈਰੀਅਰ ਵਿੱਚ ਨਹੀਂ ਹੈ।\nਸੰਕਟਕਾਲੀਨ ਕਾਲ ਕਰਨ ਲਈ ਤੁਹਾਡਾ ਡੀਵਾਈਸ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸੈਲਿਊਲਰ ਨੈੱਟਵਰਕ \'ਤੇ ਬਦਲ ਜਾਂਦਾ ਹੈ।\nਸੰਕਟਕਾਲੀਨ ਕਾਲਾਂ ਸਿਰਫ਼ ਸੈਲਿਊਲਰ ਕਵਰੇਜ ਵਾਲੇ ਖੇਤਰਾਂ ਵਿੱਚ ਸੰਭਵ ਹਨ।"</string>
<string name="wifi_calling_summary" msgid="8566648389959032967">"ਕੁਆਲਿਟੀ ਬਿਹਤਰ ਬਣਾਉਣ ਵਾਸਤੇ ਕਾਲਾਂ ਲਈ ਵਾਈ-ਫਾਈ ਵਰਤੋ"</string>
- <!-- no translation found for cross_sim_calling_settings_title (1179406214047299816) -->
- <skip />
- <!-- no translation found for cross_sim_calling_setting_summary (7960473304104701519) -->
- <skip />
- <!-- no translation found for keywords_cross_sim_calling (1702104511020507778) -->
- <skip />
+ <string name="cross_sim_calling_settings_title" msgid="1179406214047299816">"ਕ੍ਰਾਸ ਸਿਮ ਕਾਲਿੰਗ"</string>
+ <string name="cross_sim_calling_setting_summary" msgid="7960473304104701519">"ਇਸ ਸਿਮ \'ਤੇ ਹੋਰ ਸਿਮ ਕਾਲਾਂ ਅਤੇ SMS ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ।"</string>
+ <string name="keywords_cross_sim_calling" msgid="1702104511020507778">"ਕ੍ਰਾਸ ਸਿਮ ਕਾਲਿੰਗ"</string>
<string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"ਆਉਣ ਵਾਲਾ MMS ਸੁਨੇਹਾ"</string>
<string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS ਸੁਨੇਹਾ ਭੇਜਿਆ ਨਹੀਂ ਜਾ ਸਕਦਾ"</string>
<string name="enable_mms_notification_summary" msgid="6432752438276672500">"ਮੋਬਾਈਲ ਡਾਟਾ ਬੰਦ ਹੋਣ \'ਤੇ <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> \'ਤੇ MMS ਸੁਨੇਹੇ ਭੇਜਣ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਦੇਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
@@ -5046,9 +5059,21 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"ਵਾਈ-ਫਾਈ ਕਾਲਿੰਗ ਤੁਹਾਨੂੰ ਨਾਨ-ਕੈਰੀਅਰ ਨੈੱਟਵਰਕਾਂ, ਜਿਵੇਂ ਕਿ ਕੁਝ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ, \'ਤੇ ਕਾਲਾਂ ਕਰਨ ਅਤੇ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ।"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"ਕਾਲਾਂ"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <!-- no translation found for calls_sms_preferred (6016477652522583496) -->
+ <skip />
+ <!-- no translation found for calls_sms_calls_preferred (252913858812799809) -->
+ <skip />
+ <!-- no translation found for calls_sms_sms_preferred (5826706870873784062) -->
+ <skip />
+ <!-- no translation found for calls_sms_unavailable (4055729705246556529) -->
+ <skip />
+ <!-- no translation found for calls_sms_no_sim (2336377399761819718) -->
+ <skip />
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ਤਰਜੀਹਾਂ"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"ਜਨਤਕ ਨੈੱਟਵਰਕਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ, ਇੰਟਰਨੈੱਟ, ਵਾਇਰਲੈੱਸ, ਡਾਟਾ, ਵਾਈ-ਫਾਈ, ਸੈਲਿਊਲਰ, ਮੋਬਾਈਲ, ਸੈੱਲ ਕੈਰੀਅਰ, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"ਹਵਾਈ-ਜਹਾਜ਼ ਸੁਰੱਖਿਅਤ ਨੈੱਟਵਰਕ ਦੇਖੋ"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"ਹਵਾਈ-ਜਹਾਜ਼ ਮੋਡ ਬੰਦ ਕਰੋ"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"ਬੈੱਡਟਾਈਮ ਮੋਡ ਚਾਲੂ ਹੋਣ ਕਰਕੇ ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"ਸੂਚਨਾ ਦੀ ਮਹੱਤਤਾ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਰੀਸੈੱਟ ਕਰੋ।"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ਐਪਾਂ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 1160ec2..f0c8eda 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1062,8 +1062,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Adresy IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Zapisane sieci"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subskrypcje"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Inne sieci"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Ustawienia adresu IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Zaawansowane ustawienia Wi‑Fi są niedostępne dla tego użytkownika"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Zapisz"</string>
@@ -1639,7 +1638,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Usuń APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Nowy APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Zapisz"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Odrzuć"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Anuluj"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Nazwa nie może być pusta."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Nazwa APN nie może być pusta."</string>
@@ -2518,8 +2517,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet używany intensywniej niż zwykle"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Urządzenie używane intensywniej niż zwykle"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Bateria może wyczerpać się szybciej niż zwykle"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Bateria tymczasowo ograniczona"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Pomaga utrzymać baterię w dobrym stanie. Kliknij, by dowiedzieć się więcej."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Bateria tymczasowo ograniczona. Kliknij, by dowiedzieć się więcej."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefon był używany intensywniej niż zwykle. Bateria może rozładować się szybciej.\n\nAplikacje najbardziej wyczerpujące baterię:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tablet był używany intensywniej niż zwykle. Bateria może rozładować się szybciej.\n\nAplikacje najbardziej wyczerpujące baterię:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Urządzenie było używane intensywniej niż zwykle. Bateria może rozładować się szybciej.\n\nAplikacje najbardziej wyczerpujące baterię:"</string>
@@ -2799,6 +2799,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Nie instaluj"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Zainstaluj mimo to"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Nie zainstalowano certyfikatu"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Zezwolić aplikacji <xliff:g id="APP_NAME">%s</xliff:g> na instalowanie certyfikatów na tym urządzeniu?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Te certyfikaty identyfikują Cię w aplikacjach i pod adresami URL podanymi poniżej"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Nie zezwalaj"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Zezwól"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Pokaż więcej"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Aplikacja do zarządzania certyfikatami"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Brak"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certyfikaty zainstalowane przez tę aplikację identyfikują Cię w aplikacjach i pod adresami URL podanymi poniżej"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Usuń"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Sygnał wybierania numeru alarmowego"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Skonfiguruj sposób działania w przypadku połączenia alarmowego"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Kopia zapasowa"</string>
@@ -4802,6 +4811,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksymalna liczba widocznych zbiorów danych"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Przywróć wartości domyślne"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Zresetowano opcje programisty dotyczące autouzupełniania"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Wymuś pełną procedurę pomiarów GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Śledź wszystkie konstelacje GNSS i częstotliwości bez uwzględniania współczynnika impulsu"</string>
<string name="device_theme" msgid="5027604586494772471">"Motyw urządzenia"</string>
<string name="default_theme" msgid="4815428567082263639">"Wartość domyślna"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nazwa sieci"</string>
@@ -4818,8 +4835,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Wstrzymaj powiadomienia, by Cię nie rozpraszały"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funkcja niedostępna"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Ta funkcja została wyłączona, bo spowalnia działanie telefonu"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Wymuś pełną procedurę pomiarów GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Śledź wszystkie konstelacje GNSS i częstotliwości bez uwzględniania współczynnika impulsu"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Zawsze pokazuj okno dialogowe z raportem o błędzie"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Pokazuj okno dialogowe przy każdym poważnym błędzie w aplikacji"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Wybierz aplikację obsługującą ANGLE"</string>
@@ -4887,7 +4902,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Wł. (wyciszenie)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Wył."</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Szczegóły sieci"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Nazwa urządzenia jest widoczna dla aplikacji na telefonie. Mogą ją też zobaczyć inne osoby, gdy łączysz się z urządzeniami przez Bluetooth lub konfigurujesz hotspot Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Nazwa urządzenia jest widoczna dla aplikacji na telefonie. Mogą ją też zobaczyć inne osoby, gdy łączysz się z urządzeniami przez Bluetooth, łączysz się z siecią Wi-Fi lub konfigurujesz hotspot Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Urządzenia"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Wszystkie ustawienia"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Sugestie"</string>
@@ -5049,6 +5064,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nie można aktywować karty SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Wyjmij kartę SIM i włóż ją ponownie. Jeśli problem nie ustąpi, uruchom urządzenie ponownie."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Spróbuj ponownie włączyć kartę SIM. Jeśli problem nie ustąpi, uruchom urządzenie ponownie."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktywacja sieci"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Sieć <xliff:g id="CARRIER_NAME">%1$s</xliff:g> jest aktywna"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Kliknij, by zaktualizować ustawienia karty SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Karta SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Wykasować dane z tej pobranej karty SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Wykasowanie danych z tej karty SIM spowoduje usunięcie usługi <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> z tego urządzenia.\n\nUsługa dostarczana przez operatora <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> nie zostanie anulowana."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Skasuj"</string>
@@ -5205,9 +5224,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Połączenia przez Wi-Fi umożliwiają nawiązywanie i odbieranie połączeń w sieciach innych niż należące do operatorów, np. w niektórych sieciach Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Połączenia"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS-y"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferowane"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferowane połączenia"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferowane SMS-y"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"niedostępne"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Brak karty SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Ustawienia"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Łącz się z sieciami publicznymi"</string>
<string name="keywords_internet" msgid="7674082764898690310">"połączenie sieciowe, internet, bezprzewodowy, dane, Wi-Fi, wi-fi, wi fi, komórka, telefon, operator komórkowy, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Wyświetl sieci dostępne w trybie samolotowym"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Wyłącz tryb samolotowy"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Niedostępne, ponieważ włączony jest tryb snu"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Ukończono resetowanie ważności powiadomień."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikacje"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index fed0b60..c576d46 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Endereços IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes salvas"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Assinaturas"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Outras redes"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Configurações de IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"As configurações avançadas de Wi-Fi não estão disponíveis para esse usuário"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Salvar"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Excluir APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Novo APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Salvar"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Descartar"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"O campo Nome não pode ficar vazio."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"O APN não pode estar vazio."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet usado além do normal"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Dispositivo usado além do normal"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"A bateria pode acabar antes do esperado"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Bateria limitada temporariamente"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Ajuda a preservar a integridade da bateria. Toque para saber mais."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Bateria limitada temporariamente. Toque para saber mais."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"O smartphone foi usado além do normal. A bateria pode acabar antes do esperado.\n\nApps que mais usam bateria:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"O tablet foi usado além do normal. A bateria pode acabar antes do esperado.\n\nApps que mais usam bateria:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"O dispositivo foi usado além do normal. A bateria pode acabar antes do esperado.\n\nApps que mais usam bateria:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Não instalar"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalar assim mesmo"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificado não instalado"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Permitir que <xliff:g id="APP_NAME">%s</xliff:g> instale certificados neste dispositivo?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Estes certificados confirmarão sua identidade para os apps e URLs abaixo"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Não permitir"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Permitir"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Mostrar mais"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App de gerenc. de certificados"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nenhum"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Os certificados instalados por este app identificam você para os apps e URLs abaixo"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Remover"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Sinal de discagem de emergência"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Definir comportamento durante uma chamada de emergência"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Máximo de conjuntos de dados visíveis"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Redefinir para valores padrão"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"As opções do desenvolvedor de preenchimento automático foram redefinidas"</string>
+ <string name="location_category" msgid="3496759112306219062">"Local"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Indicador de local na barra de status"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Mostrar para todos os locais, incluindo rede e conectividade"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forçar medições completas de GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Rastrear todas as constelações e frequências do GNSS sem nenhum ciclo de trabalho"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema do dispositivo"</string>
<string name="default_theme" msgid="4815428567082263639">"Padrão"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nome da rede"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pausar notificações para manter o foco"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Recurso não disponível"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Esse recurso foi desativado porque causa lentidão no seu smartphone"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forçar medições completas de GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Rastrear todas as constelações e frequências do GNSS sem nenhum ciclo de trabalho"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Sempre mostrar a caixa de diálogo de falha"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Mostrar a caixa de diálogo sempre que um app falha"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Selecionar app ativado para ANGLE"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Ativado (silencioso)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Desativado"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalhes da rede"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"O nome do seu dispositivo está visível para os apps no seu smartphone. Ele também pode ser visto por outras pessoas quando você se conecta a dispositivos Bluetooth ou configura um ponto de acesso Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"O nome do seu dispositivo está visível para os apps no smartphone. Ele também pode ser visto por outras pessoas quando você se conecta a dispositivos Bluetooth ou a uma rede Wi-Fi ou quando configura um ponto de acesso Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Dispositivos"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Todas as configurações"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Sugestões"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Não foi possível ativar o chip"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Remova o chip e insira-o novamente. Se o problema continuar, reinicie o dispositivo."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Tente ativar o chip novamente. Se o problema continuar, reinicie o dispositivo."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ativação de rede"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"A operadora <xliff:g id="CARRIER_NAME">%1$s</xliff:g> está ativa"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Toque para atualizar as configurações do chip"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Chip"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Limpar este chip transferido por download?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"A limpeza do chip remove o serviço da <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> deste dispositivo.\n\nO serviço da <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> não será cancelado."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Limpar"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"A chamada no Wi-Fi permite que você faça e receba chamadas por redes sem operadora, como algumas redes Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Chamadas"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferido"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferido para chamadas"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferido para SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"indisponível"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Sem chip"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferências"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Conectar-se a redes públicas"</string>
<string name="keywords_internet" msgid="7674082764898690310">"conexão de rede, internet, sem fio, dados, wifi, wi-fi, wi fi, celular, rede móvel, operadora de celular, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Ver redes seguras para aviões"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Desativar o modo avião"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Indisponível durante o Modo noite"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Redefinição da importância de notificações concluída."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index f102ba6..9831abc 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Endereços IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes guardadas"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Subscrições"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Outras redes"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Definições de IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"As definições avançadas de Wi-Fi não estão disponíveis para este utilizador"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Guardar"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Eliminar APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Novo APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Guardar"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Rejeitar"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"O campo Nome não pode estar vazio."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"O APN não pode estar vazio."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet utilizado mais do que o habitual"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Dispositivo utilizado mais do que o habitual"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Pode ficar sem bateria mais cedo do que o habitual."</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Bateria limitada temporariamente"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Ajuda a preservar o estado da bateria. Toque para saber mais."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Bateria limitada temporariamente. Toque para saber mais."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"O seu telemóvel tem sido utilizado com mais frequência do que o habitual. A bateria pode esgotar-se mais cedo do que o esperado.\n\nPrincipais aplicações por utilização da bateria:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"O seu tablet tem sido utilizado com mais frequência do que o habitual. A bateria pode esgotar-se mais cedo do que o esperado.\n\nPrincipais aplicações por utilização da bateria:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"O seu dispositivo tem sido utilizado com mais frequência do que o habitual. A bateria pode esgotar-se mais cedo do que o esperado.\n\nPrincipais aplicações por utilização da bateria:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Não instalar"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalar mesmo assim"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificado não instalado."</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Pretende permitir que a app <xliff:g id="APP_NAME">%s</xliff:g> instale certificados neste dispositivo?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Estes certificados vão validar a sua identidade juntos das apps e URLs abaixo"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Não permitir"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Permitir"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Mostrar mais"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App de gestão de certificados"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nenhuma"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Os certificados instalados por esta app fazem a sua identificação juntos dos seguintes URLs e apps"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Remover"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Sinal para marcação de emergência"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Definir o comportamento quando é efetuada uma chamada de emergência"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Cópia de segurança"</string>
@@ -3021,12 +3030,12 @@
<item quantity="one">Confiar ou remover o certificado</item>
</plurals>
<plurals name="ssl_ca_cert_info_message_device_owner" formatted="false" msgid="2788832560436163252">
- <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> instalou autoridades de certificação no seu dispositivo que podem permitir monitorizar a atividade na rede do dispositivo, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações acerca destes certificados, contacte o gestor.</item>
- <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> instalou uma autoridade de certificação no seu dispositivo que pode permitir monitorizar a atividade na rede do dispositivo, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações acerca deste certificado, contacte o gestor.</item>
+ <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> instalou autoridades de certificação no seu dispositivo que podem permitir monitorizar a atividade na rede do dispositivo, incluindo emails, aplicações e Websites seguros.\n\nPara mais informações acerca destes certificados, contacte o gestor.</item>
+ <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> instalou uma autoridade de certificação no seu dispositivo que pode permitir monitorizar a atividade na rede do dispositivo, incluindo emails, aplicações e Websites seguros.\n\nPara mais informações acerca deste certificado, contacte o gestor.</item>
</plurals>
<plurals name="ssl_ca_cert_info_message" formatted="false" msgid="3989916958347169622">
- <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> instalou autoridades de certificação para o seu perfil de trabalho que podem permitir monitorizar a atividade na rede de trabalho, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações acerca destes certificados, contacte o gestor.</item>
- <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> instalou uma autoridade de certificação para o seu perfil de trabalho que pode permitir monitorizar a atividade na rede de trabalho, incluindo emails, aplicações e Websites seguros.\n\nPara obter mais informações acerca deste certificado, contacte o gestor.</item>
+ <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> instalou autoridades de certificação para o seu perfil de trabalho que podem permitir monitorizar a atividade na rede de trabalho, incluindo emails, aplicações e Websites seguros.\n\nPara mais informações acerca destes certificados, contacte o gestor.</item>
+ <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> instalou uma autoridade de certificação para o seu perfil de trabalho que pode permitir monitorizar a atividade na rede de trabalho, incluindo emails, aplicações e Websites seguros.\n\nPara mais informações acerca deste certificado, contacte o gestor.</item>
</plurals>
<string name="ssl_ca_cert_warning_message" msgid="4374052724815563051">"A sua atividade de rede, incluindo emails, aplicações e Sites seguros, pode ser monitorizada por terceiros.\n\nIsto é possível através de uma credencial fidedigna instalada no seu dispositivo."</string>
<plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="125941406175485894">
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Número máx. de conjuntos de dados visíveis"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Repor os valores predefinidos"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"As opções de preenchimento automático do programador foram repostas."</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forçar medições de GNSS completas"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Monitorizar todas as constelações e frequências de GNSS sem ciclos"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema do dispositivo"</string>
<string name="default_theme" msgid="4815428567082263639">"Predefinição"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nome da rede"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Coloque as notificações em pausa para se manter concentrado."</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funcionalidade não disponível."</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Esta funcionalidade foi desativada porque torna o seu telemóvel lento."</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forçar medições de GNSS completas"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Monitorizar todas as constelações e frequências de GNSS sem ciclos"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Mostrar sempre a caixa de diálogo de falhas"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Mostrar a caixa de diálogo sempre que uma aplicação falhar"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Selecionar aplicação compatível com o ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Ativar (desativar som)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Desativar"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalhes da rede"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"O nome do seu dispositivo é visível para as aplicações do telemóvel. Também pode ser visto por outras pessoas quando se liga a dispositivos Bluetooth ou configura uma zona Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"O nome do seu dispositivo é visível para as apps do telemóvel. Também pode ser visto por outras pessoas quando se liga a dispositivos Bluetooth ou a uma rede Wi-Fi, assim como quando configura uma zona Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Dispositivos"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Todas as definições"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Sugestões"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Não é possível ativar o SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Remova o SIM e insira-o novamente. Se o problema continuar, reinicie o dispositivo."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Experimente ativar o SIM novamente. Se o problema continuar, reinicie o dispositivo."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ativação da rede"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"O operador <xliff:g id="CARRIER_NAME">%1$s</xliff:g> está ativo"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Toque para atualizar as definições do SIM."</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Cartão SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Pretende apagar este SIM transferido?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Se apagar este SIM, o serviço do operador <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> será removido deste dispositivo.\n\nO serviço do operador <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> não é cancelado."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Apagar"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"As Chamadas Wi-Fi permitem-lhe fazer e receber chamadas através de redes sem operador móvel, tais como algumas redes Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Chamadas"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferidas"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"chamadas preferidas"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"mensagens SMS preferidas"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"indisponíveis"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"sem cartão SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferências"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Ligar a redes públicas"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ligação de rede, internet, sem fios, dados, wifi, wi-fi, wi fi, telemóvel, dispositivo móvel, operador de telemóvel, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Ver as redes seguras para aviões"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Desativar o modo de avião"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Não disponível porque o modo de hora de dormir está ativado."</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Reposição da importância das notificações concluída."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index fed0b60..c576d46 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Endereços IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Redes salvas"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Assinaturas"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Outras redes"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Configurações de IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"As configurações avançadas de Wi-Fi não estão disponíveis para esse usuário"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Salvar"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Excluir APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Novo APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Salvar"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Descartar"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Cancelar"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"O campo Nome não pode ficar vazio."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"O APN não pode estar vazio."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet usado além do normal"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Dispositivo usado além do normal"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"A bateria pode acabar antes do esperado"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Bateria limitada temporariamente"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Ajuda a preservar a integridade da bateria. Toque para saber mais."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Bateria limitada temporariamente. Toque para saber mais."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"O smartphone foi usado além do normal. A bateria pode acabar antes do esperado.\n\nApps que mais usam bateria:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"O tablet foi usado além do normal. A bateria pode acabar antes do esperado.\n\nApps que mais usam bateria:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"O dispositivo foi usado além do normal. A bateria pode acabar antes do esperado.\n\nApps que mais usam bateria:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Não instalar"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalar assim mesmo"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificado não instalado"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Permitir que <xliff:g id="APP_NAME">%s</xliff:g> instale certificados neste dispositivo?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Estes certificados confirmarão sua identidade para os apps e URLs abaixo"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Não permitir"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Permitir"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Mostrar mais"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App de gerenc. de certificados"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Nenhum"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Os certificados instalados por este app identificam você para os apps e URLs abaixo"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Remover"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Sinal de discagem de emergência"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Definir comportamento durante uma chamada de emergência"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Máximo de conjuntos de dados visíveis"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Redefinir para valores padrão"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"As opções do desenvolvedor de preenchimento automático foram redefinidas"</string>
+ <string name="location_category" msgid="3496759112306219062">"Local"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Indicador de local na barra de status"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Mostrar para todos os locais, incluindo rede e conectividade"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forçar medições completas de GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Rastrear todas as constelações e frequências do GNSS sem nenhum ciclo de trabalho"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema do dispositivo"</string>
<string name="default_theme" msgid="4815428567082263639">"Padrão"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nome da rede"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pausar notificações para manter o foco"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Recurso não disponível"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Esse recurso foi desativado porque causa lentidão no seu smartphone"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forçar medições completas de GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Rastrear todas as constelações e frequências do GNSS sem nenhum ciclo de trabalho"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Sempre mostrar a caixa de diálogo de falha"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Mostrar a caixa de diálogo sempre que um app falha"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Selecionar app ativado para ANGLE"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Ativado (silencioso)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Desativado"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalhes da rede"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"O nome do seu dispositivo está visível para os apps no seu smartphone. Ele também pode ser visto por outras pessoas quando você se conecta a dispositivos Bluetooth ou configura um ponto de acesso Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"O nome do seu dispositivo está visível para os apps no smartphone. Ele também pode ser visto por outras pessoas quando você se conecta a dispositivos Bluetooth ou a uma rede Wi-Fi ou quando configura um ponto de acesso Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Dispositivos"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Todas as configurações"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Sugestões"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Não foi possível ativar o chip"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Remova o chip e insira-o novamente. Se o problema continuar, reinicie o dispositivo."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Tente ativar o chip novamente. Se o problema continuar, reinicie o dispositivo."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ativação de rede"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"A operadora <xliff:g id="CARRIER_NAME">%1$s</xliff:g> está ativa"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Toque para atualizar as configurações do chip"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Chip"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Limpar este chip transferido por download?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"A limpeza do chip remove o serviço da <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> deste dispositivo.\n\nO serviço da <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> não será cancelado."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Limpar"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"A chamada no Wi-Fi permite que você faça e receba chamadas por redes sem operadora, como algumas redes Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Chamadas"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferido"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferido para chamadas"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferido para SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"indisponível"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Sem chip"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferências"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Conectar-se a redes públicas"</string>
<string name="keywords_internet" msgid="7674082764898690310">"conexão de rede, internet, sem fio, dados, wifi, wi-fi, wi fi, celular, rede móvel, operadora de celular, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Ver redes seguras para aviões"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Desativar o modo avião"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Indisponível durante o Modo noite"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Redefinição da importância de notificações concluída."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Apps"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 629e3f5..2b054e1 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -1042,8 +1042,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Adrese IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Rețele salvate"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonamente"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Alte rețele"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Setări IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Setările avansate de Wi‑Fi nu sunt disponibile pentru acest utilizator"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Salvați"</string>
@@ -1618,7 +1617,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Ștergeți APN"</string>
<string name="menu_new" msgid="6571230342655509006">"APN nou"</string>
<string name="menu_save" msgid="6611465355127483100">"Salvați"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Renunțați"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Anulați"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Câmpul Nume nu poate fi necompletat."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Numele APN nu poate fi necompletat."</string>
@@ -2487,8 +2486,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tabletă folosită mai mult decât de obicei"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Dispozitiv folosit mai mult decât de obicei"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Bateria se poate descărca mai repede decât de obicei"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Baterie limitată temporar"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Contribuie la menținerea bunei funcționări a bateriei. Atingeți ca să aflați mai multe."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Baterie limitată temporar. Atingeți ca să aflați mai multe."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefonul dvs. a fost folosit mai mult decât de obicei. Este posibil ca bateria să se descarce mai repede decât vă așteptați.\n\nAplicațiile care folosesc bateria cel mai mult:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tableta a fost folosită mai mult decât de obicei. Este posibil ca bateria să se descarce mai repede decât vă așteptați.\n\nAplicațiile care folosesc bateria cel mai mult:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Dispozitivul dvs. a fost folosit mai mult decât de obicei. Este posibil ca bateria să se descarce mai repede decât vă așteptați.\n\nAplicațiile care folosesc bateria cel mai mult:"</string>
@@ -2761,6 +2761,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Nu instalați"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalați oricum"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certificatul nu a fost instalat"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Permiteți ca <xliff:g id="APP_NAME">%s</xliff:g> să instaleze certificate pe acest dispozitiv?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Aceste certificate vă vor identifica pentru aplicațiile și adresele URL de mai jos"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Nu permiteți"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Permiteți"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Afișați mai multe"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Aplicație de gestionare a certificatelor"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Niciuna"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certificatele instalate de această aplicație vă vor identifica pentru aplicațiile și adresele URL de mai jos"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Eliminați"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Semnal pentru apel de urgență"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Setați comportamentul la efectuarea unui apel de urgență"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
@@ -4722,6 +4731,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Seturi de date cu vizibilitate maximă"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Resetați la valorile prestabilite"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Opțiunile dezvoltatorului de completare automată au fost resetate"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forțați măsurători GNSS complete"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Urmăriți toate constelațiile și frecvențele GNSS fără ciclu de funcționare"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema dispozitivului"</string>
<string name="default_theme" msgid="4815428567082263639">"Prestabilită"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Numele rețelei"</string>
@@ -4738,8 +4755,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Întrerupeți notificările pentru a vă păstra concentrarea"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funcție indisponibilă"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Această funcție a fost dezactivată deoarece vă încetinește telefonul"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Forțați măsurători GNSS complete"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Urmăriți toate constelațiile și frecvențele GNSS fără ciclu de funcționare"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Afișați întotdeauna caseta de dialog pentru blocări"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Afișați caseta de dialog de fiecare dată când se blochează o aplicație"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Selectați aplicația compatibilă cu ANGLE"</string>
@@ -4807,7 +4822,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Activată (sunet dezactivat)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Dezactivată"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detalii despre rețea"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Numele dispozitivului este vizibil aplicațiilor de pe telefon. Poate fi văzut și de alte persoane când vă conectați la dispozitivele Bluetooth sau configurați un hotspot Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Numele dispozitivului este vizibil pentru aplicațiile de pe telefon. Poate fi văzut și de alte persoane când vă conectați la dispozitivele Bluetooth sau la o rețea Wi-Fi sau când configurați un hotspot Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Dispozitive"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Toate setările"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Sugestii"</string>
@@ -4968,6 +4983,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Nu se poate activa SIM-ul"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Scoateți SIM-ul și introduceți-l din nou. Dacă problema persistă, reporniți dispozitivul."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Încercați din nou să activați SIM-ul. Dacă problema persistă, reporniți dispozitivul."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Activarea rețelei"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> este activ"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Atingeți pentru a actualiza setările SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Card SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Ștergeți acest SIM descărcat?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Dacă ștergeți acest SIM, veți elimina serviciul <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> de pe acest dispozitiv.\n\nServiciile <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> nu vor fi anulate."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Ștergeți"</string>
@@ -5122,9 +5141,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Cu ajutorul apelării prin Wi-Fi, puteți să inițiați și să primiți apeluri prin rețele diferite de cele de operator, cum ar fi rețelele Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Apeluri"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferate"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"apeluri preferate"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS-uri preferate"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"indisponibile"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Niciun card SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferințe"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Conectați-vă la rețele publice"</string>
<string name="keywords_internet" msgid="7674082764898690310">"conexiune la rețea, internet, wireless, date, wifi, wi-fi, wi fi, celular, mobil, operator servicii mobile, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Vedeți rețelele sigure pentru avioane"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Dezactivați modul Avion"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Indisponibil deoarece modul ora de culcare este activat"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"S-a finalizat resetarea importanței notificărilor."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplicații"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index b82088e..886a6db 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -1062,8 +1062,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-адреса"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Сохраненные сети"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Подписки"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Другие сети"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Настройки IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Расширенные настройки Wi‑Fi недоступны для этого пользователя"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Сохранить"</string>
@@ -1639,7 +1638,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Удалить APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Новая точка доступа"</string>
<string name="menu_save" msgid="6611465355127483100">"Сохранить"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Отменить"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Отмена"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Необходимо указать имя."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Необходимо указать APN."</string>
@@ -2518,8 +2517,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Планшет используется больше, чем обычно"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Устройство используется больше, чем обычно"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Заряд батареи расходуется быстрее, чем обычно"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Уровень заряда временно ограничен"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Эта функция помогает увеличить срок службы батареи. Нажмите, чтобы узнать подробности."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Уровень заряда временно ограничен. Нажмите, чтобы узнать подробности."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Телефон используется интенсивнее, чем обычно. Из-за этого батарея может разрядиться быстрее.\n\nПриложения с самым высоким энергопотреблением:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Планшет используется интенсивнее, чем обычно. Из-за этого батарея может разрядиться быстрее.\n\nПриложения с самым высоким энергопотреблением:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Устройство используется интенсивнее, чем обычно. Из-за этого батарея может разрядиться быстрее.\n\nПриложения с самым высоким энергопотреблением:"</string>
@@ -2799,6 +2799,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Не устанавливать"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Все равно установить"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Сертификат не установлен."</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Разрешить приложению \"<xliff:g id="APP_NAME">%s</xliff:g>\" устанавливать сертификаты на этом устройстве?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"С помощью этих сертификатов перечисленные ниже приложения и веб-страницы будут идентифицировать вас."</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Запретить"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Разрешить"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Показать больше"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Приложение для управления сертификатами"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Нет"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Сертификаты, установленные с помощью этого приложения, позволят перечисленным ниже приложениям и веб-страницам идентифицировать вас"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Удалить"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал набора номера при экстренных вызовах"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Настроить режим работы при экстренном вызове"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Резервное копирование"</string>
@@ -4802,6 +4811,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Максимальное количество видимых наборов данных"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Восстановить значения по умолчанию"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Настройки автозаполнения для разработчиков сброшены"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Полные измерения GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Отслеживать все группировки GNSS и частоты без рабочего цикла"</string>
<string name="device_theme" msgid="5027604586494772471">"Тема устройства"</string>
<string name="default_theme" msgid="4815428567082263639">"По умолчанию"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Название сети"</string>
@@ -4818,8 +4835,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Заблокируйте отвлекающие уведомления"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Функция недоступна"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Эта функция отключена, поскольку она замедляет работу телефона."</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Полные измерения GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Отслеживать все группировки GNSS и частоты без рабочего цикла"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Всегда показывать сообщение об ошибке"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Показывать диалог при каждом сбое приложения"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Выбрать приложение с поддержкой ANGLE"</string>
@@ -4887,7 +4902,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Включено (без звука)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Выключено"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Сведения о сети"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"У приложений на телефоне есть доступ к названию устройства. Его могут видеть другие пользователи, когда вы подключаетесь к устройствам по Bluetooth или настраиваете точку доступа Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"У приложений на телефоне есть доступ к названию устройства. Его могут видеть другие пользователи, когда вы подключаетесь к устройствам по Bluetooth или настраиваете точку доступа Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Устройства"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Все настройки"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Подсказки"</string>
@@ -5049,6 +5064,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Не удалось активировать SIM-карту"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Извлеките и снова вставьте SIM-карту. Если проблема не исчезнет, перезапустите устройство."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Попробуйте включить SIM-карту ещё раз. Если проблема не исчезнет, перезапустите устройство."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активация сети"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Сеть \"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>\" активна"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Нажмите, чтобы обновить настройки SIM-карты."</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-карта"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Удалить данные скачанной SIM-карты?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Если вы удалите данные этой SIM-карты, оператор \"<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>\" перестанет обслуживать устройство.\n\nЭто не повлияет на тарифный план оператора \"<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>\"."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Удалить"</string>
@@ -5205,9 +5224,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Благодаря функции \"Звонки по Wi-Fi\" вы можете совершать и принимать вызовы через некоторые сети Wi-Fi, а не операторов связи."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Звонки"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"Предпочтительно"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"Предпочтительно звонки"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"Предпочтительно SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"Недоступно"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Нет SIM-карты"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Настройки"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Подключаться к общедоступным сетям"</string>
<string name="keywords_internet" msgid="7674082764898690310">"сетевое подключение, Интернет, беспроводная сеть, передача данных, Wi-Fi, wifi, wi fi, сотовая сеть, мобильный Интернет, сотовый оператор, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Показать сети, безопасные в самолете"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Отключить режим полета"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Недоступно в ночном режиме"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Сброс настроек важности выполнен."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Приложения"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index dfb99ae..1019035 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 ලිපින"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"සුරකින ලද ජාල"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"දායකත්ව"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"වෙනත් ජාල"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP සැකසීම්"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"මෙම පරිශීලකයා සඳහා Wi‑Fi උසස් සැකසීම් නැත"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"සුරකින්න"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN මකන්න"</string>
<string name="menu_new" msgid="6571230342655509006">"නව APN"</string>
<string name="menu_save" msgid="6611465355127483100">"සුරකින්න"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"ඉවත ලන්න"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"අවලංගු කරන්න"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"නම ක්ෂේත්රය හිස් විය නොහැක."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN හිස් විය නොහැක."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ටැබ්ලට් උපාංගය සාමාන්යයට වඩා වැඩියෙන් භාවිත කර ඇත"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"උපාංගය සාමාන්යයට වඩා වැඩියෙන් භාවිත කර ඇත"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"බැටරිය සාමාන්යයට වඩා කලින් අවසන් විය හැක"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"බැටරිය තාවකාලිකව සීමිතයි"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"බැටරි සෞඛ්යය රැක ගැනීමට උදව් වේ. තව දැන ගැනීමට තට්ටු කරන්න."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"බැටරිය තාවකාලිකව සීමිතයි. තව දැන ගැනීමට තට්ටු කරන්න."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"ඔබේ දුරකථනය සාමාන්යයට වඩා වැඩිපුර භාවිත කර ඇත. ඔබගේ බැටරිය බලාපොරොත්තු වූවාට වඩා ඉක්මනින් අවසන් විය හැක.\n\nබැටරි භාවිතයට අනුව ඉහළම යෙදුම්:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"ඔබේ ටැබ්ලටය සාමාන්යයට වඩා වැඩිපුර භාවිත කර ඇත. ඔබගේ බැටරිය බලාපොරොත්තු වූවාට වඩා ඉක්මනින් අවසන් විය හැක.\n\nබැටරි භාවිතයට අනුව ඉහළම යෙදුම්:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"ඔබේ උපාංගය සාමාන්යයට වඩා වැඩිපුර භාවිත කර ඇත. ඔබගේ බැටරිය බලාපොරොත්තු වූවාට වඩා ඉක්මනින් අවසන් විය හැක.\n\nබැටරි භාවිතයට අනුව ඉහළම යෙදුම්:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ස්ථාපනය නොකරන්න"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"කෙසේ වෙතත් ස්ථාපනය කරන්න"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"සහතිකය ස්ථාපනය කර නැත"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g> හට මෙම උපාංගයේ සහතික ස්ථාපනය කිරීමට ඉඩ දෙන්නද?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"මෙම සහතික ඔබව පහත යෙදුම් සහ URL වෙත හඳුනා ගනු ඇත"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"ඉඩ දෙන්න එපා"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"ඉඩ දෙන්න"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"තව පෙන්වන්න"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"සහතික කළමනාකරණ යෙදුම"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"කිසිවක් නැත"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"මෙම යෙදුම මඟින් ස්ථාපනය කර ඇති සහතික පහත යෙදුම් සහ URL සඳහා ඔබව හඳුනා ගනී"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"ඉවත් කරන්න"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"හදිසි අවස්ථා ඩයල් කිරීමේ සංඥාව"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"හදිසි ඇමතුමක් ලැබුණ විට හැසිරීම සකසන්න"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"උපස්ථය"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"උපරිම දෘශ්යමාන දත්ත කට්ටල"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"පෙරනිමි අගයන්ට යළි සකසන්න"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"ස්වයං පිරවුම් සංවර්ධක විකල්ප යළි සකසා ඇත"</string>
+ <string name="location_category" msgid="3496759112306219062">"ස්ථානය"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"තත්ත්ව තීරු ස්ථාන දර්ශකය"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"ජාලය සහ සබැඳුම් හැකියාව ඇතුළුව, සියලු ස්ථාන සඳහා පෙන්වන්න"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"සම්පූර්ණ GNSS මිනුම් බලාත්මක කරන්න"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"කාර්ය චක්රය රහිත සියලු GNSS සබැඳි තාරකා ගෝල සහ සංඛ්යාත"</string>
<string name="device_theme" msgid="5027604586494772471">"උපාංග තේමාව"</string>
<string name="default_theme" msgid="4815428567082263639">"පෙරනිමි"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ජාල නම"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"අවධානය යොමු කිරීම සඳහා දැනුම්දීම් විරාම කරන්න"</string>
<string name="disabled_feature" msgid="7151433782819744211">"විශේෂාංගය නොලැබේ"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"මෙම විශේෂාංගය ඔබේ දුරකථනය මන්දගාමී කරන බැවින් මෙය අක්රිය කර ඇත"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"සම්පූර්ණ GNSS මිනුම් බලාත්මක කරන්න"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"කාර්ය චක්රය රහිත සියලු GNSS සබැඳි තාරකා ගෝල සහ සංඛ්යාත"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"බිඳ වැටීම් සංවාදය සැම විට පෙන්වන්න"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"යෙදුමක් බිඳ වැටෙන සෑම විටම සංවාදය පෙන්වන්න"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE සබල යෙදුමක් තෝරන්න"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ක්රියාත්මකයි (නිහඬ)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ක්රියාවිරහිතයි"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"ජාල විස්තර"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"ඔබගේ උපාංගයේ නම ඔබගේ දුරකථනයේ යෙදුම්වලට දෘශ්යමානය. ඔබ බ්ලූටූත්වලට සම්බන්ධ වූ විට හෝ Wi-Fi හොට්ස්පොට් එකක් පිහිට වූ විට වෙනත් පුද්ගලයන්ද එය දැකිය හැකිය."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"ඔබගේ උපාංගයේ නම ඔබගේ දුරකථනයේ යෙදුම්වලට දෘශ්යමානය. ඔබ බ්ලූටූත්වලට සම්බන්ධ වූ විට හෝ Wi-Fi හොට්ස්පොට් එකක් පිහිටු වූ විට වෙනත් පුද්ගලයන්ද එය දැකිය හැකිය."</string>
<string name="devices_title" msgid="649715719278562515">"උපාංග"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"සියලු සැකසීම්"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"යෝජනා"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM එක සක්රිය කිරීමට නොහැකිය"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM එක ඉවත් කර එය නැවත ඇතුළු කරන්න. ප්රශ්නය දිගටම පැවතුණහොත්, ඔබේ උපාංගය යළි ආරම්භ කරන්න."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"නැවත SIM එක ක්රියාත්මක කිරීමට උත්සාහ කරන්න. ප්රශ්නය දිගටම පැවතුණහොත්, ඔබේ උපාංගය යළි ආරම්භ කරන්න."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"ජාල සක්රිය කිරීම"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> සක්රියයි"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM සැකසීම් යාවත්කාලීන කිරීමට තට්ටු කරන්න"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM කාඩ්පත"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"මෙම බාගත් SIM මකන්නද?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"මෙම SIM මැකීමෙන් මෙම උපාංගයෙන් <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> සේවාව ඉවත් කරයි.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> සඳහා වන සේවාව අවලංගු නොකෙරේ."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"මකන්න"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"සමහර Wi-Fi ජාල වැනි වාහක නොවන ජාල හරහා ඇමතුම් ලබා ගැනීමට සහ ලැබීමට Wi-Fi ඇමතීම ඔබට ඉඩ දෙයි."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"ඇමතුම්"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"වඩා කැමති"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"වඩා කැමති ඇමතුම්"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"වඩා කැමති SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ලබා ගත නොහැකිය"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM නැත"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"මනාප"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"පොදු ජාලයකට සම්බන්ධ වන්න"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ජාල සම්බන්ධතාව, අන්තර්ජාලය, රැහැන් රහිත, දත්ත, wifi, wi-fi, wi fi, සෙලියුලර්, ජංගම, සෙල් වාහක, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"ගුවන් යානා-ආරක්ෂිත ජාල බලන්න"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"ගුවන් යානා ප්රකාරය ක්රියාවිරහිත කරන්න"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"නිද්රා කාල ප්රකාරය ක්රියාත්මක නිසා ලබා ගත නොහැකිය"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"දැනුම්දීම්වල වැදගත්කම යළි සැකසීම සම්පූර්ණ කරන ලදි."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"යෙදුම්"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 3b73ea5..77ae3a4 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -1062,8 +1062,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Adresy IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Uložené siete"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Odbery"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Ostatné siete"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Nastavenia adresy IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Rozšírené nastavenia Wi‑Fi nie sú pre tohto používateľa dostupné"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Uložiť"</string>
@@ -1479,8 +1478,8 @@
<string name="dlg_confirm_unmount_text" product="default" msgid="3887768438615563697">"Ak odpojíte SD kartu, niektoré používané aplikácie môžu byť zastavené a nebudú k dispozícii, kým SD kartu znova nepripojíte."</string>
<string name="dlg_error_unmount_title" product="nosdcard" msgid="2205587942165199845"></string>
<string name="dlg_error_unmount_title" product="default" msgid="2205587942165199845"></string>
- <string name="dlg_error_unmount_text" product="nosdcard" msgid="7876201891724279436">"Úložisko USB sa nepodarilo odpojiť. Skúste to znova neskôr."</string>
- <string name="dlg_error_unmount_text" product="default" msgid="2185659901137961711">"SD kartu sa nepodarilo odpojiť. Skúste to znova neskôr."</string>
+ <string name="dlg_error_unmount_text" product="nosdcard" msgid="7876201891724279436">"Úložisko USB sa nepodarilo odpojiť. Skúste to neskôr."</string>
+ <string name="dlg_error_unmount_text" product="default" msgid="2185659901137961711">"SD kartu sa nepodarilo odpojiť. Skúste to neskôr."</string>
<string name="unmount_inform_text" product="nosdcard" msgid="5932607205977999175">"Ukladací priestor USB bude odpojený."</string>
<string name="unmount_inform_text" product="default" msgid="716578785262713312">"SD karta bude odpojená."</string>
<string name="sd_ejecting_title" msgid="1641122369013595273">"Odpájanie"</string>
@@ -1639,7 +1638,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Odstrániť názov prístupového bodu (APN)"</string>
<string name="menu_new" msgid="6571230342655509006">"Nový prístupový bod"</string>
<string name="menu_save" msgid="6611465355127483100">"Uložiť"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Zahodiť"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Zrušiť"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Pole Meno nemôže byť prázdne."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Názov prístupového bodu (APN) nemôže byť prázdny."</string>
@@ -2518,8 +2517,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet bol používaný viac ako obvykle"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Zariadenie bolo používané viac ako obvykle"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Batéria sa môže vybiť skôr ako obvykle"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batéria je dočasne obmedzená"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Pomáha udržiavať dobrý stav batérie. Viac sa dozviete po klepnutí."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batéria je dočasne obmedzená. Viac sa dozviete po klepnutí."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefón sa používa viac ako obvykle. Batéria sa možno vybije skôr, ako sa očakávalo.\n\nAplikácie s najväčšou spotrebou batérie:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tablet sa používa viac ako obvykle. Batéria sa možno vybije skôr, ako sa očakávalo.\n\nAplikácie s najväčšou spotrebou batérie:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Zariadenie sa používa viac ako obvykle. Batéria sa možno vybije skôr, ako sa očakávalo.\n\nAplikácie s najväčšou spotrebou batérie:"</string>
@@ -2799,6 +2799,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Neinštalovať"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Inštalovať aj tak"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certifikát nie je nainštalovaný"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Chcete aplikácii <xliff:g id="APP_NAME">%s</xliff:g> povoliť inštalovať certifikáty v tomto zariadení?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Tieto certifikáty vás identifikujú aplikáciám a webovým adresám uvedeným nižšie"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Nepovoliť"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Povoliť"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Zobraziť viac"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Aplik. na správu certifikátov"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Žiadne"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certifikáty nainštalované touto aplikáciou vás identifikujú pre aplikácie a webové adresy uvedené nižšie"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Odstrániť"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signál núdzového vytáčania"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Nastaviť správanie pri tiesňovom volaní"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Zálohovanie"</string>
@@ -3063,7 +3072,7 @@
<string name="vpn_lockdown_summary" msgid="4700625960550559029">"Vyberte profil VPN, ku ktorému chcete mať vždy pripojenie. Sieťová premávka bude povolená len v prípade pripojenia k tejto sieti VPN."</string>
<string name="vpn_lockdown_none" msgid="455915403560910517">"Žiadna"</string>
<string name="vpn_lockdown_config_error" msgid="1992071316416371316">"Vždy zapnutá sieť VPN vyžaduje adresu IP pre server aj DNS."</string>
- <string name="vpn_no_network" msgid="7187593680049843763">"Nie je k dispozícii žiadne sieťové pripojenie. Skúste to znova neskôr."</string>
+ <string name="vpn_no_network" msgid="7187593680049843763">"Nie je k dispozícii žiadne sieťové pripojenie. Skúste to neskôr."</string>
<string name="vpn_disconnected" msgid="7694522069957717501">"Odpojiť od siete VPN"</string>
<string name="vpn_disconnected_summary" msgid="721699709491697712">"Žiadne"</string>
<string name="vpn_missing_cert" msgid="5397309964971068272">"Chýba certifikát. Skúste upraviť profil."</string>
@@ -4802,6 +4811,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max. viditeľných množín dát"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Resetovať na predvolené hodnoty"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Možnosti automatického dopĺňania pre vývojárov boli obnovené"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Vynútiť úplné meranie GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Sledovať všetky konštelácie a frekvencie GNSS bez cyklického vypínania a zapínania"</string>
<string name="device_theme" msgid="5027604586494772471">"Motív zariadenia"</string>
<string name="default_theme" msgid="4815428567082263639">"Predvolený"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Názov siete"</string>
@@ -4818,8 +4835,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pozastavte upozornenia, aby ste sa mohli sústrediť"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funkcia nie je k dispozícii"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Táto funkcia bola vypnutá, pretože spomaľuje telefón"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Vynútiť úplné meranie GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Sledovať všetky konštelácie a frekvencie GNSS bez cyklického vypínania a zapínania"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Vždy zobrazovať dialógové okno zlyhania"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Zobraziť dialógové okno pri každom zlyhaní aplikácie"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Vybrať aplikáciu podporujúcu ANGLE"</string>
@@ -4887,7 +4902,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Zapnuté (stlmené)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Vypnuté"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Podrobnosti siete"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Názov zariadenia je viditeľný pre aplikácie v telefóne. Môže sa zobrazovať aj ostatným používateľom po pripojení k zariadeniu Bluetooth alebo nastavení hotspotu Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Názov zariadenia uvidia aplikácie v telefóne. Keď sa pripojíte k zariadeniam s rozhraním Bluetooth alebo sieti Wi‑Fi, prípadne ak nastavíte hotspot Wi‑Fi, môžu ho uvidieť aj ostatní ľudia."</string>
<string name="devices_title" msgid="649715719278562515">"Zariadenia"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Všetky nastavenia"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Návrhy"</string>
@@ -4950,7 +4965,7 @@
<string name="load_networks_progress" msgid="4717874401621250401">"Hľadá sa…"</string>
<string name="register_on_network" msgid="2169662800750709709">"Prebieha registrácia v sieti <xliff:g id="NETWORK">%s</xliff:g>…"</string>
<string name="not_allowed" msgid="5756935665192962915">"Vaša SIM karta nepovoľuje pripojenie k tejto sieti."</string>
- <string name="connect_later" msgid="2330538069949281352">"V tejto chvíli sa nedá pripojiť k sieti. Skúste to znova neskôr."</string>
+ <string name="connect_later" msgid="2330538069949281352">"V tejto chvíli sa nedá pripojiť k sieti. Skúste to neskôr."</string>
<string name="registration_done" msgid="1750434215698850123">"Prihlásenie k sieti prebehlo úspešne."</string>
<string name="select_automatically" msgid="2419752566747259155">"Vybrať sieť automaticky"</string>
<string name="carrier_settings_title" msgid="6959295328730560529">"Nastavenia operátora"</string>
@@ -5049,6 +5064,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM kartu sa nepodarilo aktivovať"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Vyberte SIM kartu a znova ju vložte. Ak bude problém pretrvávať, reštartujte zariadenie."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Skúste SIM kartu znova zapnúť. Ak bude problém pretrvávať, reštartujte zariadenie."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivácia siete"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operátor <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktívny"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Klepnutím aktualizujete nastavenia SIM karty"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM karta"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Chcete vymazať túto stiahnutú SIM kartu?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Vymazaním tejto SIM karty odstránite službu operátora <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> z tohto zariadenia.\n\nSlužba operátora <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> sa nezruší."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Vymazať"</string>
@@ -5205,9 +5224,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Volanie cez Wi‑Fi vám umožňuje volať a prijímať hovory cez siete bez operátora, ako sú niektoré siete Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Hovory"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferované"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferujú sa hovory"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferujú sa správy SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"nie je k dispozícii"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Žiadna SIM karta"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Predvoľby"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Pripájať k verejným sieťam"</string>
<string name="keywords_internet" msgid="7674082764898690310">"pripojenie k sieti, internet, bezdrôtové, dátové, wifi, wi-fi, wi fi, mobilné, mobilný operátor, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Zobraziť siete bezpečné v lietadle"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Vypnúť režim v lietadle"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nedostupné, pretože je zapnutý režim večierky"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Resetovanie dôležitosti upozornenia je dokončené."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikácie"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 7be40e9..fef287c 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -1062,8 +1062,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Naslovi IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Shranjena omrežja"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Naročnine"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Druga omrežja"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Nastavitve nasl. IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Dodatne nastavitve za Wi-Fi temu uporabniku niso na voljo"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Shrani"</string>
@@ -1639,7 +1638,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Izbriši APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Nov APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Shrani"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Zavrzi"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Prekliči"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Polje z imenom ne sme biti prazno."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ne sme biti prazen."</string>
@@ -2518,8 +2517,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablični računalnik uporabljate več kot običajno"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Napravo uporabljate več kot običajno"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Baterija se bo morda izpraznila prej kot običajno"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Baterija je začasno omejena"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Pomaga ohraniti zmogljivost baterije. Za več informacij se dotaknite."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Baterija je začasno omejena. Za več informacij se dotaknite."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefon ste uporabljali več kot običajno. Baterija se bo morda izpraznila prej, kot ste pričakovali.\n\nAplikacije, ki porabijo največ energije baterije:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tablični računalnik ste uporabljali več kot običajno. Baterija se bo morda izpraznila prej, kot ste pričakovali.\n\nAplikacije, ki porabijo največ energije baterije:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Napravo ste uporabljali več kot običajno. Baterija se bo morda izpraznila prej, kot ste pričakovali.\n\nAplikacije, ki porabijo največ energije baterije:"</string>
@@ -2799,6 +2799,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ne namesti"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Kljub temu namesti"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Potrdilo ni nameščeno"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Ali aplikaciji <xliff:g id="APP_NAME">%s</xliff:g> dovolite nameščanje potrdil v to napravo?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Ta potrdila bodo uporabljena za vašo identifikacijo v aplikacijah in na naslovih URL, ki so navedeni spodaj"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ne dovoli"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Dovoli"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Pokaži več"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Aplik. za upravljanje potrdil"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Ni aplikacije"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Potrdila, ki jih namesti ta aplikacija, bodo uporabljena za vašo identifikacijo v aplikacijah in naslovih URL, ki so navedeni spodaj"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Odstrani"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signal za klice v sili"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Nastavi način delovanja ob klicanju v sili"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Varnostno kopiranje"</string>
@@ -4802,6 +4811,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Največje število prikazanih naborov podatkov"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Ponastavi na privzete vrednosti"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Možnosti samodejnega izpolnjevanja za razvijalce so bile ponastavljene"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Vsili popolne meritve GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Spremljaj vse razmestitve in frekvence GNSS brez ciklov"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema naprave"</string>
<string name="default_theme" msgid="4815428567082263639">"Privzeto"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Ime omrežja"</string>
@@ -4818,8 +4835,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Začasno zaustavite prikazovanje obvestil, da ostanete osredotočeni"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funkcija ni na voljo"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Ta funkcija je bila izklopljena, ker upočasnjuje vaš telefon"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Vsili popolne meritve GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Spremljaj vse razmestitve in frekvence GNSS brez ciklov"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Vedno pokaži pogovorno okno zrušitve"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Pokaži pogovorno okno ob vsaki zrušitvi aplikacije"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Izbira aplikacije, ki podpira ANGLE"</string>
@@ -4887,7 +4902,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Vklopljeno (utišano)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Izklopljeno"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"O omrežju"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Ime naprave je vidno aplikacijam v telefonu. Ko vzpostavite povezavo z napravami Bluetooth ali nastavite dostopno točko Wi-Fi, ga bodo morda videle tudi druge osebe."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Ime naprave je vidno aplikacijam v telefonu. Ko vzpostavite povezavo z napravami Bluetooth ali omrežjem Wi-Fi ali nastavite dostopno točko Wi-Fi, ga bodo morda videle tudi druge osebe."</string>
<string name="devices_title" msgid="649715719278562515">"Naprave"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Vse nastavitve"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Predlogi"</string>
@@ -5049,6 +5064,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Kartice SIM ni mogoče aktivirati"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Kartico SIM odstranite in jo znova vstavite. Če s tem ne odpravite težave, znova zaženite napravo."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Poskusite znova vklopiti kartico SIM. Če s tem ne odpravite težave, znova zaženite napravo."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivacija omrežja"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Operater <xliff:g id="CARRIER_NAME">%1$s</xliff:g> je aktiven"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Dotaknite se, če želite posodobiti nastavitve kartice SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Kartica SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Želite izbrisati preneseno kartico SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Če izbrišete to kartico SIM, boste iz te naprave odstranili storitev operaterja <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>.\n\nStoritev operaterja <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ne bo preklicana."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Izbriši"</string>
@@ -5205,9 +5224,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Klicanje prek Wi-Fi-ja omogoča opravljanje in prejemanje klicev v omrežjih, ki niso operaterjeva, na primer v nekaterih omrežjih Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Klici"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"Sporočila SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"prednostno"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"prednostno: klici"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"prednostno: sporočila SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ni na voljo"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Ni kartice SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Nastavitve"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Povezovanje z javnimi omrežji"</string>
<string name="keywords_internet" msgid="7674082764898690310">"omrežna povezava, internet, brezžično, podatki, wifi, wi-fi, wi fi, mobilno omrežje, mobilno, mobilni operater, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Prikaži varna omrežja za uporabo v letalu"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Izklopi način za letalo"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Ni na voljo, ker je vklopljen način za spanje"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Ponastavitev pomembnosti obvestil je dokončana."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikacije"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 78440de..5646d59 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Adresat IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Rrjetet e ruajtura"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonimet"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Rrjetet e tjera"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Cilësimet e IP-së"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Cilësimet e Wi-Fi nuk disponohen për këtë përdorues"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Ruaj"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Fshi APN-në"</string>
<string name="menu_new" msgid="6571230342655509006">"APN e re"</string>
<string name="menu_save" msgid="6611465355127483100">"Ruaj"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Hiq"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Anulo"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Fusha Emri nuk mund të jetë bosh."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Rrjeti APN nuk mund të jetë bosh."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tableti është përdorur më shumë se zakonisht"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Pajisja është përdorur më shumë se zakonisht"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Bateria mund të mbarojë më herët se zakonisht"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Bateria e kufizuar përkohësisht"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Ndihmon me ruajtjen e gjendjes së baterisë. Trokit për të mësuar më shumë."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Bateria e kufizuar përkohësisht. Trokit për të mësuar më shumë."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefoni yt është përdorur më shumë se zakonisht. Bateria mund të mbarojë më shpejt nga sa pritet.\n\nAplikacionet kryesore sipas përdorimit të baterisë:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tableti yt është përdorur më shumë se zakonisht. Bateria mund të mbarojë më shpejt nga sa pritet.\n\nAplikacionet kryesore sipas përdorimit të baterisë:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Pajisja jote është përdorur më shumë se zakonisht. Bateria mund të mbarojë më shpejt nga sa pritet.\n\nAplikacionet kryesore sipas përdorimit të baterisë:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Mos e instalo"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Instalo gjithsesi"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certifikata nuk u instalua"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Të lejohet që <xliff:g id="APP_NAME">%s</xliff:g> t\'i instalojë certifikatat në këtë pajisje?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Këto certifikata do të të identifikojnë në aplikacionet dhe URL-të më poshtë"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Mos lejo"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Lejo"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Shfaq më shumë"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Aplikacioni i menaxhimit të certifikatave"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Asnjë"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certifikatat e instaluara nga ky aplikacion të identifikojnë në aplikacionet dhe URL-të më poshtë"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Hiq"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Sinjali i telefonimit të urgjencës"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Cakto sjelljen kur kryhet një telefonatë urgjence"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Rezervimi"</string>
@@ -3883,12 +3892,9 @@
<string name="switch_on_text" msgid="5664542327776075105">"Aktivizuar"</string>
<string name="switch_off_text" msgid="1315547447393646667">"Joaktiv"</string>
<string name="screen_pinning_title" msgid="6927227272780208966">"Gozhdimi i aplikacionit"</string>
- <!-- no translation found for app_pinning_intro (6409063008733004245) -->
- <skip />
- <!-- no translation found for screen_pinning_description (7289730998890213708) -->
- <skip />
- <!-- no translation found for screen_pinning_guest_user_description (5826264265872938958) -->
- <skip />
+ <string name="app_pinning_intro" msgid="6409063008733004245">"Gozhdimi i aplikacionit të lejon ta mbash aplikacionin aktual në pamje derisa ta zhgozhdosh. Kjo veçori mund të përdoret, për shembull, për të lejuar një shok të besuar që të luajë një lojë specifike."</string>
+ <string name="screen_pinning_description" msgid="7289730998890213708">"Kur një aplikacion është i gozhduar, aplikacioni i gozhduar mund të hapë aplikacione të tjera dhe të dhënat personale mund të jenë të qasshme. \n\nPër të përdorur gozhdimin e aplikacionit: \n1. Aktivizo gozhdimin e aplikacionit \n2. Hap \"Përmbledhja\" \n3. Trokit ikonën në krye të ekranit, më pas trokit \"Gozhdo\""</string>
+ <string name="screen_pinning_guest_user_description" msgid="5826264265872938958">"Kur një aplikacion është i gozhduar, aplikacioni i gozhduar mund të hapë aplikacione të tjera dhe të dhënat personale mund të jenë të qasshme. \n\nNëse do që të ndash në mënyrë të sigurt pajisjen tënde me dikë, provo të përdorësh më mirë një përdorues vizitor. \n\nPër të përdorur gozhdimin e aplikacionit: \n1. Aktivizo gozhdimin e aplikacionit \n2. Hap \"Përmbledhja\" \n3. Trokit ikonën në krye të ekranit, më pas trokit \"Gozhdo\""</string>
<string name="screen_pinning_dialog_message" msgid="8144925258679476654">"Kur aplikacioni është i gozhduar: \n\n• Të dhënat personale mund të jenë të qasshme \n (si kontaktet dhe përmbajtja e email-eve) \n• Aplikacioni i gozhduar mund të hapë aplikacione të tjera \n\nPërdore gozhdimin e aplikacionit vetëm me personat te të cilët ke besim."</string>
<string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"Kërko motivin e shkyçjes para anulimit të mbërthimit"</string>
<string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"Zhgozhdimi kërkon PIN-in"</string>
@@ -4511,8 +4517,7 @@
<string name="ambient_display_tap_screen_title" product="device" msgid="4423803387551153840">"Trokit për të kontrolluar pajisjen"</string>
<string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"Për të kontrolluar orën, njoftimet dhe informacione të tjera, trokit tek ekrani."</string>
<string name="emergency_gesture_screen_title" msgid="3280543310204360902">"SOS i urgjencës"</string>
- <!-- no translation found for emergency_gesture_switchbar_title (7494629420708117232) -->
- <skip />
+ <string name="emergency_gesture_switchbar_title" msgid="7494629420708117232">"Përdor shërbimin SOS të urgjencës"</string>
<string name="emergency_gesture_entrypoint_summary" msgid="4730874229911208834">"Menaxhohet nga <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="emergency_gesture_screen_summary" msgid="458991229689082120">"Nis veprimet më poshtë duke shtypur 5 herë me shpejtësi butonin e energjisë"</string>
<string name="emergency_gesture_sound_setting_title" msgid="7153948164862156536">"Luaj alarmin me numërim mbrapsht"</string>
@@ -4646,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Setet maksimale të dukshme të të dhënave"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Rivendos në vlerat e parazgjedhura"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Opsionet e plotësimit automatik të zhvilluesit janë rivendosur"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Matjet GNSS me fuqi të plotë"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Gjurmo të gjitha koleksionet dhe frekuencat e GNSS pa ciklim të detyruar"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema e pajisjes"</string>
<string name="default_theme" msgid="4815428567082263639">"I parazgjedhur"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Emri i rrjetit"</string>
@@ -4662,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Vendos njoftimet në pauzë për të qëndruar i fokusuar"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Veçoria nuk ofrohet"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Kjo veçori është çaktivizuar sepse ngadalëson telefonin tënd"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Matjet GNSS me fuqi të plotë"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Gjurmo të gjitha koleksionet dhe frekuencat e GNSS pa ciklim të detyruar"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Gjithmonë shfaq dialogun e ndërprerjes aksidentale"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Shfaq dialogun sa herë që një aplikacion pëson ndërprerje aksidentale"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Zgjidh aplikacionin e aktivizuar për ANGLE"</string>
@@ -4731,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Aktiv (i heshtur)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Joaktiv"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Detajet e rrjetit"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Emri i pajisjes sate është i dukshëm për aplikacionet në telefonin tënd. Ai mund të shikohet po ashtu nga persona të tjerë kur lidhesh me pajisje me Bluetooth ose kur konfiguron një zonë të qasjes për internet me Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Emri i pajisjes sate është i dukshëm për aplikacionet në telefonin tënd. Ai mund të shikohet po ashtu nga persona të tjerë kur lidhesh me pajisje me Bluetooth, kur lidhesh me një rrjet Wi-Fi ose kur konfiguron një zonë të qasjes për internet me Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Pajisjet"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Të gjitha cilësimet"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Sugjerime"</string>
@@ -4891,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Karta SIM nuk mund të aktivizohet"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Hiq kartën SIM dhe fute përsëri. Nëse problemi vazhdon, rinise pajisjen."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Provo të aktivizosh kartën SIM përsëri. Nëse problemi vazhdon, rinise pajisjen."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Aktivizimi i rrjetit"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> është aktiv"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Trokit për të përditësuar cilësimet e kartës SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Karta SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Dëshiron ta pastrosh këtë kartë SIM të shkarkuar?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Spastrimi i kësaj karte SIM e heq shërbimin e <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> nga kjo pajisje.\n\nShërbimi për <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> nuk do të anulohet."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Spastro"</string>
@@ -4968,12 +4983,9 @@
<string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"Telefonata urgjence"</string>
<string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"Telefonatat e urgjencës me \"Telefonata me Wi‑Fi\" nuk mbështeten nga operatori yt celular.\nPajisja kalon automatikisht në një rrjet celular për të kryer një telefonatë urgjence.\nTelefonatat e urgjencës janë të mundshme vetëm në zonat me mbulim celular."</string>
<string name="wifi_calling_summary" msgid="8566648389959032967">"Përdor Wi‑Fi për telefonatat për të përmirësuar cilësinë"</string>
- <!-- no translation found for cross_sim_calling_settings_title (1179406214047299816) -->
- <skip />
- <!-- no translation found for cross_sim_calling_setting_summary (7960473304104701519) -->
- <skip />
- <!-- no translation found for keywords_cross_sim_calling (1702104511020507778) -->
- <skip />
+ <string name="cross_sim_calling_settings_title" msgid="1179406214047299816">"Telefonatat e kryqëzuara të kartës SIM"</string>
+ <string name="cross_sim_calling_setting_summary" msgid="7960473304104701519">"Lejo telefonatat dhe mesazhet SMS të një karte tjetër SIM nëpërmjet kësaj karte SIM."</string>
+ <string name="keywords_cross_sim_calling" msgid="1702104511020507778">"telefonatat e kryqëzuara të kartës SIM"</string>
<string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"Mesazh MMS në ardhje"</string>
<string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"Mesazhi MMS nuk mund të dërgohet"</string>
<string name="enable_mms_notification_summary" msgid="6432752438276672500">"Trokit për të lejuar mesazhet MMS në <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> kur të dhënat celulare janë të çaktivizuara"</string>
@@ -5046,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Telefonata me Wi-Fi të lejon të bësh dhe të marrësh telefonata përmes rrjeteve jo të operatorëve celularë, si p.sh. disa rrjete Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Telefonatat"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"preferohet"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"preferohen telefonatat"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"preferohet SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"e padisponueshme"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Nuk ka kartë SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Preferencat"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Lidhu me rrjetet publike"</string>
<string name="keywords_internet" msgid="7674082764898690310">"lidhja e rrjetit, internet, pa tel, të dhëna, wifi, wi-fi, wi fi, rrjeti celular, celular, operatori celular, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Shiko rrjetet e sigurta për në aeroplan"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Çaktivizo \"Modalitetin e aeroplanit\""</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Nuk ofrohet sepse modaliteti i orarit të gjumit është aktiv"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Rivendosja e rëndësisë së njoftimit përfundoi."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Aplikacionet"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index e7e5933..2476a4c 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -1042,8 +1042,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 адресе"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Сачуване мреже"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Претплате"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Остале мреже"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP подешавања"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Напредна подешавања Wi‑Fi мреже нису доступна за овог корисника"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Сачувај"</string>
@@ -1390,7 +1389,7 @@
<string name="storage_settings_summary" product="default" msgid="267557695753980969">"Ослобађање SD картице, приказ доступног складишта"</string>
<string name="imei_multi_sim" msgid="71477088017585479">"IMEI (отвор за SIM: %1$d)"</string>
<string name="view_saved_network" msgid="1232387673095080910">"Да бисте видели, одаберите сачувану мрежу"</string>
- <string name="status_number" product="tablet" msgid="3597945414666253183">"Број мобилног директоријума"</string>
+ <string name="status_number" product="tablet" msgid="3597945414666253183">"Број мобилног фолдера"</string>
<string name="status_number" product="default" msgid="8407999629121682207">"Број телефона"</string>
<string name="status_number_sim_slot" product="tablet" msgid="6582203988975619529">"MDN (отвор за SIM: %1$d)"</string>
<string name="status_number_sim_slot" product="default" msgid="5724823197745786398">"Бр. тел. (отвор за SIM: %1$d)"</string>
@@ -1618,7 +1617,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Избриши назив приступне тачке"</string>
<string name="menu_new" msgid="6571230342655509006">"Нов назив приступне тачке"</string>
<string name="menu_save" msgid="6611465355127483100">"Сачувај"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Одбаци"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Откажи"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Поље Назив не сме да буде празно."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Поље Назив приступне тачке не сме да буде празно."</string>
@@ -2487,8 +2486,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Таблет сте користили дуже него обично"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Уређај сте користили дуже него обично"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Батерија може да се испразни раније него обично"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Батерија је тренутно ограничена"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Помаже у очувању стања батерије. Додирните да бисте сазнали више."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Батерија је тренутно ограничена. Додирните да бисте сазнали више."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Уређај сте користили дуже него обично. Батерија може да се испразни раније од очекиваног.\n\nАпликације са највећом потрошњом батерије:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Таблет сте користили дуже него обично. Батерија може да се испразни раније од очекиваног.\n\nАпликације са највећом потрошњом батерије:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Уређај сте користили дуже него обично. Батерија може да се испразни раније од очекиваног.\n\nАпликације са највећом потрошњом батерије:"</string>
@@ -2761,6 +2761,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Не инсталирај"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Ипак инсталирај"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Сертификат није инсталиран"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Желите да дозволите да <xliff:g id="APP_NAME">%s</xliff:g> инсталира сертификате на овом уређају?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Ови сертификати ће потврдити ваш идентитет за апликације и URL-ове у наставку"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Не дозволи"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Дозволи"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Прикажи више"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Управљање сертификатима"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Нема"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Сертификати које ова апликација инсталира идентификују вас апликацијама и URL-овима у наставку"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Уклони"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал за хитне позиве"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Подешавање понашања када се успоставља хитан позив"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Резервне копије"</string>
@@ -3509,7 +3518,7 @@
<string name="work_sync_dialog_yes" msgid="9161415252411868574">"Замени"</string>
<string name="work_sync_dialog_message" msgid="1328692374812258546">"Звукови са личног профила ће се користити за пословни профил"</string>
<string name="ringtones_install_custom_sound_title" msgid="3885712267015760638">"Додати прилагођени звук?"</string>
- <string name="ringtones_install_custom_sound_content" msgid="5844996763705884979">"Ова датотека ће бити копирана у директоријум <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
+ <string name="ringtones_install_custom_sound_content" msgid="5844996763705884979">"Ова датотека ће бити копирана у фолдер <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
<string name="ringtones_category_preference_title" msgid="26680768777533727">"Мелодије звона"</string>
<string name="other_sound_category_preference_title" msgid="8182757473602586634">"Други звукови и вибрације"</string>
<string name="configure_notification_settings" msgid="1492820231694314376">"Обавештења"</string>
@@ -4722,6 +4731,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Максималан број видљивих скупова података"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Ресетуј на подразумеване вредности"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Опције за програмера за аутоматско попуњавање су ресетоване"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Принудно покрени пуна GNSS мерења"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Прати све GNSS консталације и фреквенције без циклуса рада"</string>
<string name="device_theme" msgid="5027604586494772471">"Тема уређаја"</string>
<string name="default_theme" msgid="4815428567082263639">"Подразумевана"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Назив мреже"</string>
@@ -4738,8 +4755,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Паузирајте обавештења ради боље концентрације"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Функција није доступна"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Ова функција је искључена јер успорава телефон"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Принудно покрени пуна GNSS мерења"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Прати све GNSS консталације и фреквенције без циклуса рада"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Увек приказуј дијалог о отказивању"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Прикажи дијалог сваки пут када апликација откаже"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Изабери апликацију омогућену за ANGLE"</string>
@@ -4807,7 +4822,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Укључено (звук је искључен)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Искључено"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Детаљи о мрежи"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Име уређаја виде апликације на телефону. Могу да га виде и други људи кад се повежете са Bluetooth уређајима или подесите WiFi хотспот."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Апликације на телефону могу да виде назив уређаја. И други људи могу да виде назив уређаја могу када се повежете са Bluetooth уређајима или WiFi мрежом или подесите WiFi хотспот."</string>
<string name="devices_title" msgid="649715719278562515">"Уређаји"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Сва подешавања"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Предлози"</string>
@@ -4966,8 +4981,12 @@
<string name="sim_action_no_thanks" msgid="435717748384544195">"Не, хвала"</string>
<string name="sim_switch_button" msgid="1405772571706095387">"Пређи"</string>
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Активирање SIM картице није успело"</string>
- <string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Уклоните SIM картицу, па је уметните поново. Ако се проблем и даље јавља, рестартујте уређај."</string>
+ <string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Уклоните SIM картицу, па је ставите поново. Ако се проблем и даље јавља, рестартујте уређај."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Пробајте поново да укључите SIM картицу. Ако се проблем и даље јавља, рестартујте уређај."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активација мреже"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Мобилни оператер <xliff:g id="CARRIER_NAME">%1$s</xliff:g> је активан"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Додирните да бисте ажурирали подешавања SIM-а"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM картица"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Желите ли да обришете овај преузети SIM?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Брисањем ове SIM картице уклонићете <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> услугу са овог уређаја.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> услуга неће бити отказана."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Обриши"</string>
@@ -5122,9 +5141,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Позивање преко WiFi-ја вам омогућава да примате и упућујете позиве преко мрежа које не припадају мобилном оператеру, на пример, неких WiFi мрежа."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Позиви"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"предност"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"предност имају позиви"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"предност има SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"недоступно"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Нема SIM картице"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Подешавања"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Повежите се са јавним мрежама"</string>
<string name="keywords_internet" msgid="7674082764898690310">"мрежна веза, интернет, бежично, подаци, wifi, wi-fi, wi fi, мобилни телефон, мобилни, мобилни оператер, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Прикажи мреже безбедне за авион"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Искључи режим рада у авиону"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Недоступно је јер је ноћни режим укључен"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Ресетовање важности обавештења је довршено."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Апликације"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 282c815..af97e4e 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6-adresser"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Sparade nätverk"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Prenumerationer"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Andra nätverk"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP-inställningar"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Den här användaren har inte tillgång till avancerade Wi‑Fi-inställningar"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Spara"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Ta bort APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Nytt APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Spara"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Släng"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Avbryt"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Fältet Namn får inte vara tomt."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN får inte vara tomt."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Surfplattan används mer än vanligt"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Enheten används mer än vanligt"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Batteriet kan ta slut snabbare än vanligt"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batteriet är tillfälligt begränsat"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Förlänger batteriets livslängd. Tryck för att läsa mer."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batteriet är tillfälligt begränsat. Tryck för att läsa mer."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Mobilen har använts mer än vanligt. Batteriet kan ta slut snabbare än beräknat.\n\nDe mest krävande apparna efter batteriförbrukning:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Surfplattan har använts mer än vanligt. Batteriet kan ta slut snabbare än beräknat.\n\nDe mest krävande apparna efter batteriförbrukning:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Enheten har använts mer än vanligt. Batteriet kan ta slut snabbare än beräknat.\n\nDe mest krävande apparna efter batteriförbrukning:"</string>
@@ -2695,7 +2695,7 @@
<string name="tts_reset" msgid="9047681050813970031">"Återställ"</string>
<string name="tts_play" msgid="2945513377250757221">"Spela upp"</string>
<string name="vpn_settings_title" msgid="9131315656202257272">"VPN"</string>
- <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Självjusterande anslutning"</string>
+ <string name="adaptive_connectivity_title" msgid="7464959640138428192">"Adaptive Connectivity"</string>
<string name="adaptive_connectivity_summary" msgid="3648731530666326885">"Får batteriet att räcka längre och ger enheten bättre prestanda genom att nätverksanslutningar hanteras automatiskt"</string>
<string name="credentials_title" msgid="7535942196886123656">"Uppgiftslagring"</string>
<string name="credentials_install" msgid="3933218407598415827">"Installera ett certifikat"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Installera inte"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Installera ändå"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Certifikatet installerades inte"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Vill du tillåta att <xliff:g id="APP_NAME">%s</xliff:g> installerar certifikat på den här enheten?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Du identifieras med de här certifikaten för apparna och webbadresserna nedan"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Tillåt inte"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Tillåt"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Visa mer"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App för certifikathantering"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Inga"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Certifikat som installeras av denna app låter apparna och webbadresserna nedan identifiera dig"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Ta bort"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Ringsignal vid nödsituationer"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Ange beteende vid nödsamtal"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Säkerhetskopiering"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Högsta antal synliga datamängder"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Återställ standardvärdena"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Utvecklaralternativen för Autofyll har återställts"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Framtvinga fullständiga GNSS-mätningar"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Spåra alla konstellationer och frekvenser för GNSS utan arbetscykel"</string>
<string name="device_theme" msgid="5027604586494772471">"Enhetstema"</string>
<string name="default_theme" msgid="4815428567082263639">"Standard"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Nätverksnamn"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Pausa aviseringar så du kan behålla ditt fokus"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Funktionen är inte tillgänglig"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Denna funktion har inaktiverats eftersom den gör mobilen långsammare"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Framtvinga fullständiga GNSS-mätningar"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Spåra alla konstellationer och frekvenser för GNSS utan arbetscykel"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Visa alltid en dialogruta vid krascher"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Visa alltid en dialogruta när en app kraschar"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Välj en ANGLE-kompatibel app"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"På (ljud av)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Av"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Nätverksinformation"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Enhetens namn är synligt för appar i mobilen. Det kan också vara synligt för andra personer när du ansluter till Bluetooth-enheter eller om du skapar en Wi-Fi-surfzon."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Enhetens namn är synligt för appar i mobilen. Det kan också vara synligt för andra personer när du ansluter till Bluetooth-enheter eller ett Wi-Fi-nätverk, eller om du skapar en Wi-Fi-surfzon."</string>
<string name="devices_title" msgid="649715719278562515">"Enheter"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Alla inställningar"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Förslag"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Det gick inte att aktivera SIM-kortet"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Ta ut SIM-kortet och sätt i det igen. Starta om enheten om problemet kvarstår."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Testa att aktivera SIM-kortet igen. Starta om enheten om problemet kvarstår."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Nätverksaktivering"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> är aktiv"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Tryck för att uppdatera SIM-inställningarna"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-kort"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Vill du rensa det här nedladdade SIM-kortet?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Om du rensar det här SIM-kortet tas tjänsten hos <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> bort från enheten.\n\nTjänsten hos <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> avslutas inte."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Rensa"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Med Wi-Fi-samtal kan du ringa och ta emot samtal via nätverk som inte tillhör operatörer, till exempel vissa Wi‑Fi-nätverk."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Samtal"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"Sms"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"föredras"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"samtal föredras"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"sms föredras"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"otillgängligt"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Inget SIM-kort"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Inställningar"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Anslut till offentliga nätverk"</string>
<string name="keywords_internet" msgid="7674082764898690310">"nätverksanslutning, internet, trådlös, data, wifi, wi-fi, wi fi, mobil, telefon, mobiloperatör, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Visa nätverk som är flygplanssäkra"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Inaktivera flygplansläge"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Inte tillgängligt eftersom sovläget är på"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Aviseringarnas relevans har återställts."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Appar"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 29c700f..3877869 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Anwani za IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Mitandao iliyohifadhiwa"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Usajili"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Mitandao mingine"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Mipangilio ya IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Mtumiaji huyu haruhusiwi kubadilisha mipangilio ya kina ya Wi-Fi"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Hifadhi"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Futa APN"</string>
<string name="menu_new" msgid="6571230342655509006">"APN Mpya"</string>
<string name="menu_save" msgid="6611465355127483100">"Hifadhi"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Tupa"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Ghairi"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Huwezi kuacha sehemu hii ikiwa haijajazwa."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Lazima APN ijazwe."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Kompyuta kibao imetumika sana kuliko kawaida"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Kifaa kimetumika sana kuliko kawaida"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Huenda chaji ikaisha haraka zaidi"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Betri imedhibitiwa kwa muda"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Inasaidia kuboresha muda wa kutumia betri. Gusa ili upate maelezo zaidi."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Betri imedhibitiwa kwa muda. Gusa ili upate maelezo zaidi."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Simu yako imetumika kuliko kawaida. Huenda chaji ikaisha haraka zaidi ya inavyotarajiwa.\n\nProgramu ambazo zimetumia betri zaidi:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Kompyuta yako kibao imetumika kuliko kawaida. Huenda chaji ikaisha haraka zaidi ya inavyotarajiwa.\n\nProgramu ambazo zimetumia betri zaidi:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Kifaa chako kimetumika kuliko kawaida. Huenda chaji ikaisha haraka zaidi ya inavyotarajiwa.\n\nProgramu ambazo zimetumia betri zaidi:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Usisakinishe"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Sakinisha"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Cheti hakijasakinishwa"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Ungependa kuruhusu <xliff:g id="APP_NAME">%s</xliff:g> isakinishe vyeti kwenye kifaa hiki?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Vyeti hivi vitakutambulisha kwenye programu na URL zilizo hapa chini"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Usiruhusu"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Ruhusu"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Onyesha zaidi"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Programu ya kudhibiti vyeti"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Hamna"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Vyeti unavyosakinisha kwenye programu hii vinakutambulisha kwenye programu na URL zilizo hapa chini"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Ondoa"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Ishara ya simu ya dharura"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Weka tabia wakati simu ya dharura imepigwa"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Hifadhi nakala"</string>
@@ -4643,6 +4652,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Idadi ya juu zaidi ya makundi ya data yanayoonekana"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Rejesha thamani chaguomsingi"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Imebadilisha chaguo za wasanidi programu za kujaza kiotomatiki"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Lazimisha vipimo vya GNSS kamili"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Fuatilia mikusanyiko na mawimbi yote yasiyo na utendakazi wa GNSS"</string>
<string name="device_theme" msgid="5027604586494772471">"Mandhari ya kifaa"</string>
<string name="default_theme" msgid="4815428567082263639">"Chaguomsingi"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Jina la mtandao"</string>
@@ -4659,8 +4676,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Sitisha arifa ili uendelee kumakinika"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Kipengele hakipatikani"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Kipengele hiki kimezimwa kwa sababu kinapunguza kasi ya simu yako"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Lazimisha vipimo vya GNSS kamili"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Fuatilia mikusanyiko na mawimbi yote yasiyo na utendakazi wa GNSS"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Onyesha kidirisha cha programu kuacha kufanya kazi kila wakati"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Onyesha kisanduku kila wakati programu inapoacha kufanya kazi"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Chagua programu inayoweza kutumia ANGLE"</string>
@@ -4728,7 +4743,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Imewashwa (zima sauti)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Imezimwa"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Maelezo ya mtandao"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Jina la kifaa chako litaonekana kwenye programu zilizo katika simu yako. Pia linaweza kuonekana kwa watu wengine wakati unaunganisha vifaa vya Bluetooth au kuweka mtandaopepe wa Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Jina la kifaa chako litaonekana kwa programu zilizo kwenye simu yako. Pia, watu wengine wanaweza kuliona unapounganisha kwenye vifaa vya Bluetooth, unapounganisha kwenye mtandao wa Wi-Fi au kuweka mipangilio ya mtandao pepe wa Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Vifaa"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Mipangilio Yote"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Mapendekezo"</string>
@@ -4888,6 +4903,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Imeshindwa kuanza kutumia SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Ondoa SIM na uiweke tena. Iwapo tatizo litaendelea, zima kisha uwashe kifaa chako."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Jaribu kuwasha SIM tena. Iwapo tatizo litaendelea, zima kisha uwashe kifaa chako."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Kuwasha mtandao"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Unatumia <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Gusa ili usasishe mipangilio ya SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM kadi"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Je, ungependa kufuta data yote kwenye SIM hii iliyopakuliwa?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Kufuta data yote kwenye SIM hii huondoa huduma ya <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> kwenye kifaa hiki.\n\nHuduma ya <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> haitaghairiwa."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Futa data yote"</string>
@@ -5040,9 +5059,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Kipengele cha kupiga simu kupitia Wi-Fi kinakuruhusu upige na kupokea simu kupitia mitandao isiyo ya watoa huduma kama vile baadhi ya mitandao ya Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Simu"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"mtoa huduma unayempendelea"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"mtoa huduma wa simu unayempendelea"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"mtoa huduma wa SMS unayempendelea"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"haipatikani"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Hakuna SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Mapendeleo"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Unganisha kwenye mitandao ya umma"</string>
<string name="keywords_internet" msgid="7674082764898690310">"muunganisho wa mtandao, intaneti, isiyotumia waya, data, wifi, wi-fi, wi fi, mtandao wa simu, vifaa vya mkononi, mtoa huduma za vifaa vya mkononi, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Angalia mitandao salama ya ndegeni"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Zima Hali ya Ndegeni"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Haipatikani kwa sababu umewasha hali ya wakati umelala"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Imemaliza kubadilisha mipangilio ya umuhimu wa arifa."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Programu"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 1ea3420..bc6c9b7 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 முகவரிகள்"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"சேமித்த நெட்வொர்க்குகள்"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"சந்தா செலுத்தியவை"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"பிற நெட்வொர்க்குகள்"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP அமைப்பு"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"இந்தப் பயனருக்கு வைஃபை மேம்பட்ட அமைப்புகள் இல்லை"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"சேமி"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN ஐ நீக்கு"</string>
<string name="menu_new" msgid="6571230342655509006">"புதிய APN"</string>
<string name="menu_save" msgid="6611465355127483100">"சேமி"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"நிராகரி"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"ரத்துசெய்"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"பெயர் புலம் வெறுமையாக இருக்கக்கூடாது."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN வெறுமையாக இருக்கக்கூடாது."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"டேப்லெட் வழக்கத்தைவிட அதிகமாகப் பயன்படுத்தப்பட்டுள்ளது"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"சாதனம் வழக்கத்தைவிட அதிகமாகப் பயன்படுத்தப்பட்டுள்ளது"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"பேட்டரி வழக்கத்தைவிட வேகமாகத் தீர்ந்துவிடக்கூடும்"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"பேட்டரி சார்ஜ் செய்வது தற்காலிகமாகக் கட்டுப்படுத்தப்பட்டுள்ளது"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"பேட்டரியின் ஆயுளைப் பாதுகாக்க உதவும். மேலும் அறிய தட்டவும்."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"பேட்டரி சார்ஜ் செய்வது தற்காலிகமாகக் கட்டுப்படுத்தப்பட்டுள்ளது. மேலும் அறிய தட்டவும்."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"உங்கள் சாதனம் வழக்கத்தைவிட அதிகமாகப் பயன்படுத்தப்பட்டுள்ளது. எதிர்பார்த்ததைவிட வேகமாக பேட்டரி தீர்ந்துவிடக்கூடும்.\n\nஅதிகளவு பேட்டரியைப் பயன்படுத்திய ஆப்ஸ்:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"உங்கள் டேப்லெட்டை வழக்கத்தைவிட அதிகமாகப் பயன்படுத்தியுள்ளீர்கள். எதிர்பார்த்ததைவிட வேகமாக பேட்டரி தீர்ந்துவிடக்கூடும்.\n\nஅதிகளவு பேட்டரியைப் பயன்படுத்திய ஆப்ஸ்:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"உங்கள் சாதனம் வழக்கத்தைவிட அதிகமாகப் பயன்படுத்தப்பட்டுள்ளது. எதிர்பார்த்ததைவிட வேகமாக பேட்டரி தீர்ந்துவிடக்கூடும்.\n\nஅதிகளவு பேட்டரியைப் பயன்படுத்திய ஆப்ஸ்:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"நிறுவ வேண்டாம்"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"பரவாயில்லை, நிறுவு"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"சான்றிதழ் நிறுவப்படவில்லை"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"இந்தச் சாதனத்தில் சான்றிதழ்களை நிறுவ <xliff:g id="APP_NAME">%s</xliff:g> ஆப்ஸை அனுமதிக்கவா?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"இந்தச் சான்றிதழ்கள் கீழே உள்ள ஆப்ஸுக்கும் URLகளுக்கும் உங்களை அடையாளப்படுத்தும்"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"அனுமதிக்க வேண்டாம்"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"அனுமதி"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"மேலும் காட்டு"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Certificate management ஆப்ஸ்"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ஏதுமில்லை"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"இந்த ஆப்ஸால் நிறுவப்பட்ட சான்றிதழ்கள் பின்வரும் ஆப்ஸுக்கும் URLகளுக்கும் உங்களை அடையாளப்படுத்தும்"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"அகற்று"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"அவசரகால டயலிங் சிக்னல்"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"அவசர அழைப்பு இயக்கப்பட்டிருக்கும்போது நடத்தையை அமை"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"காப்புப்பிரதி"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"அதிகபட்சத் தெரியக்கூடிய தரவுத் தொகுப்புகள்"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"இயல்புநிலை மதிப்புகளுக்கு மீட்டமை"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"தன்னிரப்பி டெவெலப்பர் விருப்பங்கள் மீட்டமைக்கப்பட்டன"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"முழுமையான GNSS அளவீடுகளை அமலாக்கு"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"பணி சுழற்சியை முடக்கி, GNSS வழிசெலுத்துதல்கள் மற்றும் அதிர்வெண்கள் அனைத்தையும் கண்காணித்தல்."</string>
<string name="device_theme" msgid="5027604586494772471">"சாதனத்தின் தீம்"</string>
<string name="default_theme" msgid="4815428567082263639">"இயல்பு"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"நெட்வொர்க் பெயர்"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"கவனம் சிதறாமல் இருக்க, அறிவிப்புகளை இடைநிறுத்தவும்"</string>
<string name="disabled_feature" msgid="7151433782819744211">"அம்சம் இல்லை"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"மொபைலின் வேகத்தைப் பாதிப்பதால் இந்த அம்சம் ஆஃப் செய்யப்பட்டுள்ளது"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"முழுமையான GNSS அளவீடுகளை அமலாக்கு"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"பணி சுழற்சியை முடக்கி, GNSS வழிசெலுத்துதல்கள் மற்றும் அதிர்வெண்கள் அனைத்தையும் கண்காணித்தல்."</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"சிதைவு அறிவிப்பை எப்போதும் காட்டு"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"ஆப்ஸ் செயலிழக்கும் போதெல்லாம் சிதைவு அறிவிப்பைக் காட்டும்"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE இயக்கப்பட்ட ஆப்ஸைத் தேர்வுசெய்க"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ஆன் (ஒலி முடக்கம்)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ஆஃப்"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"நெட்வொர்க் விவரங்கள்"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"உங்களது மொபைலில் உள்ள ஆப்ஸிற்கு, உங்கள் சாதனத்தின் பெயர் தெரியும். புளூடூத் சாதனங்களுடன் இணைக்கும்போது அல்லது வைஃபை ஹாட்ஸ்பாட்டை அமைக்கும்போது, அப்பெயர் பிறருக்குக் காட்டப்படலாம்."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"உங்கள் மொபைலில் உள்ள ஆப்ஸால் உங்கள் சாதனத்தின் பெயரைப் பார்க்க முடியும். புளூடூத் சாதனங்கள், வைஃபை நெட்வொர்க் ஆகியவற்றுடன் இணைக்கும்போதோ வைஃபை ஹாட்ஸ்பாட்டை அமைக்கும்போதோ அப்பெயர் பிறருக்கும் காட்டப்படக்கூடும்."</string>
<string name="devices_title" msgid="649715719278562515">"சாதனங்கள்"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"அனைத்து அமைப்புகளும்"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"பரிந்துரைகள்"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"சிம்மை இயக்க முடியவில்லை"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"சிம்மை அகற்றிவிட்டு மீண்டும் செருகவும். சிக்கல் தொடரும்பட்சத்தில் சாதனத்தை மீண்டும் தொடங்கவும்."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"சிம்மை மீண்டும் ஆன் செய்து பார்க்கவும். சிக்கல் தொடரும்பட்சத்தில் சாதனத்தை மீண்டும் தொடங்கவும்."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"மொபைல் நெட்வொர்க்கை இயக்குதல்"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> செயல்பாட்டில் உள்ளது"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM அமைப்புகளை மாற்ற தட்டவும்"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM கார்டு"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"இந்தப் பதிவிறக்கிய சிம்மை அழிக்கவா?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"சிம்மை அழிப்பது இந்தச் சாதனத்தில் இருந்து <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> சேவையை அகற்றிவிடும்.\n\nஇதனால் <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> சேவை ரத்துசெய்யப்படாது."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"அழி"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"வைஃபை அழைப்பு அம்சம் மூலம் சில வைஃபை நெட்வொர்க்குகள் போன்ற மொபைல் நிறுவனம் அல்லாத நெட்வொர்க்குகளைப் பயன்படுத்தி அழைக்கலாம் அழைப்புகளைப் பெறலாம்."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"அழைப்புகள்"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"மெசேஜ்"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"விருப்பம்"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"அழைப்புகளை மேற்கொள்ளலாம்"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"மெசேஜ் அனுப்பலாம்"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"அழைப்புகள்/மெசேஜ் செய்ய முடியாது"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"சிம் இல்லை"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"விருப்பத்தேர்வுகள்"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"பொது நெட்வொர்க்குகளுடன் இணைக்கலாம்"</string>
<string name="keywords_internet" msgid="7674082764898690310">"நெட்வொர்க் இணைப்பு, இணையம், வயர்லெஸ், டேட்டா, வைஃபை, வை-ஃபை, வை ஃபை, செல்லுலார், மொபைல், செல் கேரியர், 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"விமான-பாதுகாப்பு நெட்வொர்க்குகளை காட்டு"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"விமானப் பயன்முறையை ஆஃப் செய்"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"உறக்கநேரப் பயன்முறை ஆன் செய்யப்பட்டுள்ளதால் கிடைக்காது"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"அறிவிப்பு முக்கியத்துவம் மீட்டமைக்கப்பட்டது."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ஆப்ஸ்"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index fc853e2..4d68dab 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 చిరునామాలు"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"సేవ్ చేసిన నెట్వర్క్లు"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"సభ్యత్వాలు"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"ఇతర నెట్వర్క్లు"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP సెట్టింగ్లు"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"ఈ వినియోగదారుకి Wi‑Fi అధునాతన సెట్టింగ్లు అందుబాటులో లేవు"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"సేవ్ చేయి"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APNను తొలగించు"</string>
<string name="menu_new" msgid="6571230342655509006">"కొత్త APN"</string>
<string name="menu_save" msgid="6611465355127483100">"సేవ్ చేయి"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"విస్మరించు"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"రద్దు చేయి"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"పేరు ఫీల్డ్ ఖాళీగా ఉండకూడదు."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN ఖాళీగా ఉండకూడదు."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"టాబ్లెట్ సాధారణం కంటే ఎక్కువగా వినియోగించింది"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"పరికరం సాధారణం కంటే ఎక్కువగా వినియోగించింది"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"బ్యాటరీ సాధారణం కంటే తక్కువ సమయం రావచ్చు"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"బ్యాటరీ తాత్కాలికంగా పరిమితం చేయబడింది"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"బ్యాటరీ స్థితిని కాపాడటానికి సహాయపడుతుంది. మరింత తెలుసుకోవడానికి ట్యాప్ చేయండి."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"బ్యాటరీ తాత్కాలికంగా పరిమితం చేయబడింది. మరింత తెలుసుకోవడానికి ట్యాప్ చేయండి."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"మీ ఫోన్ సాధారణం కంటే అధికంగా వినియోగించబడింది. కనుక, మీ బ్యాటరీ, అంచనా వేసిన దాని కంటే తక్కువ సమయంలోనే ఖాళీ అవ్వొచ్చు.\n\nబ్యాటరీని అధికంగా వినియోగిస్తోన్న ప్రధాన యాప్లు:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"మీ టాబ్లెట్ సాధారణం కంటే అధికంగా వినియోగించబడింది. కనుక, మీ బ్యాటరీ, అంచనా వేసిన దాని కంటే తక్కువ సమయంలోనే ఖాళీ అవ్వొచ్చు.\n\nబ్యాటరీని అధికంగా వినియోగిస్తోన్న ప్రధాన యాప్లు:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"మీ పరికరం సాధారణం కంటే అధికంగా వినియోగించబడింది. కనుక, మీ బ్యాటరీ, అంచనా వేసిన దాని కంటే తక్కువ సమయంలోనే ఖాళీ అవ్వొచ్చు.\n\nబ్యాటరీని అధికంగా వినియోగిస్తోన్న ప్రధాన యాప్లు:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ఇన్స్టాల్ చేయవద్దు"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"ఏదేమైనా ఇన్స్టాల్ చేయి"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"సర్టిఫికెట్ ఇన్స్టాల్ చేయబడలేదు"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"ఈ పరికరంలో సర్టిఫికెట్లను ఇన్స్టాల్ చేయడానికి <xliff:g id="APP_NAME">%s</xliff:g>ని అనుమతించాలా?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ఈ సర్టిఫికెట్ల ద్వారా, మీ గుర్తింపు ఆధారాలు దిగువున ఉన్న యాప్లు, URLలకు తెలియజేయబడతాయి"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"అనుమతించవద్దు"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"అనుమతించు"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"మరిన్ని చూపించు"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"సర్టిఫికెట్ మేనేజ్మెంట్ యాప్"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ఏదీ లేదు"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"ఈ యాప్ ద్వారా ఇన్స్టాల్ చేయబడిన సర్టిఫికెట్లు మీ గుర్తింపును దిగువున ఉన్న యాప్లకు, URLలకు తెలియజేస్తాయి"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"తీసివేయి"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"అత్యవసర డయలింగ్ సిగ్నల్"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"అత్యవసర కాల్ వచ్చినప్పుడు చేయాల్సిన విధిని సెట్ చేయండి"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"బ్యాకప్"</string>
@@ -4644,6 +4653,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"కనిపించగల గరిష్ఠ డేటాసమితులు"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"డిఫాల్ట్ విలువలకు రీసెట్ చేయి"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"స్వీయ పూరింపు డెవలపర్ ఎంపికలు రీసెట్ చేయబడ్డాయి"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"శక్తివంతమైన GNSS కొలతలు"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"డ్యూటీ సైక్లింగ్ లేకుండా అన్ని GNSS నక్షత్రరాశులను మరియు ఫ్రీక్వెన్సీలను ట్రాక్ చేయండి"</string>
<string name="device_theme" msgid="5027604586494772471">"పరికర రూపం"</string>
<string name="default_theme" msgid="4815428567082263639">"డిఫాల్ట్"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"నెట్వర్క్ పేరు"</string>
@@ -4660,8 +4677,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"ఇతర వ్యాపకాలపై దృష్టి మరలకుండా ఉండడానికి నోటిఫికేషన్లను పాజ్ చేయండి"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ఫీచర్ అందుబాటులో లేదు"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"మీ ఫోన్ పనితీరును నెమ్మదించేలా చేస్తున్నందున ఈ ఫీచర్ ఆఫ్ చేయబడింది"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"శక్తివంతమైన GNSS కొలతలు"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"డ్యూటీ సైక్లింగ్ లేకుండా అన్ని GNSS నక్షత్రరాశులను మరియు ఫ్రీక్వెన్సీలను ట్రాక్ చేయండి"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"ఎల్లప్పుడూ క్రాష్ డైలాగ్ని చూపు"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"యాప్ క్రాష్ అయిన ప్రతిసారి డైలాగ్ని చూపు"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"కోణం ప్రారంభించబడిన యాప్ను ఎంచుకోండి"</string>
@@ -4729,7 +4744,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"ఆన్ చేయి (మ్యూట్)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ఆఫ్"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"నెట్వర్క్ వివరాలు"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"మీ ఫోన్లోని యాప్లకు మీ పరికరం పేరు కనిపిస్తుంది. మీరు బ్లూటూత్ పరికరాలకు కనెక్ట్ చేసినప్పుడు లేదా Wi-Fi హాట్స్పాట్ని సెటప్ చేసినప్పుడు ఇతర వ్యక్తులకు కూడా ఇది కనిపించవచ్చు."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"మీ పరికరంలోని పేరు మీ ఫోన్లోని యాప్లకు కనిపిస్తుంది. మీరు బ్లూటూత్ పరికరాలకు కనెక్ట్ చేసినప్పుడు, Wi-Fi నెట్వర్క్కు కనెక్ట్ చేసినప్పుడు లేదా Wi-Fi హాట్స్పాట్ను సెటప్ చేసినప్పుడు ఇతర వ్యక్తులకు కూడా ఇది కనిపించవచ్చు."</string>
<string name="devices_title" msgid="649715719278562515">"పరికరాలు"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"అన్ని సెట్టింగ్లు"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"సూచనలు"</string>
@@ -4889,6 +4904,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIMను యాక్టివేట్ చేయడం సాధ్యం కాదు"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIMను తీసివేసి, తిరిగి ఇన్సర్ట్ చేయండి. సమస్య ఇంకా కొనసాగితే, మీ పరికరాన్ని రీస్టార్ట్ చేయండి."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIMను తిరిగి ఆన్ చేయడానికి ట్రై చేయండి. సమస్య ఇంకా కొనసాగితే, మీ పరికరాన్ని రీస్టార్ట్ చేయండి."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"నెట్వర్క్ యాక్టివేషన్"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> యాక్టివ్గా ఉంది"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM సెట్టింగ్లను అప్డేట్ చేయడానికి ట్యాప్ చేయండి"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM కార్డ్"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"డౌన్లోడ్ చేయబడిన ఈ SIMను తొలగించాలా?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"ఈ SIMను తొలగించడం వలన ఈ పరికరం నుండి <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> సర్వీస్ తీసివేయబడుతోంది.\n\n <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> సర్వీస్ రద్దు చేయబడదు."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"తొలగించు"</string>
@@ -5041,9 +5060,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"క్యారియర్ కాని కొన్ని Wi-Fi నెట్వర్క్ల వంటి వాటి ద్వారా కాల్లను చేయడానికి, స్వీకరించడానికి Wi-Fi కాలింగ్ మిమ్మల్ని అనుమతిస్తుంది."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"కాల్స్"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"ప్రాధాన్యతనిస్తుంది"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"కాల్స్కు ప్రాధాన్యతనిస్తుంది"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMSకు ప్రాధాన్యతనిస్తుంది"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"అందుబాటులో లేదు"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"సిమ్ లేదు"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ప్రాధాన్యతలు"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"పబ్లిక్ నెట్వర్క్లకు కనెక్ట్ అవ్వండి"</string>
<string name="keywords_internet" msgid="7674082764898690310">"నెట్వర్క్ కనెక్షన్, ఇంటర్నెట్, వైర్లెస్, డేటా, Wi-Fi, Wi-Fi, Wi-Fi, సెల్యూలార్, మొబైల్, సెల్ క్యారియర్, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"విమానం‑సురక్షిత నెట్వర్క్లను చూడండి"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"విమానం మోడ్ను ఆఫ్ చేయండి"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"బెడ్ టైమ్ మోడ్ ఆన్లో ఉండడం వల్ల అందుబాటులో లేదు"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"రీసెట్ నోటిఫికేషన్ ప్రాముఖ్యత పూర్తయింది."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"యాప్లు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index d19d3b6..2539cde 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"ที่อยู่ IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"เครือข่ายที่บันทึก"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"การสมัครใช้บริการ"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"เครือข่ายอื่น"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"การตั้งค่า IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"การตั้งค่า Wi‑Fi ขั้นสูงไม่พร้อมใช้งานสำหรับผู้ใช้รายนี้"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"บันทึก"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"ลบ APN"</string>
<string name="menu_new" msgid="6571230342655509006">"APN ใหม่"</string>
<string name="menu_save" msgid="6611465355127483100">"บันทึก"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"ทิ้ง"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"ยกเลิก"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"ต้องใส่ข้อมูลในช่องชื่อ"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"ต้องใส่ข้อมูล APN"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ใช้งานแท็บเล็ตมากกว่าปกติ"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"ใช้งานอุปกรณ์มากกว่าปกติ"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"แบตเตอรี่อาจหมดเร็วกว่าปกติ"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"การชาร์จแบตเตอรี่จำกัดชั่วคราว"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"ช่วยปกป้องประสิทธิภาพของแบตเตอรี่ แตะเพื่อดูข้อมูลเพิ่มเติม"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"การชาร์จแบตเตอรี่จำกัดชั่วคราว แตะเพื่อดูข้อมูลเพิ่มเติม"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"มีการใช้งานโทรศัพท์มากกว่าปกติ แบตเตอรี่อาจหมดเร็วกว่าที่คาดไว้\n\nแอปที่ใช้แบตเตอรี่มากสุดมีลำดับดังนี้"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"มีการใช้งานแท็บเล็ตมากกว่าปกติ แบตเตอรี่อาจหมดเร็วกว่าที่คาดไว้\n\nแอปที่ใช้แบตเตอรี่มากสุดมีลำดับดังนี้"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"มีการใช้งานอุปกรณ์มากกว่าปกติ แบตเตอรี่อาจหมดเร็วกว่าที่คาดไว้\n\nแอปที่ใช้แบตเตอรี่มากสุดมีลำดับดังนี้"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"ไม่ติดตั้ง"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"ยืนยันว่าจะติดตั้ง"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"ไม่ได้ติดตั้งใบรับรอง"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"อนุญาตให้ <xliff:g id="APP_NAME">%s</xliff:g> ติดตั้งใบรับรองบนอุปกรณ์นี้หรือไม่"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"ใบรับรองเหล่านี้จะระบุตัวตนของคุณให้กับแอปและ URL ด้านล่าง"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"ไม่อนุญาต"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"อนุญาต"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"แสดงเพิ่ม"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"แอปการจัดการใบรับรอง"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"ไม่มี"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"ใบรับรองที่แอปนี้ติดตั้งจะระบุตัวตนของคุณให้แอปและ URL ด้านล่างทราบ"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"นำออก"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"สัญญาณการโทรฉุกเฉิน"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"ตั้งค่าการทำงานเมื่อมีการโทรหาหมายเลขฉุกเฉิน"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"การสำรองข้อมูล"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"ชุดข้อมูลที่ปรากฏสูงสุด"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"รีเซ็ตเป็นค่าเริ่มต้น"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"ตัวเลือกการป้อนอัตโนมัติสำหรับนักพัฒนาซอฟต์แวร์ได้รับการรีเซ็ตแล้ว"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"บังคับใช้การวัด GNSS เต็มรูปแบบ"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ติดตามระบบดาวเทียมและความถี่สัญญาณ GNSS ทั้งหมดโดยไม่มีการปิดพักเพื่อประหยัดพลังงาน"</string>
<string name="device_theme" msgid="5027604586494772471">"ธีมอุปกรณ์"</string>
<string name="default_theme" msgid="4815428567082263639">"ค่าเริ่มต้น"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"ชื่อเครือข่าย"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"หยุดการแจ้งเตือนชั่วคราวเพื่อไม่ให้มีสิ่งรบกวน"</string>
<string name="disabled_feature" msgid="7151433782819744211">"ใช้งานฟีเจอร์ไม่ได้"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"ฟีเจอร์นี้ถูกปิดไปเพราะทำให้โทรศัพท์ช้า"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"บังคับใช้การวัด GNSS เต็มรูปแบบ"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ติดตามระบบดาวเทียมและความถี่สัญญาณ GNSS ทั้งหมดโดยไม่มีการปิดพักเพื่อประหยัดพลังงาน"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"แสดงปัญหาที่ขัดข้องเสมอ"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"แสดงกล่องโต้ตอบทุกครั้งที่แอปขัดข้อง"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"เลือกแอปที่พร้อมใช้งาน ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"เปิด (ปิดเสียง)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"ปิด"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"รายละเอียดเครือข่าย"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"แอปในโทรศัพท์จะเห็นชื่อของอุปกรณ์ และคนอื่นก็อาจเห็นเช่นกันหากคุณเชื่อมต่อกับอุปกรณ์บลูทูธหรือตั้งค่าฮอตสปอต Wi-Fi"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"แอปในโทรศัพท์จะเห็นชื่อของอุปกรณ์ และคนอื่นก็อาจเห็นเช่นกันหากคุณเชื่อมต่อกับอุปกรณ์บลูทูธหรือเครือข่าย Wi-Fi หรือตั้งค่าฮอตสปอต Wi-Fi"</string>
<string name="devices_title" msgid="649715719278562515">"อุปกรณ์"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"การตั้งค่าทั้งหมด"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"คำแนะนำ"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"เปิดใช้งานซิมไม่ได้"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"ถอดซิมออกแล้วใส่กลับเข้าไปอีกครั้ง หากยังพบปัญหาอยู่ ให้รีสตาร์ทอุปกรณ์"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"ลองเปิดใช้ซิมอีกครั้ง หากยังพบปัญหาอยู่ ให้รีสตาร์ทอุปกรณ์"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"การเปิดใช้งานเครือข่าย"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> ใช้งานอยู่"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"แตะเพื่ออัปเดตการตั้งค่าซิม"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"ซิมการ์ด"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ลบซิมที่ดาวน์โหลดมานี้ใช่ไหม"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"การลบซิมนี้จะนำบริการ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> ออกจากอุปกรณ์นี้\n\nแต่จะไม่ยกเลิกบริการของ <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"ลบ"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"การโทรผ่าน Wi-Fi ให้คุณโทรออกและรับสายผ่านเครือข่ายที่ไม่ได้เป็นของผู้ให้บริการ เช่น เครือข่าย Wi-Fi บางเครือข่ายได้"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"การโทร"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"ต้องการ"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"สายสนทนาที่ต้องการ"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS ที่ต้องการ"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ไม่ว่าง"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"ไม่มีซิม"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ค่ากำหนด"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"เชื่อมต่อเครือข่ายสาธารณะ"</string>
<string name="keywords_internet" msgid="7674082764898690310">"การเชื่อมต่อเครือข่าย, อินเทอร์เน็ต, ไร้สาย, อินเทอร์เน็ตมือถือ, wifi, wi-fi, wi fi, เครือข่ายมือถือ, อุปกรณ์เคลื่อนที่, ผู้ให้บริการเครือข่ายมือถือ, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"ดูเครือข่ายที่ใช้บนเครื่องบินได้ปลอดภัย"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"ปิดโหมดบนเครื่องบิน"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"ใช้ไม่ได้เนื่องจากโหมดเวลาเข้านอนเปิดอยู่"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"รีเซ็ตความสำคัญในการแจ้งเตือนแล้ว"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"แอป"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index dc54137..c0ab29d 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Mga IPv6 address"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Naka-save na network"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Mga Subscription"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Iba pang network"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Mga setting ng IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Hindi available para sa user na ito ang mga advanced na setting ng Wi‑Fi"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"I-save"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"I-delete ang APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Bagong APN"</string>
<string name="menu_save" msgid="6611465355127483100">"I-save"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Itapon"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Kanselahin"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Hindi maaaring walang laman ang field ng Pangalan."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Hindi maaaring walang laman ang APN."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Nagamit ang tablet nang higit sa karaniwan"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Nagamit ang device nang higit sa karaniwan"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Baka mas maagang maubos ang baterya kaysa sa karaniwan"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Pansamantalang limitado ang baterya"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Nakakatulong na panatilihin ang tagal ng baterya. Mag-tap para matuto pa."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Pansamantalang limitado ang baterya. Mag-tap para matuto pa."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Nagamit ang iyong telepono nang mas madalas kaysa sa karaniwan. Puwedeng maubos ang iyong baterya nang mas mabilis kaysa sa inaasahan.\n\nMga nangungunang app ayon sa paggamit ng baterya:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Nagamit ang iyong tablet nang mas madalas kaysa sa karaniwan. Puwedeng maubos ang iyong baterya nang mas mabilis kaysa sa inaasahan.\n\nMga nangungunang app ayon sa paggamit ng baterya:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Nagamit ang iyong device nang mas madalas kaysa sa karaniwan. Puwedeng maubos ang iyong baterya nang mas mabilis kaysa sa inaasahan.\n\nMga nangungunang app ayon sa paggamit ng baterya:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Huwag i-install"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"I-install pa rin"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Hindi na-install ang certificate"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Payagan ang <xliff:g id="APP_NAME">%s</xliff:g> na mag-install ng mga certificate sa device na ito?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Tutukuyin ka ng mga certificate na ito sa mga app at URL sa ibaba"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Huwag payagan"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Payagan"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Magpakita pa"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"App ng certificate management"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Wala"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Makikilala ka ng mga app at URL na nasa ibaba dahil sa mga certificate na ii-install ng app na ito"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Alisin"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Signal sa pang-emergency na pag-dial"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Itakda ang pag-uugali kapag naganap ang isang pang-emergency na tawag"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Pag-back Up"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Max ng mga nakikitang dataset"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"I-reset sa mga default na value"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Na-reset ang mga autofill na opsyon ng developer"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Ipatupad ang kumpletong sukat ng GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Sinusubaybayan ang lahat ng constellation at dalas ng GNSS nang walang duty cycling"</string>
<string name="device_theme" msgid="5027604586494772471">"Tema ng device"</string>
<string name="default_theme" msgid="4815428567082263639">"Default"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Pangalan ng network"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"I-pause ang mga notification para manatiling nakatuon ang pansin"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Hindi available ang feature"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Na-off ang feature na ito dahil pinapabagal nito ang iyong telepono"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Ipatupad ang kumpletong sukat ng GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Sinusubaybayan ang lahat ng constellation at dalas ng GNSS nang walang duty cycling"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Palaging ipakita ang dialog ng pag-crash"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Magpakita ng dialog sa tuwing magka-crash ang isang app"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Pumili ng app na may naka-enable na ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Naka-on (naka-mute)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Naka-off"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Mga detalye ng network"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Nakikita ang pangalan ng iyong device sa mga app sa iyong telepono. Maaari rin itong makita ng ibang tao kapag kumonekta ka sa mga Bluetooth device o nag-set up ka ng Wi-Fi hotspot."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Nakikita ng mga app sa iyong telepono ang pangalan ng device mo. Puwede rin itong makita ng ibang tao kapag ikaw ay kumonekta sa mga Bluetooth device, kumonekta sa Wi-Fi network, o nag-set up ng Wi-Fi hotspot."</string>
<string name="devices_title" msgid="649715719278562515">"Mga Device"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Lahat ng Setting"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Mga Mungkahi"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Hindi ma-activate ang SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Alisin ang SIM at ilagay ito ulit. Kung magpapatuloy ang problema, i-restart ang iyong device."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Subukang i-on ulit ang SIM. Kung magpapatuloy ang problema, i-restart ang iyong device."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Pag-activate ng network"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"Aktibo ang <xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"I-tap para i-update ang mga setting ng SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM card"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Burahin ang na-download na SIM na ito?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Kapag binura ang SIM na ito, maaalis ang serbisyo ng <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> sa device na ito.\n\nHindi makakansela ang serbisyo para sa <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Burahin"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Nagbibigay-daan sa iyo ang pagtawag gamit ang Wi-Fi na tumawag at makatanggap ng mga tawag sa mga non-carrier network gaya ng ilang Wi‑Fi network."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Mga Tawag"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"mas gusto"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"mas gusto ang mga tawag"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"mas gusto ang SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"hindi available"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Walang SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Mga Kagustuhan"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Kumonekta sa mga pampublikong network"</string>
<string name="keywords_internet" msgid="7674082764898690310">"koneksyon ng network, internet, wireless, data, wifi, wi-fi, wi fi, cellular, mobile, cell carrier, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Tingnan ang mga airplane-safe na network"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"I-off ang Airplane Mode"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Hindi available dahil naka-on ang bedtime mode"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Tapos na ang pag-reset sa kahalagahan ng notification."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Mga App"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index ce204d9..78b309f 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 adresleri"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Kayıtlı ağlar"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Abonelikler"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Diğer ağlar"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP ayarları"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Bu kullanıcı, gelişmiş Kablosuz ayarlarını kullanamaz"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Kaydet"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APN\'yi sil"</string>
<string name="menu_new" msgid="6571230342655509006">"Yeni APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Kaydet"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Sil"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"İptal"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Ad alanı boş olamaz."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN boş olamaz."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Tablet normalden daha fazla kullanıldı"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Cihaz normalden daha fazla kullanıldı"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Pil normalden daha erken bitebilir"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Pil geçici olarak sınırlı"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Pil sağlığını korumaya yardımcı olur. Daha fazla bilgi için dokunun."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Pil geçici olarak sınırlı. Daha fazla bilgi için dokunun."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefonunuz normalden daha fazla kullanıldı. Piliniz beklenenden daha erken bitebilir.\n\nEn çok pil kullanan uygulamalar:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Tabletiniz normalden daha fazla kullanıldı. Piliniz beklenenden daha erken bitebilir.\n\nEn çok pil kullanan uygulamalar:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Cihazınız normalden daha fazla kullanıldı. Piliniz beklenenden daha erken bitebilir.\n\nEn çok pil kullanan uygulamalar:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Yükleme"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Yine de yükle"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifika yüklenmedi"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g> uygulamasının bu cihazda sertifika yüklemesine izin verilsin mi?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Bu sertifikalar sizi aşağıdaki uygulamalara ve URL\'lere tanıtacaktır"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"İzin verme"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"İzin ver"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Daha fazla göster"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Sertifika yönetim uygulaması"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Yok"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Bu uygulama tarafından yüklenen sertifikalar, sizi aşağıdaki uygulamalara ve URL\'lere tanıtır"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Kaldır"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Acil durum arama sinyali"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Acil çağrı yapıldığında nasıl işlev göreceğini ayarlayın"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Yedekleme"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksimum görünür veri kümesi"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Varsayılan değerlere sıfırla"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Otomatik doldurma geliştirici seçenekleri sıfırlandı"</string>
+ <string name="location_category" msgid="3496759112306219062">"Yer"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Durum çubuğu konum göstergesi"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Ağ ve bağlantı dahil olmak üzere tüm konumlar için göster"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Tam GNSS ölçümlerini zorla"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Tüm GNSS takımyıldızlarını ve görev döngüsü olmayan frekansları takip et"</string>
<string name="device_theme" msgid="5027604586494772471">"Cihaz teması"</string>
<string name="default_theme" msgid="4815428567082263639">"Varsayılan"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Ağ adı"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Konsantrasyonunuzu bozmamak için bildirimleri duraklatın"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Özellik kullanılamıyor"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Bu özellik, telefonunuzu yavaşlattığı için kapatıldı."</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Tam GNSS ölçümlerini zorla"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Tüm GNSS takımyıldızlarını ve görev döngüsü olmayan frekansları takip et"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Kilitlenme iletişim kutusunu her zaman göster"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Her uygulama kilitlendiğinde iletişim kutusunu göster"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE özellikli uygulamayı seçin"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Açık (sessiz)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Kapalı"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Ağ ayrıntıları"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Telefonunuzdaki uygulamalar cihazınızın adını görür. Bluetooth cihazlarına bağlandığınızda veya bir kablosuz hotspot ayarladığınızda başka kişiler de bu adı görebilir."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Telefonunuzdaki uygulamalar, cihazınızın adını görebilecek. Cihazınızın adı ayrıca Blueetoth cihazlara bağlandığınızda, kablosuz ağa bağlandığınızda veya kablosuz hotspot oluşturduğunuzda diğer kişiler tarafından görülecektir."</string>
<string name="devices_title" msgid="649715719278562515">"Cihazlar"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Tüm Ayarlar"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Öneriler"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM etkinleştirilemiyor"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM\'i çıkarıp tekrar yerleştirmeyi deneyin. Sorun devam ederse cihazınızı yeniden başlatın."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM\'i tekrar açmayı deneyin. Sorun devam ederse cihazınızı yeniden başlatın."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ağ etkinleştirme"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> etkin durumda"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM ayarlarını güncellemek için dokunun"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM kart"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"İndirilen bu SIM silinsin mi?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Bu SIM silindiğinde, <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> hizmeti bu cihazdan kaldırılır.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> hizmeti iptal edilmez."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Sil"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Kablosuz çağrı, bazı kablosuz ağlar gibi operatör olmayan ağlar üzerinden arama yapmanıza ve almanıza olanak tanır."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Çağrılar"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"tercih edilen"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"arama tercih edildi"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"SMS tercih edildi"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"kullanılamıyor"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM kart yok"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Tercihler"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Herkese açık ağlara bağlan"</string>
<string name="keywords_internet" msgid="7674082764898690310">"ağ bağlantısı, internet, kablosuz, veri, wifi, wi-fi, wi fi, hücresel, mobil, hücresel operatör, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Uçakta kullanımı güvenli ağları göster"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Uçak Modu\'nu kapat"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Uyku vakti modu açık olduğundan kullanılamıyor"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Bildirimlerin önemini sıfırlama işlemi tamamlandı."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Uygulamalar"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 45eadaf..9414028 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -1062,8 +1062,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Адреси IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Збережені мережі"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Підписки"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Інші мережі"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Налаштування IP-адр."</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Розширені налаштування Wi-Fi недоступні для цього користувача"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Зберегти"</string>
@@ -1639,7 +1638,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Видалити APN"</string>
<string name="menu_new" msgid="6571230342655509006">"Нова точка доступу APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Зберегти"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Відхилити"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Скасувати"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Поле \"Назва\" не може бути порожнім."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"Поле APN не може бути порожнім."</string>
@@ -2510,16 +2509,17 @@
<string name="battery_tip_smart_battery_title" product="tablet" msgid="6813017377960004819">"Подовжте час роботи акумулятора планшета"</string>
<string name="battery_tip_smart_battery_title" product="device" msgid="4805599360437606335">"Подовжте час роботи акумулятора пристрою"</string>
<string name="battery_tip_smart_battery_summary" msgid="3592965553502362965">"Увімкніть диспетчер заряду акумулятора"</string>
- <string name="battery_tip_early_heads_up_title" msgid="4411387863476629452">"Увімкніть режим економії заряду акумулятора"</string>
+ <string name="battery_tip_early_heads_up_title" msgid="4411387863476629452">"Увімкніть режим енергозбереження"</string>
<string name="battery_tip_early_heads_up_summary" msgid="578523794827443977">"Акумулятор може розрядитися швидше, ніж зазвичай"</string>
- <string name="battery_tip_early_heads_up_done_title" msgid="4413270905575486715">"Режим економії заряду акумулятора ввімкнено"</string>
+ <string name="battery_tip_early_heads_up_done_title" msgid="4413270905575486715">"Режим енергозбереження ввімкнено"</string>
<string name="battery_tip_early_heads_up_done_summary" msgid="7858923105760361208">"Деякі функції можуть не працювати"</string>
<string name="battery_tip_high_usage_title" product="default" msgid="2375953293196088319">"Телефон використовується більше, ніж зазвичай"</string>
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Планшет використовується більше, ніж зазвичай"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Пристрій використовується більше, ніж зазвичай"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Акумулятор може розрядитися швидше, ніж зазвичай"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Дані акумулятора тимчасово недоступні"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Допомагає заощадити заряд акумулятора. Натисніть, щоб дізнатися більше."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Потужність акумулятора тимчасово обмежена. Натисніть, щоб дізнатися більше."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Ваш телефон використовується більше, ніж зазвичай. Акумулятор може розрядитися швидше.\n\nДодатки, які використовують найбільше заряду:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Ваш планшет використовується більше, ніж зазвичай. Акумулятор може розрядитися швидше.\n\nДодатки, які використовують найбільше заряду:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Ваш пристрій використовується більше, ніж зазвичай. Акумулятор може розрядитися швидше.\n\nДодатки, які використовують найбільше заряду:"</string>
@@ -2663,7 +2663,7 @@
<string name="battery_sugg_bluetooth_headset" msgid="6495519793211758353">"Спробуйте з’єднатися з іншим пристроєм Bluetooth"</string>
<string name="battery_desc_apps" msgid="4187483940383266017">"Як програма використовує акумулятор"</string>
<string name="battery_sugg_apps_info" msgid="4796917242296658454">"Зупиніть або видаліть цю програму"</string>
- <string name="battery_sugg_apps_gps" msgid="7221335088647925110">"Виберіть режим економії заряду акумулятора"</string>
+ <string name="battery_sugg_apps_gps" msgid="7221335088647925110">"Виберіть режим енергозбереження"</string>
<string name="battery_sugg_apps_settings" msgid="6527223370162382166">"У програмі можуть бути налаштування режиму енергозбереження"</string>
<string name="battery_desc_users" msgid="1959428568888686847">"Використання акумулятора користувачем"</string>
<string name="battery_desc_unaccounted" msgid="1649497860893660763">"Невраховане споживання заряду акумулятора"</string>
@@ -2694,7 +2694,7 @@
<string name="menu_stats_refresh" msgid="6727628139586938835">"Оновити"</string>
<string name="process_mediaserver_label" msgid="6135260215912215092">"Медіа-сервер"</string>
<string name="process_dex2oat_label" msgid="1190208677726583153">"Оптимізація додатка"</string>
- <string name="battery_saver" msgid="7737147344510595864">"Режим економії заряду акумулятора"</string>
+ <string name="battery_saver" msgid="7737147344510595864">"Режим енергозбереження"</string>
<string name="battery_saver_auto_title" msgid="6789753787070176144">"Вмикати автоматично"</string>
<string name="battery_saver_auto_no_schedule" msgid="5123639867350138893">"Немає розкладу"</string>
<string name="battery_saver_auto_routine" msgid="4656495097900848608">"На основі звичного часу заряджання"</string>
@@ -2710,7 +2710,7 @@
<!-- no translation found for battery_saver_seekbar_title (3712266470054006641) -->
<skip />
<string name="battery_saver_seekbar_title_placeholder" msgid="7141264642540687540">"Увімкнути"</string>
- <string name="battery_saver_master_switch_title" msgid="3474312070095834915">"Використовувати режим економії заряду акумулятора"</string>
+ <string name="battery_saver_master_switch_title" msgid="3474312070095834915">"Використовувати режим енергозбереження"</string>
<string name="battery_saver_turn_on_automatically_title" msgid="7857393318205740864">"Вмикати автоматично"</string>
<string name="battery_saver_turn_on_automatically_never" msgid="6194649389871448663">"Ніколи"</string>
<string name="battery_saver_turn_on_automatically_pct" msgid="4294335680892392449">"коли рівень заряду акумулятора – <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
@@ -2799,6 +2799,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Не встановлювати"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Усе одно встановити"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Сертифікат не встановлено"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Дозволити додатку <xliff:g id="APP_NAME">%s</xliff:g> встановлювати сертифікати на цьому пристрої?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"За допомогою цих сертифікатів перелічені нижче додатки та веб-сторінки визначатимуть вашу особу"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Не дозволяти"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Дозволити"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Показати більше"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Додаток для керування сертифікатами"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Немає"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"За допомогою сертифікатів, установлених цим додатком, наведені нижче додатки й веб-сторінки впізнають вас"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Вилучити"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Сигнал екстреного виклику"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Устан. поведінку при розміщ. аварійного виклику"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Резервне копіювання"</string>
@@ -4802,6 +4811,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Максимальні видимі набори даних"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Відновити значення за умовчанням"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Скинуто параметри автозаповнення, які вказав розробник"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Увімкнути повне вимірювання GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Відстежувати всі фотосхеми й частоти GNSS без застосування циклічного режиму"</string>
<string name="device_theme" msgid="5027604586494772471">"Тема пристрою"</string>
<string name="default_theme" msgid="4815428567082263639">"За умовчанням"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Назва мережі"</string>
@@ -4818,8 +4835,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Призупинити сповіщення, щоб не відволікатися"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Функція недоступна"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Цю функцію вимкнено, оскільки вона сповільнює роботу телефона"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Увімкнути повне вимірювання GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Відстежувати всі фотосхеми й частоти GNSS без застосування циклічного режиму"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Завжди показувати вікно збоїв"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Показувати вікно під час кожного збою додатка"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Виберіть додаток із підтримкою ANGLE"</string>
@@ -4887,7 +4902,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Увімкнено (вимкнено звук)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Вимкнено"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Дані мережі"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Додатки на телефоні бачать назву пристрою. Її також можуть бачити інші люди, коли ви під’єднуєтеся до пристроїв Bluetooth або налаштовуєте точку доступу Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Назва пристрою відображається в додатках на телефоні. Її також можуть бачити інші люди, коли ви підключаєтеся до пристроїв Bluetooth або налаштовуєте точку доступу Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Пристрої"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Усі налаштування"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Пропозиції"</string>
@@ -5049,6 +5064,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Не вдається активувати SIM-карту"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Вийміть SIM-карту та вставте її знову. Якщо проблема не зникне, перезапустіть пристрій."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Спробуйте знову ввімкнути SIM-карту. Якщо проблема не зникне, перезапустіть пристрій."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Активація мережі"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> активовано"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Натисніть, щоб оновити налаштування SIM-карти"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM-карта"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Видалити цю завантажену SIM-карту?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Якщо ви видалите цю SIM-карту, послугу оператора \"<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>\" буде скасовано на цьому пристрої.\n\nПослугу оператора \"<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>\" не буде скасовано."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Видалити"</string>
@@ -5201,18 +5220,21 @@
<string name="keywords_airplane_safe_networks" msgid="5902708537892978245">"літак, безпечний у літаку"</string>
<string name="calls_and_sms" msgid="1931855083959003306">"Дзвінки та SMS"</string>
<string name="calls_and_sms_category" msgid="2021321997884906046">"Дзвінки через Wi‑Fi"</string>
- <!-- no translation found for calls_sms_wfc_summary (4930471357980272294) -->
- <skip />
- <!-- no translation found for calls_sms_footnote (7002461875954024216) -->
- <skip />
+ <string name="calls_sms_wfc_summary" msgid="4930471357980272294">"Здійснюйте й отримуйте дзвінки через мережі Wi‑Fi, а не операторів мобільного зв\'язку"</string>
+ <string name="calls_sms_footnote" msgid="7002461875954024216">"Завдяки функції \"Дзвінки через Wi-Fi\" ви можете здійснювати та отримувати дзвінки не лише через мережі операторів мобільного зв\'язку, а й через Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Дзвінки"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"пріоритетні"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"пріоритетні дзвінки"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"пріоритетні SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"недоступно"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Немає SIM-карти"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Параметри"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Підключатися до загальнодоступних мереж"</string>
- <!-- no translation found for keywords_internet (7674082764898690310) -->
- <skip />
+ <string name="keywords_internet" msgid="7674082764898690310">"з\'єднання з мережею, Інтернет, бездротове, дані, Wi-Fi, wi-fi, wi fi, мобільний, стільниковий, оператор мобільного зв\'язку, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Показати безпечні в літаку мережі"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Вимкнути режим польоту"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Недоступно в нічному режимі"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Пріоритет сповіщень скинуто."</string>
- <!-- no translation found for apps_dashboard_title (3269953499954393706) -->
- <skip />
+ <string name="apps_dashboard_title" msgid="3269953499954393706">"Додатки"</string>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 1a84bcd..3477532 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 پتے"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"محفوظ کردہ نیٹ ورکس"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"سبسکرپشنز"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"دیگر نیٹ ورکس"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP ترتیبات"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"اس صارف کیلئے Wi‑Fi کی اعلی ترتیبات دستیاب نہیں ہیں"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"محفوظ کریں"</string>
@@ -1597,7 +1596,8 @@
<string name="menu_delete" msgid="9199740901584348273">"APN کو حذف کریں"</string>
<string name="menu_new" msgid="6571230342655509006">"نیا APN"</string>
<string name="menu_save" msgid="6611465355127483100">"محفوظ کریں"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"مسترد کریں"</string>
+ <!-- no translation found for menu_cancel (1197826697950745335) -->
+ <skip />
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"نام فیلڈ خالی نہیں رہ سکتی۔"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN خالی نہيں رہ سکتا۔"</string>
@@ -2456,8 +2456,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"ٹیبلیٹ معمول سے زیادہ استعمال کیا گیا ہے"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"آلہ معمول سے زیادہ استعمال کیا گیا ہے"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"بیٹری معمول سے پہلے ختم ہو سکتی ہے"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"بیٹری عارضی طور پر محدود ہے"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"بیٹری کی صحت محفوظ رکھنے میں مدد ملتی ہے۔ مزید جاننے کیلئے تھپتھپائیں۔"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"بیٹری عارضی طور پر محدود ہے۔ مزید جاننے کے لیے تھپتھپائیں۔"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"آپ کا فون معمول سے زیادہ استعمال کیا گيا ہے۔ آپ کی بیٹری توقع سے پہلے ختم ہو سکتی ہے۔\n\nبیٹری کے استعمال کے لحاظ سے سب سے زيادہ استعمال کردہ ایپس:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"آپ کا ٹیبلیٹ معمول سے زیادہ استعمال کیا گيا ہے۔ آپ کی بیٹری توقع سے پہلے ختم ہو سکتی ہے۔\n\nبیٹری کے استعمال کے لحاظ سے سب سے زيادہ استعمال کردہ ایپس:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"آپ کا آلہ معمول سے زیادہ استعمال کیا گيا ہے۔ آپ کی بیٹری توقع سے پہلے ختم ہو سکتی ہے۔\n\nبیٹری کے استعمال کے لحاظ سے سب سے زيادہ استعمال کردہ ایپس:"</string>
@@ -2723,6 +2724,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"انسٹال نہ کریں"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"بہر حال انسٹال کریں"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"سرٹیفکیٹ انسٹال نہیں ہے"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g> کو اس آلے پر سرٹیفکیٹس انسٹال کرنے کی اجازت دیں؟"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"یہ سرٹیفکیٹس مندرجہ ذیل ایپس اور URL سے آپ کی شناخت کریں گے"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"اجازت نہ دیں"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"اجازت دیں"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"مزید دکھائیں"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"سرٹیفکیٹ مینجمنٹ ایپ"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"کوئی نہیں"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"اس ایپ کے ذریعے انسٹال کردہ سرٹیفکیٹس آپ کی شناخت نیچے کی ایپس اور URLs میں کرتے ہیں"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"ہٹائیں"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"ایمرجنسی ڈائلنگ سگنل"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"ہنگامی کال کرتے وقت برتاؤ سیٹ کریں"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"بیک اپ"</string>
@@ -3883,12 +3893,9 @@
<string name="switch_on_text" msgid="5664542327776075105">"آن"</string>
<string name="switch_off_text" msgid="1315547447393646667">"آف"</string>
<string name="screen_pinning_title" msgid="6927227272780208966">"ایپ کو پن کرنا"</string>
- <!-- no translation found for app_pinning_intro (6409063008733004245) -->
- <skip />
- <!-- no translation found for screen_pinning_description (7289730998890213708) -->
- <skip />
- <!-- no translation found for screen_pinning_guest_user_description (5826264265872938958) -->
- <skip />
+ <string name="app_pinning_intro" msgid="6409063008733004245">"ایپ کو پن کرنے سے آپ کو حالیہ ایپ سے پن ہٹانے تک اسے منظر میں رکھنے کی اجازت ہوتی ہیں۔ اس خصوصیت کا استعمال کیا جا سکتا ہے مثال کے طور پر، کسی بھروسے مند دوست کو ایک مخصوص گیم کھیلنے کی اجازت دینا۔"</string>
+ <string name="screen_pinning_description" msgid="7289730998890213708">"کسی ایپ کو پن کرنے پر پن کردہ ایپ دیگر ایپس کو کھول سکتی ہے اور ذاتی ڈیٹا قابل رسائی ہو سکتا ہے۔ \n\nایپ کو پن کرنا استعمال کرنے کے لیے: ←\n1۔ ایپ کو پن کرنا آن کریں ←\n2۔ مجموعی جائزہ کھولیں ←\n3۔ اسکرین کے اوپری حصے پر ایپ آئیکن پر تھپتھپائیں پھر \'پن کریں\' پر تھپتھپائیں"</string>
+ <string name="screen_pinning_guest_user_description" msgid="5826264265872938958">"کسی ایپ کو پن کرنے پر پن کردہ ایپ دیگر ایپس کو کھول سکتی ہے اور ذاتی ڈیٹا قابل رسائی ہو سکتا ہے۔ \n\nاگر آپ محفوظ طریقے سے اپنے آلے کا کسی کے ساتھ اشتراک کرنا چاہتے ہیں تو اس کے بجائے مہمان صارف استعمال کر کے آزمائیں۔ \n\nایپ کو پن کرنا استعمال کرنے کے ليے: ←\n1۔ ایپ کو پن کرنا آن کریں ←\n2۔ مجموعی جائزہ کھولیں ←\n3۔ اسکرین کے اوپری حصے پر ایپ آئیکن پر تھپتھپائیں پھر \'پن کریں\' پر تھپتھپائیں"</string>
<string name="screen_pinning_dialog_message" msgid="8144925258679476654">"جب ایپ کو پن کر دیا گیا ہے: \n\n•←← ذاتی ڈیٹا قابل رسائی ہوسکتا ہے \n←←(جیسے رابطے اور ای میل کا مواد) \n•←←پن کردہ ایپ دیگر ایپس کو کھول سکتی ہے \n\nصرف ان لوگوں کے ساتھ ایپ کو پن کرنا استعمال کریں جس پر بھروسہ کرتے ہیں۔"</string>
<string name="screen_pinning_unlock_pattern" msgid="1345877794180829153">"پن ہٹانے سے پہلے غیر مقفل کرنے کا پیٹرن طلب کریں"</string>
<string name="screen_pinning_unlock_pin" msgid="8716638956097417023">"پن ہٹانے سے پہلے PIN طلب کریں"</string>
@@ -4511,8 +4518,7 @@
<string name="ambient_display_tap_screen_title" product="device" msgid="4423803387551153840">"آلہ چیک کرنے کے لیے تھپتھپائیں"</string>
<string name="ambient_display_tap_screen_summary" msgid="4480489179996521405">"وقت، اطلاعات، اور دیگر معلومات چیک کرنے کے لیے اپنی اسکرین کو دو بار تھپتھپائیں۔"</string>
<string name="emergency_gesture_screen_title" msgid="3280543310204360902">"ہنگامی SOS"</string>
- <!-- no translation found for emergency_gesture_switchbar_title (7494629420708117232) -->
- <skip />
+ <string name="emergency_gesture_switchbar_title" msgid="7494629420708117232">"ایمرجنسی SOS کا استعمال کریں"</string>
<string name="emergency_gesture_entrypoint_summary" msgid="4730874229911208834">"<xliff:g id="APP_NAME">%1$s</xliff:g> کے زیر انتظام ہے"</string>
<string name="emergency_gesture_screen_summary" msgid="458991229689082120">"پاور بٹن کو تیزی سے 5 بار یا اس سے زیادہ بار دبا کر نیچے کاروائیاں شروع کریں"</string>
<string name="emergency_gesture_sound_setting_title" msgid="7153948164862156536">"الٹی گنتی کا الارم چلائیں"</string>
@@ -4646,6 +4652,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"زیادہ سے زیادہ مرئی ڈیٹا سیٹس"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"ڈیفالٹ اقدار پر دوبارہ ری سیٹ کریں"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"آٹو فل ڈویلپر کے اختیارات کو دوبارہ ترتیب دے دیا گیا ہے"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"مکمل GNSS پیمائشوں کو زبردستی لاگو کریں"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ڈیوٹی سائیکلنگ کے بغیر سبھی GNSS مجموعوں اور کثرتوں کو ٹریک کریں"</string>
<string name="device_theme" msgid="5027604586494772471">"آلہ کا تھیم"</string>
<string name="default_theme" msgid="4815428567082263639">"ڈیفالٹ"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"نیٹ ورک کا نام"</string>
@@ -4662,8 +4676,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"متوجہ رہنے کے لیے اطلاعات موقوف کریں"</string>
<string name="disabled_feature" msgid="7151433782819744211">"خصوصیت دستیاب نہیں ہے"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"اس خصوصیت کو آف کر دیا گیا کیونکہ یہ آپ کے فون کو سست کر دیتی ہے"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"مکمل GNSS پیمائشوں کو زبردستی لاگو کریں"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"ڈیوٹی سائیکلنگ کے بغیر سبھی GNSS مجموعوں اور کثرتوں کو ٹریک کریں"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"ہمیشہ ناکامی کا ڈائیلاگ دکھائیں"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"جب بھی ایپ ناکام ہو تو ڈائیلاگ دکھائیں"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE کے لیے فعال ایپ منتخب کریں"</string>
@@ -4731,7 +4743,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"آن (خاموش کریں)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"آف"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"نیٹ ورک کی تفصیلات"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"آپ کے آلہ کا نام آپ کے فون پر موجود ایپس میں مرئی ہوتا ہے۔ جب آپ بلوٹوتھ آلات سے منسلک ہوتے ہیں یا Wi-Fi ہاٹ اسپاٹ سیٹ اپ کرتے ہیں تو دوسرے لوگ بھی اسے دیکھ سکتے ہیں۔"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"آپ کے آلے کا نام آپ کے فون پر موجود ایپس میں دکھائی دیتا ہے۔ آپ کے بلوٹوتھ آلات سے منسلک ہونے، Wi-Fi نیٹ ورک سے منسلک ہونے یا Wi-Fi ہاٹ اسپاٹ کو سیٹ اپ کرنے پر دوسرے لوگ بھی اسے دیکھ سکتے ہیں۔"</string>
<string name="devices_title" msgid="649715719278562515">"آلات"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"تمام ترتیبات"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"تجاویز"</string>
@@ -4891,6 +4903,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM کو فعال نہیں کیا جا سکتا"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM نکال کر دوبارہ داخل کریں۔ مسئلے کے برقرار رہنے پر اپنا آلہ ری اسٹارٹ کریں۔"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM کو دوبارہ آن کرنے کی کوشش کریں۔ مسئلے کے برقرار رہنے پر اپنا آلہ ری اسٹارٹ کریں۔"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"نیٹ ورک کی فعالیت"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> فعال ہے"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM کی ترتیبات کو اپ ڈیٹ کرنے کے ليے تھپتھپائیں"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM کارڈ"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"ڈاؤن لوڈ کردہ اس SIM کو مٹائیں؟"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"اس SIM کو مٹانے سے اس آلہ سے <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> سروس ہٹ جاتی ہے۔\n\n <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> کی سروس منسوخ نہیں ہوگی۔"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"مٹائیں"</string>
@@ -4968,12 +4984,9 @@
<string name="wfc_disclaimer_emergency_limitation_title_text" msgid="8276287227589397162">"ہنگامی کالز"</string>
<string name="wfc_disclaimer_emergency_limitation_desc_text" msgid="5503902001191552196">"آپ کے کیریئر کی جانب سے Wi-Fi پر ہنگامی کالز تعاون یافتہ نہیں ہیں۔\nہنگامی کال کرنے کے لیے آلہ خود کار طور پر سیلولر نیٹ ورک پر سوئچ ہو جاتا ہے۔\nہنگامی کالز صرف سیلولر کوریج والے علاقے میں ممکن ہیں۔"</string>
<string name="wifi_calling_summary" msgid="8566648389959032967">"معیار کو بہتر بنانے کے لیے کالز کے لیے Wi-Fi کا استعمال کریں"</string>
- <!-- no translation found for cross_sim_calling_settings_title (1179406214047299816) -->
- <skip />
- <!-- no translation found for cross_sim_calling_setting_summary (7960473304104701519) -->
- <skip />
- <!-- no translation found for keywords_cross_sim_calling (1702104511020507778) -->
- <skip />
+ <string name="cross_sim_calling_settings_title" msgid="1179406214047299816">"کراس SIM کالنگ"</string>
+ <string name="cross_sim_calling_setting_summary" msgid="7960473304104701519">"اس SIM پر کسی اور SIM کی کالز اور SMSs کی اجازت دیں۔"</string>
+ <string name="keywords_cross_sim_calling" msgid="1702104511020507778">"کراس sim کالنگ"</string>
<string name="enable_receiving_mms_notification_title" msgid="6465218559386990248">"آنے والا MMS پیغام"</string>
<string name="enable_sending_mms_notification_title" msgid="7120641300854953375">"MMS پیغام نہیں بھیجا جا سکا"</string>
<string name="enable_mms_notification_summary" msgid="6432752438276672500">"موبائل ڈیٹا آف ہونے پر <xliff:g id="OPERATOR_NAME">%1$s</xliff:g> پر MMS پیغام رسانی کی اجازت دینے کے لیے تھپتھپائیں"</string>
@@ -5046,9 +5059,21 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi کالنگ آپ کو کچھ Wi-Fi نیٹ ورک جیسے غیر کیریئر نیٹ ورکس پر کالز کرنے اور موصول کرنے کی اجازت دیتی ہے۔"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"کالز"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <!-- no translation found for calls_sms_preferred (6016477652522583496) -->
+ <skip />
+ <!-- no translation found for calls_sms_calls_preferred (252913858812799809) -->
+ <skip />
+ <!-- no translation found for calls_sms_sms_preferred (5826706870873784062) -->
+ <skip />
+ <!-- no translation found for calls_sms_unavailable (4055729705246556529) -->
+ <skip />
+ <!-- no translation found for calls_sms_no_sim (2336377399761819718) -->
+ <skip />
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"ترجیحات"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"عوامی نیٹ ورکس سے منسلک ہوں"</string>
<string name="keywords_internet" msgid="7674082764898690310">"نیٹ ورک کنکشن، انٹرنیٹ، وائرلیس، ڈیٹا، wifi، wi-fi، wi fi، سیلولر، موبائل، سیل کیریئر، 4g، 3g، 2g، lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"ہوائی جہاز کے لیے محفوظ نیٹ ورکس دیکھیں"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"ہوائی جہاز وضع آف کریں"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"دستیاب نہیں ہے کیونکہ بیڈ ٹائم موڈ آن ہے"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"اطلاع کی اہمیت کو ری سیٹ کرنے کا عمل مکمل ہو گیا۔"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"ایپس"</string>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 146e67b..d2f82b7 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -73,7 +73,7 @@
<item msgid="7388036070768806193">"Qidiruv…"</item>
<item msgid="1656176059757237036">"Ulanmoqda…"</item>
<item msgid="3249903732481917388">"Tasdiqdan o‘tilmoqda…"</item>
- <item msgid="7789156794775399931">"IP manzil o‘zlashtirilmoqda…"</item>
+ <item msgid="7789156794775399931">"IP manzil olinmoqda…"</item>
<item msgid="492518447401534767">"Ulangan"</item>
<item msgid="4322989558568666518">"Muzlatildi"</item>
<item msgid="286164147080824297">"Uzilmoqda…"</item>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 745dc81..9b662d8 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -98,7 +98,7 @@
<string name="bluetooth_show_received_files" msgid="685424727760622632">"Qabul qilingan fayllar"</string>
<string name="bluetooth_show_files_received_via_bluetooth" msgid="7097860463458492953">"Bluetooth orqali olingan fayllar"</string>
<string name="bluetooth_devices_card_off_title" msgid="1320149821945129127">"Bluetooth yoqilmagan"</string>
- <string name="bluetooth_devices_card_off_summary" msgid="2276527382891105858">"Yoqish uchun ustiga bosing"</string>
+ <string name="bluetooth_devices_card_off_summary" msgid="2276527382891105858">"Yoqish uchun bosing"</string>
<string name="device_picker" msgid="2427027896389445414">"Bluetooth qurilmani tanlang"</string>
<string name="bluetooth_ask_enablement" msgid="1529030199895339199">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasi Bluetooth xizmatini yoqmoqchi"</string>
<string name="bluetooth_ask_disablement" msgid="1879788777942714761">"<xliff:g id="APP_NAME">%1$s</xliff:g> ilovasi Bluetooth xizmatini o‘chirib qo‘ymoqchi"</string>
@@ -296,7 +296,7 @@
<string name="show_profile_info_on_lockscreen_label" msgid="5734739022887933365">"Profil ma‘lumotini qulflangan ekranda ko‘rsatish"</string>
<string name="Accounts_settings_title" msgid="8434263183710375412">"Hisoblar"</string>
<string name="location_settings_title" msgid="8375074508036087178">"Joylashuv"</string>
- <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Joylashuv axborotidan foydalanish"</string>
+ <string name="location_settings_primary_switch_title" msgid="8849081766644685127">"Joylashuvni aniqlash"</string>
<string name="location_settings_summary_location_off" msgid="4797932754681162262">"Yoqilmagan"</string>
<plurals name="location_settings_summary_location_on" formatted="false" msgid="1019959038518185676">
<item quantity="other"><xliff:g id="COUNT_1">%1$d</xliff:g> ta ilovada joylashuvga ruxsat bor</item>
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 manzillar"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Saqlangan tarmoqlar"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Obunalar"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Boshqa tarmoqlar"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP sozlamalari"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Ushbu foydalanuvchi Wi-Fi kengaytirilgan sozlamalaridan foydalana olmaydi"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Saqlash"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"APNni o‘chirish"</string>
<string name="menu_new" msgid="6571230342655509006">"Yangi APN"</string>
<string name="menu_save" msgid="6611465355127483100">"Saqlash"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Bekor qilish"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Bekor qilish"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Nom to‘ldirilmagan bo‘lolmaydi."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN kiritilishi shart"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Planshet odatdagidan ko‘proq ishlatildi"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Qurilma odatdagidan ko‘proq ishlatildi"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Batareya quvvati odatdagiga nisbatan tezroq tugashi mumkin"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Batareya quvvati darajasi vaqtincha cheklangan"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Bu funksiya batareya quvvati yaroqlilik muddatini uzaytirishda yordam beradi. Batafsil axborot olish uchun bosing."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Batareya quvvati darajasi vaqtincha cheklangan. Batafsil axborot olish uchun bosing."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Telefoningiz odatdagidan koʻproq ishlatildi. Batareya quvvati kutilgandan tezroq tugashi mumkin.\n\nBatareyani eng koʻp sarflagan ilovalar:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Planshetingiz odatdagidan koʻproq ishlatildi. Batareya quvvati kutilgandan tezroq tugashi mumkin.\n\nBatareyani eng koʻp sarflagan ilovalar:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Qurilmangiz odatdagidan koʻproq ishlatildi. Batareya quvvati kutilgandan tezroq tugashi mumkin.\n\nBatareyani eng koʻp sarflagan ilovalar:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Oʻrnatilmasin"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Baribir oʻrnatilsin"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Sertifikat oʻrnatilmadi"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"<xliff:g id="APP_NAME">%s</xliff:g> ilovasiga bu qurilmada sertifikatlarni oʻrnatishga ruxsat berilsinmi?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Bu sertifikatlar sizni quyidagi ilovalar va URL manzillarga tanishtiradi"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ruxsat berilmasin"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Ruxsat berish"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Yana"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Sertifikat boshqaruvi ilovasi"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Hech qanday"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Bu ilova tomonidan oʻrnatilgan sertifikatlar quyidagi ilova va URL manzillarda shaxsingiz tasdiqlaydi"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Olib tashlash"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Favqulodda chaqiruv signali"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Favqulodda qo‘ng‘iroq uchun xususiyat o‘rnatish"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Zaxiralash"</string>
@@ -4467,9 +4476,9 @@
<string name="swipe_up_to_switch_apps_suggestion_title" msgid="5754081720589900007">"Yangi asosiy tugmani sinang"</string>
<string name="swipe_up_to_switch_apps_suggestion_summary" msgid="8885866570559435110">"Ilovalarni almashtirish uchun yangi ishorani yoqing"</string>
<string name="edge_to_edge_navigation_title" msgid="714427081306043819">"Ishorali navigatsiya"</string>
- <string name="edge_to_edge_navigation_summary" msgid="8497033810637690561">"Bosh ekranga qaytish uchun ekranning pastidan tepaga qarab suring. Bir ilovadan boshqasiga oʻtish uchun pastdan tepaga surib, bosib turing va qoʻyib yuboring. Orqaga qaytish uchun chap yoki oʻng burchakdan teskari tomonga suring."</string>
+ <string name="edge_to_edge_navigation_summary" msgid="8497033810637690561">"Bosh ekranga qaytish uchun ekranning pastidan tepaga qarab suring. Bir ilovadan boshqasiga almashish uchun pastdan tepaga surib, biroz ushlab turing va qoʻyib yuboring. Orqaga qaytish uchun ekranning chap yoki oʻng chetidan markazga qarab suring."</string>
<string name="legacy_navigation_title" msgid="7877402855994423727">"3 tugmali navigatsiya"</string>
- <string name="legacy_navigation_summary" msgid="5905301067778326433">"Orqaga, Boshiga va bir ilovadan boshqasiga oʻtish tugmalari ekranning pastida joylashgan."</string>
+ <string name="legacy_navigation_summary" msgid="5905301067778326433">"Orqaga qaytish, bosh ekranga chiqish va ilovalar orasida almashish uchun ekran pastida chiqadigan tugmalardan foydalaning."</string>
<string name="keywords_system_navigation" msgid="3131782378486554934">"tizim navigatsiyasi, 2 tugmali navigatsiya, 3 tugmali navigatsiya, ishorali navigatsiya"</string>
<string name="gesture_not_supported_dialog_message" msgid="5316512246119347889">"Bu funksiya bosh ekran ilovasida (<xliff:g id="DEFAULT_HOME_APP">%s</xliff:g>) ishlamaydi"</string>
<string name="gesture_not_supported_positive_button" msgid="7909969459977021893">"Bosh ekran ilovasini almashtirish"</string>
@@ -4642,6 +4651,11 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Maksimum ochiq axborot bazalari"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Birlamchi qiymatlariga tiklash"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Avtomatik kiritishning dasturchi parametrlari asliga qaytarildi"</string>
+ <string name="location_category" msgid="3496759112306219062">"Joylashuv"</string>
+ <string name="location_indicator_settings_title" msgid="6655916258720093451">"Holat qatoridagi joylashuv indikatori"</string>
+ <string name="location_indicator_settings_description" msgid="2888022085372804021">"Tarmoq va ulanish kabi barcha joylashuvlar uchun chiqarish"</string>
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Butun GNSS statistikasini yuklash"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Siklsiz barcha GNSS sxema va davriyliklarini kuzatish"</string>
<string name="device_theme" msgid="5027604586494772471">"Qurilma mavzusi"</string>
<string name="default_theme" msgid="4815428567082263639">"Standart"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Tarmoq nomi"</string>
@@ -4658,8 +4672,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Bezovta qiluvchi bildirishnomalarni pauza qiling"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Bu funksiya ishlamaydi"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Bu funksiya telefoningizni sekinlashtirgani sababli u faolsizlantirildi"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Butun GNSS statistikasini yuklash"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Siklsiz barcha GNSS sxema va davriyliklarini kuzatish"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Buzilish oynasi doim ko‘rsatilsin"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Ilova ishdan chiqqanda har safar muloqot oynasi ko‘rsatilsin"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"ANGLE yoqilgan ilovani tanlang"</string>
@@ -4727,7 +4739,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Yoniq (ovozsiz)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Yoqilmagan"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Tarmoq tafsilotlari"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Telefoningizdagi barcha ilovalarga qurilma nomi ko‘rinadi. Qurilmalarga Bluetooth orqali ulanganingizda yoki Wi-Fi hotspot sozlaganingizda boshqa foydalanuvchilarni ularni ko‘rishi mumkin."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Telefoningizdagi barcha ilovalarga qurilma nomi koʻrinadi. Qurilmalarga Bluetooth yoki Wi-Fi tarmoq orqali ulanganingizda, Wi-Fi hotspot sozlaganingizda boshqa foydalanuvchilarni ularni koʻrishi mumkin."</string>
<string name="devices_title" msgid="649715719278562515">"Qurilmalar"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Barcha sozlamalar"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Takliflar"</string>
@@ -4887,6 +4899,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"SIM karta faollashmadi"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"SIM kartani chiqarib olib, qaytadan soling. Agar muammo davom etsa, qurilmangizni qayta ishga tushiring."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"SIM kartani qaytadan yoqing. Agar muammo davom etsa, qurilmangizni qayta ishga tushiring."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Tarmoqni faollashtirish"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> faol"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"SIM karta sozlamalarini yangilash uchun bosing"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM karta"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Mazkur yuklab olingan SIM karta axboroti tozalansinmi?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Bu SIM karta axboroti tozalanganda bu qurilmadan <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> xizmati ham tozalab tashlanadi.\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> xizmati bekor qilinmaydi."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Tozalash"</string>
@@ -5039,9 +5055,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi chaqiruv funksiyasi mobil tarmoq ishlatmasdan Wi‑Fi tarmoqlar orqali chaqiruv qilish va chaqiruvlarni qabul qilish imkonini beradi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Chaqiruvlar"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"maqbul"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"maqbul chaqiruvlar"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"Maqbul SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"mavjud emas"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"SIM kartasiz"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Sozlamalar"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Ochiq tarmoqlarga ulanish"</string>
<string name="keywords_internet" msgid="7674082764898690310">"tarmoq aloqasi, internet, simsiz, aloqa, wifi, wi-fi, wi fi, mobil, mobile, mobil tarmoq operatori, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Samolyotdagi xavfsiz tarmoqlar"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Parvoz rejimini oʻchirish"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Uyqu vaqti rejimi yoniqligi sababli ishlamaydi"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Muhim bildirishnomalar sozlamalari tiklandi."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Ilovalar"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 0e67ffb..fe76eed 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Địa chỉ IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Mạng đã lưu"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Gói đăng ký"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Các mạng khác"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Cài đặt IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Cài đặt nâng cao Wi‑Fi không khả dụng cho người dùng này"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Lưu"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Xóa APN"</string>
<string name="menu_new" msgid="6571230342655509006">"APN mới"</string>
<string name="menu_save" msgid="6611465355127483100">"Lưu"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Hủy"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Hủy"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Không được để trống trường Tên."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN không được để trống."</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Máy tính bảng được sử dụng nhiều hơn thường lệ"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Thiết bị được sử dụng nhiều hơn thường lệ"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Pin có thể hết sớm hơn thường lệ"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Thời lượng pin bị hạn chế tạm thời"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Giúp duy trì độ bền của pin. Nhấn để tìm hiểu thêm."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Thời lượng pin bị hạn chế tạm thời. Nhấn để tìm hiểu thêm."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Bạn sử dụng điện thoại nhiều hơn mức bình thường. Pin điện thoại có thể hết sớm hơn dự kiến.\n\nCác ứng dụng dùng nhiều pin nhất:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Bạn dùng máy tính bảng nhiều hơn mức bình thường. Pin của bạn có thể hết sớm hơn dự kiến.\n\nCác ứng dụng dùng nhiều pin nhất:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Bạn dùng thiết bị nhiều hơn mức bình thường. Pin của bạn có thể hết sớm hơn dự kiến.\n\nCác ứng dụng dùng nhiều pin nhất:"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Không cài đặt"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Vẫn cài đặt"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Chưa cài đặt chứng chỉ"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Cho phép <xliff:g id="APP_NAME">%s</xliff:g> cài đặt chứng chỉ trên thiết bị này?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Những chứng chỉ này sẽ giúp các ứng dụng và URL dưới đây xác định danh tính của bạn"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Không cho phép"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Cho phép"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Hiển thị thêm"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Ứng dụng quản lý chứng chỉ"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Không"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Những chứng chỉ do ứng dụng này cài đặt sẽ giúp các ứng dụng và URL dưới đây xác định danh tính của bạn"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Xóa"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Tín hiệu quay số khẩn cấp"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Đặt chế độ khi cuộc gọi khẩn cấp được thực hiện"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Sao lưu"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Số tập dữ liệu hiển thị tối đa"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Đặt lại về giá trị mặc định"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Đã đặt lại tùy chọn tự động điền dành cho nhà phát triển"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Thực thi số đo GNSS đầy đủ"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Theo dõi tất cả chòm sao và tần suất GNSS mà không có chu kỳ làm việc"</string>
<string name="device_theme" msgid="5027604586494772471">"Giao diện thiết bị"</string>
<string name="default_theme" msgid="4815428567082263639">"Mặc định"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Tên mạng"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Tạm dừng thông báo để tập trung"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Tính năng không hoạt động"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Tính năng này đã bị tắt vì sẽ khiến điện thoại chạy chậm"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Thực thi số đo GNSS đầy đủ"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Theo dõi tất cả chòm sao và tần suất GNSS mà không có chu kỳ làm việc"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Luôn hiển thị hộp thoại sự cố"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Hiển thị hộp thoại mỗi khi ứng dụng gặp sự cố"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Chọn ứng dụng hỗ trợ ANGLE"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Bật (tắt tiếng)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Tắt"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Chi tiết mạng"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Tên thiết bị của bạn sẽ hiển thị với các ứng dụng trên điện thoại. Những người khác cũng có thể thấy tên thiết bị này khi bạn kết nối với thiết bị Bluetooth hoặc thiết lập điểm phát sóng Wi-Fi."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Tên thiết bị của bạn sẽ hiển thị với các ứng dụng trên điện thoại. Những người khác cũng có thể thấy tên thiết bị này khi bạn kết nối với thiết bị Bluetooth, mạng Wi-Fi hoặc thiết lập một điểm phát sóng Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Thiết bị"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Tất cả tùy chọn cài đặt"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Đề xuất"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Không thể kích hoạt SIM"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Hãy tháo SIM rồi lắp lại. Nếu vấn đề vẫn xảy ra, vui lòng khởi động lại thiết bị."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Hãy thử bật lại SIM. Nếu vấn đề vẫn xảy ra, vui lòng khởi động lại thiết bị."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Kích hoạt mạng"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g> đang hoạt động"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Nhấn để cập nhật tùy chọn cài đặt SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"Thẻ SIM"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Xóa SIM đã tải xuống này?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Khi bạn xóa SIM, dịch vụ <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> sẽ bị xóa khỏi thiết bị này.\n\nDịch vụ của <xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> sẽ không bị hủy."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Xóa"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Với tính năng gọi qua Wi‑Fi, bạn có thể gọi và nhận cuộc gọi qua các mạng không phải do nhà mạng cung cấp, chẳng hạn như một số mạng Wi‑Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Cuộc gọi"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"Tin nhắn SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"ưu tiên"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"ưu tiên cuộc gọi"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"ưu tiên SMS"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"không có sẵn"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Không có SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Lựa chọn ưu tiên"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Kết nối với mạng công cộng"</string>
<string name="keywords_internet" msgid="7674082764898690310">"kết nối mạng, Internet, không dây, dữ liệu, wifi, wi-fi, wi fi, di động, nhà mạng di động, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Xem các mạng an toàn với máy bay"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Tắt Chế độ trên máy bay"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Không dùng được vì chế độ giờ đi ngủ đang bật"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Đã hoàn tất việc đặt lại mức độ quan trọng của thông báo."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Ứng dụng"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 34244d5..7b08068 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -1022,7 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 地址"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"已保存的网络"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"订阅"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
+ <!-- no translation found for wifi_saved_other_networks_tab (7942647415716557293) -->
<skip />
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP 设置"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"此用户无法查看或修改 WLAN 网络高级设置"</string>
@@ -1597,7 +1597,7 @@
<string name="menu_delete" msgid="9199740901584348273">"删除 APN"</string>
<string name="menu_new" msgid="6571230342655509006">"新建 APN"</string>
<string name="menu_save" msgid="6611465355127483100">"保存"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"放弃"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"取消"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"“名称”字段不能为空。"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN 不能为空。"</string>
@@ -2456,8 +2456,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"平板电脑的使用强度比平时高"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"设备的使用强度比平时高"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"电池电量可能会比平时更快耗尽"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"暂时限用电池"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"有助于使电池保持良好状态。点按即可了解详情。"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"暂时限用电池。点按即可了解详情。"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"您使用的手机的频率比平时高。电池电量可能会比预期更快耗尽。\n\n耗电量较高的几个应用:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"您使用平板电脑的频率比平时高。电池电量可能会比预期更快耗尽。\n\n耗电量较高的几个应用:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"您使用设备的频率比平时高。电池电量可能会比预期更快耗尽。\n\n耗电量较高的几个应用:"</string>
@@ -2723,6 +2724,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"不安装"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"仍然安装"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"未安装证书"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"要允许<xliff:g id="APP_NAME">%s</xliff:g>在此设备上安装证书吗?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"当您访问以下应用和网址时,系统将通过这些证书识别您的身份"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"不允许"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"允许"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"显示更多"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"证书管理应用"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"无"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"当您访问以下应用和网址时,系统会通过此应用安装的证书识别您的身份"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"移除"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"紧急拨号信号"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"设置进行紧急呼救时的行为"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"备份"</string>
@@ -4642,6 +4652,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"可见数据集最大数量"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"重置为默认值"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"已重置自动填充开发者选项"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"强制启用 GNSS 测量结果全面跟踪"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"在停用工作周期的情况下跟踪所有 GNSS 星座和频率"</string>
<string name="device_theme" msgid="5027604586494772471">"设备主题背景"</string>
<string name="default_theme" msgid="4815428567082263639">"默认"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"网络名称"</string>
@@ -4658,8 +4676,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"暂停通知即可保持专注"</string>
<string name="disabled_feature" msgid="7151433782819744211">"无法使用此功能"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"由于此功能会导致您的手机速度变慢,因此系统已关闭此功能"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"强制启用 GNSS 测量结果全面跟踪"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"在停用工作周期的情况下跟踪所有 GNSS 星座和频率"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"一律显示崩溃对话框"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"在每次应用崩溃时显示对话框"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"选择已启用 ANGLE 的应用"</string>
@@ -4727,7 +4743,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"开启(静音)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"关闭"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"网络详情"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"您的设备名称会显示在手机上的应用中。此外,当您连接到蓝牙设备或设置 WLAN 热点时,其他人可能也会看到您的设备名称。"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"您的设备名称会显示在手机上的应用中。此外,当您连接到蓝牙设备、连接到 WLAN 网络或设置 WLAN 热点时,其他人可能也会看到您的设备名称。"</string>
<string name="devices_title" msgid="649715719278562515">"设备"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"所有设置"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"建议"</string>
@@ -4887,6 +4903,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"无法激活 SIM 卡"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"请取出 SIM 卡,然后重新插入。如果问题仍然存在,请重启您的设备。"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"请尝试重新启用 SIM 卡。如果问题仍然存在,请重启您的设备。"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"网络激活"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"<xliff:g id="CARRIER_NAME">%1$s</xliff:g>已启用"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"点按即可更新 SIM 卡设置"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM 卡"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"要清空这个已下载的 SIM 卡吗?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"清空此 SIM 卡将从此设备中移除<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>服务。\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>的服务不会因此被取消。"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"清空"</string>
@@ -5039,9 +5059,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"WLAN 通话功能支持您通过非运营商网络(例如某些 WLAN 网络)接打电话。"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"通话"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"短信"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"首选"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"首选通话"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"首选短信"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"不可用"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"没有 SIM 卡"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"偏好设置"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"连接到公共网络"</string>
<string name="keywords_internet" msgid="7674082764898690310">"网络连接, 互联网, 无线, 数据, WiFi, Wi-Fi, Wi Fi, WLAN, 移动网络, 移动, 手机运营商, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"查看可在飞机上安全使用的网络"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"关闭飞行模式"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"就寝模式开启时无法使用"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"通知重要性重置完成。"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"应用"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 57c2e78..440bc1d 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 位址"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"已儲存的網絡"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"訂閱"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"其他網絡"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP 設定"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"這位使用者無法查看或變更 Wi-Fi 進階設定"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"儲存"</string>
@@ -1598,7 +1597,7 @@
<string name="menu_delete" msgid="9199740901584348273">"刪除 APN"</string>
<string name="menu_new" msgid="6571230342655509006">"新增 APN"</string>
<string name="menu_save" msgid="6611465355127483100">"儲存"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"捨棄"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"取消"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"[名稱] 欄位不得留空。"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN 不可留空。"</string>
@@ -2457,8 +2456,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"平板電腦使用率比平常高"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"裝置使用率比平常高"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"電池電量可能會比平常更快耗盡"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"暫時限制電池充電"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"有助延長電池壽命。輕按即可瞭解詳情。"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"暫時限制電池充電。輕按即可瞭解詳情。"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"您的手機使用率比平常高,電池電量可能會比預期更快耗盡。\n\n電池用量最高的應用程式:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"您的平板電腦使用率比平常高,電池電量可能會比預期更快耗盡。\n\n電池用量最高的應用程式:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"您的裝置使用率比平常高,電池電量可能會比預期更快耗盡。\n\n電池用量最高的應用程式:"</string>
@@ -2724,6 +2724,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"不要安裝"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"仍要安裝"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"未安裝憑證"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"是否允許「<xliff:g id="APP_NAME">%s</xliff:g>」在此裝置上安裝憑證?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"以下應用程式和網址將可透過這些憑證識別您的身分。"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"不允許"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"允許"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"顯示更多"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"憑證管理應用程式"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"無"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"以下應用程式和網址將可透過此應用程式安裝的憑證識別您的身分。"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"移除"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"緊急撥號訊號"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"設定撥打緊急電話時的運作方式"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"備份"</string>
@@ -4643,6 +4652,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"數據集顯示上限"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"重設為預設值"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"自動填入開發人員選項已重設"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"強制啟用完整的 GNSS 測量資料"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
<string name="device_theme" msgid="5027604586494772471">"裝置主題"</string>
<string name="default_theme" msgid="4815428567082263639">"預設"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"網絡名稱"</string>
@@ -4659,8 +4676,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"暫停通知,助您保持專注"</string>
<string name="disabled_feature" msgid="7151433782819744211">"功能無法使用"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"由於這項功能會降低手機運行速度,因此已關閉"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"強制啟用完整的 GNSS 測量資料"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"一律顯示當機對話框"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"在每次應用程式當機時顯示對話框"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"選取支援 ANGLE 的應用程式"</string>
@@ -4728,7 +4743,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"開啟 (靜音)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"關閉"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"網絡詳細資料"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"您的裝置名稱會在手機的應用程式上顯示。當您連接藍牙裝置或設定 Wi-Fi 熱點時,其他人亦可能會看到您的裝置名稱。"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"您在手機上的應用程式可以取得您的裝置名稱。當您連接藍牙裝置或 Wi-Fi 網絡,或設定 Wi-Fi 熱點時,其他人亦可能會看到您的裝置名稱。"</string>
<string name="devices_title" msgid="649715719278562515">"裝置"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"所有設定"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"建議"</string>
@@ -4888,6 +4903,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"無法啟用 SIM 卡"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"請移除 SIM 卡再重新插入。如果問題持續發生,請重新啟動裝置。"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"請嘗試再次啟用 SIM 卡。如果問題持續發生,請重新啟動裝置。"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"網絡啟用"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"已啟用<xliff:g id="CARRIER_NAME">%1$s</xliff:g>"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"輕按以更新 SIM 卡設定"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM 卡"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"要清除這張已下載的 SIM 卡嗎?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"清除此 SIM 卡即會從此裝置中移除 <xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> 服務。\n\n<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> 的服務將不會被取消。"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"清除"</string>
@@ -5036,13 +5055,20 @@
<string name="keywords_airplane_safe_networks" msgid="5902708537892978245">"飛行, 飛行安全"</string>
<string name="calls_and_sms" msgid="1931855083959003306">"通話和短訊"</string>
<string name="calls_and_sms_category" msgid="2021321997884906046">"Wi-Fi 通話"</string>
- <string name="calls_sms_wfc_summary" msgid="4930471357980272294">"透過諸如 Wi‑Fi 這類非電信業者提供的網路撥打電話及接聽來電"</string>
- <string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi 通話功能可讓你透過非電信業者網路 (例如某些 Wi-Fi 網路) 撥打電話及接聽來電。"</string>
+ <string name="calls_sms_wfc_summary" msgid="4930471357980272294">"透過非流動網絡供應商網絡 (例如 Wi-Fi) 撥打和接聽電話"</string>
+ <string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi 通話可讓您透過非流動網絡供應商網絡 (例如 Wi-Fi 網絡) 撥打和接聽電話。"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"通話"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"短訊"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"偏好"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"偏好的通話"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"偏好的短訊"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"無法使用"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"沒有 SIM 卡"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"偏好設定"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"連線至公共網絡"</string>
- <string name="keywords_internet" msgid="7674082764898690310">"網路連線, 網際網路, 無線, 行動數據, wifi, wi-fi, wi fi, 行動網路, 行動, 電信業者, 4g, 3g, 2g, lte"</string>
+ <string name="keywords_internet" msgid="7674082764898690310">"網絡連線, 互聯網, 無線, 數據, Wi-Fi, 流動網絡, 流動裝置, 流動網絡供應商, 4G, 3G, 2G, LTE"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"查看飛行安全網絡"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"關閉飛行模式"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"睡眠模式開啟時無法使用"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"通知重要性重設完成。"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"應用程式"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 1994617..1823336 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"IPv6 位址"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"已儲存的網路"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"訂閱"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"其他網路"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"IP 設定"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"這位使用者無法使用 Wi‑Fi 網路進階設定"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"儲存"</string>
@@ -1597,7 +1596,7 @@
<string name="menu_delete" msgid="9199740901584348273">"刪除 APN"</string>
<string name="menu_new" msgid="6571230342655509006">"新增 APN"</string>
<string name="menu_save" msgid="6611465355127483100">"儲存"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"捨棄"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"取消"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"[名稱] 欄位不得留空。"</string>
<string name="error_apn_empty" msgid="7657491065443746915">"APN 不可留空。"</string>
@@ -2456,8 +2455,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"平板電腦使用率比平常高"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"裝置使用率比平常高"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"電池電量可能會比平常更快耗盡"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"暫時限制電池用量"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"有助延長電池壽命。輕觸即可瞭解詳情。"</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"系統已暫時限制電池用量。輕觸即可瞭解詳情。"</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"你的手機使用率比平常高,電池電量可能比預期更快耗盡。\n\n你常用的應用程式如下 (按照電池用量由高到低排序):"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"你的平板電腦使用率比平常高,電池電量可能比預期更快耗盡。\n\n你常用的應用程式如下 (按照電池用量由高到低排序):"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"你的裝置使用率比平常高,電池電量可能比預期更快耗盡。\n\n你常用的應用程式如下 (按照電池用量由高到低排序):"</string>
@@ -2723,6 +2723,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"不要安裝"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"仍要安裝"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"未安裝憑證"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"要允許「<xliff:g id="APP_NAME">%s</xliff:g>」在這部裝置上安裝憑證嗎?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"當你存取下方應用程式和網址時,系統就會透過這些憑證辨識你的身分"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"不允許"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"允許"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"顯示更多"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"憑證管理應用程式"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"無"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"當你存取下方的應用程式和網址時,系統就會透過這個應用程式安裝的憑證辨識你的身分"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"移除"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"緊急撥號信號"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"設定撥打緊急電話時的運作方式"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"備份"</string>
@@ -4642,6 +4651,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"可見資料集數量上限"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"重設為預設值"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"已重設自動填入開發人員選項"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"強制啟用完整的 GNSS 測量資料"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
<string name="device_theme" msgid="5027604586494772471">"裝置主題"</string>
<string name="default_theme" msgid="4815428567082263639">"預設"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"網路名稱"</string>
@@ -4658,8 +4675,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"暫停通知以保持專注"</string>
<string name="disabled_feature" msgid="7151433782819744211">"無法使用此功能"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"這項功能會降低你的手機速度,因此已由系統停用"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"強制啟用完整的 GNSS 測量資料"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"一律顯示當機對話方塊"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"在每次應用程式當機時顯示對話方塊"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"選取已啟用 ANGLE 的應用程式"</string>
@@ -4727,7 +4742,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"開啟 (靜音)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"關閉"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"網路詳細資料"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"你的裝置名稱會顯示在手機的應用程式上。此外,當你連上藍牙裝置或設定 Wi-Fi 無線基地台時,其他人可能也會看到你的裝置名稱。"</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"你在手機上的應用程式會取得手機的裝置名稱。此外,當你連上藍牙裝置、Wi-Fi 網路或者設定 Wi-Fi 無線基地台時,其他人可能也會看到這個裝置名稱。"</string>
<string name="devices_title" msgid="649715719278562515">"裝置"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"所有設定"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"建議"</string>
@@ -4887,6 +4902,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"無法啟用 SIM 卡"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"請移除 SIM 卡再重新插入,如果問題持續發生,請重新啟動裝置。"</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"請試著再次啟用 SIM 卡,如果問題持續發生,請重新啟動裝置。"</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"啟用網路"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"「<xliff:g id="CARRIER_NAME">%1$s</xliff:g>」已啟用"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"輕觸即可更新 SIM 卡設定"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"SIM 卡"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"要清除這張已下載的 SIM 卡嗎?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"如果清除這張 SIM 卡,「<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g>」服務會從這部裝置中移除。\n\n請放心,「<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g>」的服務不會因此取消。"</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"清除"</string>
@@ -5039,9 +5058,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Wi-Fi 通話功能可讓你透過非電信業者網路 (例如某些 Wi-Fi 網路) 撥打電話及接聽來電。"</string>
<string name="calls_preference_title" msgid="7536882032182563800">"通話"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"簡訊"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"偏好"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"偏好通話"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"偏好簡訊"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"無法使用"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"沒有 SIM 卡"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"偏好設定"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"連線至公用網路"</string>
<string name="keywords_internet" msgid="7674082764898690310">"網路連線, 網際網路, 無線, 行動數據, wifi, wi-fi, wi fi, 行動網路, 行動, 電信業者, 4g, 3g, 2g, lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"查看飛航安全網路"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"關閉飛航模式"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"就寢時間模式開啟時無法使用"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"通知重要性重設完成。"</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"應用程式"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index f4b1beb..903a722 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -1022,8 +1022,7 @@
<string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Amakheli e-IPv6"</string>
<string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Amanethiwekhi alondoloziwe"</string>
<string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Okubhalisiwe"</string>
- <!-- no translation found for wifi_saved_access_points_tab (2075914709522121708) -->
- <skip />
+ <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Amanye amanethiwekhi"</string>
<string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Izilungiselelo ze-IP"</string>
<string name="wifi_advanced_not_available" msgid="8701003884367299092">"Izilungiselelo ezithuthukisiwe ze-Wi‑Fi azitholakaleli lo msebenzisi"</string>
<string name="wifi_ip_settings_menu_save" msgid="5190481040428567106">"Londoloza"</string>
@@ -1598,7 +1597,7 @@
<string name="menu_delete" msgid="9199740901584348273">"Susa i-APN"</string>
<string name="menu_new" msgid="6571230342655509006">"I-APN Entsha"</string>
<string name="menu_save" msgid="6611465355127483100">"Londoloza"</string>
- <string name="menu_cancel" msgid="4526003389139913077">"Lahla"</string>
+ <string name="menu_cancel" msgid="1197826697950745335">"Khansela"</string>
<string name="error_title" msgid="7158648377702417716"></string>
<string name="error_name_empty" msgid="1258275899283079142">"Igama lenkundla akumelwe lingabi nalutho."</string>
<string name="error_apn_empty" msgid="7657491065443746915">"I-APN akumelwe ingabi nalutho."</string>
@@ -2457,8 +2456,9 @@
<string name="battery_tip_high_usage_title" product="tablet" msgid="8515903411746145740">"Ithebulethi isetshenziswa ngaphezulu kunokujwayelekile"</string>
<string name="battery_tip_high_usage_title" product="device" msgid="6577086402173910457">"Idivayisi isetshenziswa ngaphezulu kunokujwayelekile"</string>
<string name="battery_tip_high_usage_summary" msgid="5356399389711499862">"Ibhethri lingaphela ngaphambi kwesikhathi kunokujwayelekile"</string>
- <string name="battery_tip_limited_temporarily_title" msgid="8826010086459178383">"Ibhethri ikhawulelwe okwesikhashana"</string>
- <string name="battery_tip_limited_temporarily_summary" msgid="4476296841600798068">"Isiza ukugcina impilo yebhethri. Thepha ukuze ufunde kabanzi."</string>
+ <!-- no translation found for battery_tip_limited_temporarily_title (7152799456221596915) -->
+ <skip />
+ <string name="battery_tip_limited_temporarily_summary" msgid="6837061824463128857">"Ibhethri ikhawulelwe okwesikhashana. Thepha ukuze ufunde kabanzi."</string>
<string name="battery_tip_dialog_message" product="default" msgid="4681734836472195966">"Ifoni yakho isetshenziswe ngaphezulu kokujwayelekile. Ibhethri lakho lingaphela ngokushesha kunokulindeleke ngakhona.\n\nIzinhlelo zokusebenza eziphezulu ngokusetshenziswa kwebhethri:"</string>
<string name="battery_tip_dialog_message" product="tablet" msgid="3934298305232120382">"Ithebulethi yakho isetshenziswe ngaphezulu kunokujwayelekile. Ibhethri lakho lingaphela ngokushesha kunokulindeleke ngakhona.\n\nIzinhlelo zokusebenza eziphezulu ngokusetshenziswa kwebhethri:"</string>
<string name="battery_tip_dialog_message" product="device" msgid="2620789680336796054">"Idivayisi yakho isetshenziswe kakhulu kunokujwayelekile. Ibhethri lakho lingaphela ngokushesha kunokulindeleke ngakhona.\n\nIzinhlelo zokusebenza eziphezulu ngokusetshenziswa kwebhethri:"</string>
@@ -2724,6 +2724,15 @@
<string name="certificate_warning_dont_install" msgid="3794366420884560605">"Ungafaki"</string>
<string name="certificate_warning_install_anyway" msgid="4633118283407228740">"Faka noma kunjalo"</string>
<string name="cert_not_installed" msgid="6725137773549974522">"Isitifiketi asifakiwe"</string>
+ <string name="request_manage_credentials_title" msgid="4524504926699928916">"Uvumela i-<xliff:g id="APP_NAME">%s</xliff:g> ukuba ifake izitifiketi kule divayisi?"</string>
+ <string name="request_manage_credentials_description" msgid="4969609158022551952">"Lezi zitifiketi zizokuveza kuzinhlelo zokusebenza nakuma-URL angezansi"</string>
+ <string name="request_manage_credentials_dont_allow" msgid="3630610197644877809">"Ungavumeli"</string>
+ <string name="request_manage_credentials_allow" msgid="4910940118408348245">"Vumela"</string>
+ <string name="request_manage_credentials_more" msgid="6101210283534101582">"Bonisa okuningi"</string>
+ <string name="certificate_management_app" msgid="8086699498358080826">"Uhlelo lokusebenza lokuphatha isitifiketi"</string>
+ <string name="no_certificate_management_app" msgid="3025739370424406717">"Lutho"</string>
+ <string name="certificate_management_app_description" msgid="7257420502179110164">"Izitifiketi ezifakwe yilolu hlelo lokusebenza ziyakukhomba kuzinhlelo zokusebenza nama-URL angezansi"</string>
+ <string name="remove_credential_management_app" msgid="6879631067380232928">"Susa"</string>
<string name="emergency_tone_title" msgid="6673118505206685168">"Isignali yokudayela isimo esiphuthumayo"</string>
<string name="emergency_tone_summary" msgid="2519776254708767388">"Hlela ukuziphatha lapho ikholi oluphuthumayo lwenziwa"</string>
<string name="privacy_settings_title" msgid="6437057228255974577">"Sekela ngokulondoloza"</string>
@@ -4643,6 +4652,14 @@
<string name="autofill_max_visible_datasets" msgid="4970201981694392229">"Amadathasethi amakhulu abonakalayo"</string>
<string name="autofill_reset_developer_options" msgid="6425613608979498608">"Setha kabusha kuye kumanani azenzakalelayo"</string>
<string name="autofill_reset_developer_options_complete" msgid="1276741935956594965">"Izinketho zokugcwalisa ngokuzenzakalela zonjiniyela zisethwe kabusha"</string>
+ <!-- no translation found for location_category (3496759112306219062) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_title (6655916258720093451) -->
+ <skip />
+ <!-- no translation found for location_indicator_settings_description (2888022085372804021) -->
+ <skip />
+ <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Phoqa izikali ezigcwele ze-GNSS"</string>
+ <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Landelela onke ama-constellation nezimvamisa ngomjikelezo ongenawo umsebenzi"</string>
<string name="device_theme" msgid="5027604586494772471">"Itimu yedivayisi"</string>
<string name="default_theme" msgid="4815428567082263639">"Okuzenzakalelayo"</string>
<string name="show_operator_name_title" msgid="3355910331531144028">"Igama lenethiwekhi"</string>
@@ -4659,8 +4676,6 @@
<string name="zen_suggestion_summary" msgid="1984990920503217">"Misa isikhashana izikhangiso ukuze uhlale ugxilile"</string>
<string name="disabled_feature" msgid="7151433782819744211">"Isici asitholakali"</string>
<string name="disabled_feature_reason_slow_down_phone" msgid="5743569256308510404">"Lesi sici sivaliwe ngoba sibambezela ifoni yakho"</string>
- <string name="enable_gnss_raw_meas_full_tracking" msgid="1206679951510243341">"Phoqa izikali ezigcwele ze-GNSS"</string>
- <string name="enable_gnss_raw_meas_full_tracking_summary" msgid="3841463141138247167">"Landelela onke ama-constellation nezimvamisa ngomjikelezo ongenawo umsebenzi"</string>
<string name="show_first_crash_dialog" msgid="1696584857732637389">"Njalo bonisa ibhokisi lokusaphazeka"</string>
<string name="show_first_crash_dialog_summary" msgid="4692334286984681111">"Bonisa ibhokisi njalo izinhlelo zokusebenza zisaphazeka"</string>
<string name="angle_enabled_app" msgid="6044941043384239076">"Khetha uhlelo lokusebenza olunikwe amandla lwe-ANGLE"</string>
@@ -4728,7 +4743,7 @@
<string name="prevent_ringing_option_mute_summary" msgid="4885288334872920616">"Kuvuliwe (thulisa)"</string>
<string name="prevent_ringing_option_none_summary" msgid="7004926708584574224">"Valiwe"</string>
<string name="pref_title_network_details" msgid="7329759534269363308">"Imininingwane yenethiwekhi"</string>
- <string name="about_phone_device_name_warning" msgid="764557372426153827">"Igama ledivayisi yakho liyabonakala kuzinhlelo zokusebenza efonini yakho. Futhi lingabonwa ngabanye abantu uma uxhuma kumadivayisi e-Bluetooth noma usetha i-Wi-Fi hotspot."</string>
+ <string name="about_phone_device_name_warning" msgid="1938930553285875166">"Igama ledivayisi yakho libonakala kwizinhlelo zokusebenza kufoni yakho. Lingase futhi libonwe abanye abantu lapho uxhuma kumadivayisi we-Bluetooth, uxhuma kunethiwekhi ye-Wi-Fi noma usetha i-hotspot ye-Wi-Fi."</string>
<string name="devices_title" msgid="649715719278562515">"Amadivayisi"</string>
<string name="homepage_all_settings" msgid="1877827279189801035">"Zonke izilungiselelo"</string>
<string name="homepage_personal_settings" msgid="8312279476519359656">"Iziphakamiso"</string>
@@ -4888,6 +4903,10 @@
<string name="dsds_activation_failure_title" msgid="4467364110584914794">"Akukwazi ukwenza i-SIM isebenze"</string>
<string name="dsds_activation_failure_body_msg1" msgid="6303921196869256391">"Khipha i-SIM yakho bese uyifake futhi. Inkinga iyaqhubeka, qala kabusha idivayisi yakho."</string>
<string name="dsds_activation_failure_body_msg2" msgid="73044349546544410">"Zama ukuvula i-SIM futhi. Inkinga iyaqhubeka, qala kabusha idivayisi yakho."</string>
+ <string name="sim_setup_channel_id" msgid="8797972565087458515">"Ukwenziwa kusebenze kwenethiwekhi"</string>
+ <string name="post_dsds_reboot_notification_title_with_carrier" msgid="3308827462185135307">"I-<xliff:g id="CARRIER_NAME">%1$s</xliff:g> iyasebenza"</string>
+ <string name="post_dsds_reboot_notification_text" msgid="7533428378211541410">"Thepha ukuze ubuyekeze izilungiselelo ze-SIM"</string>
+ <string name="sim_card_label" msgid="5632157635124050923">"I-SIM card"</string>
<string name="erase_sim_dialog_title" msgid="881253002169177016">"Sula le SIM elandiwe?"</string>
<string name="erase_sim_dialog_text" msgid="753031064269699885">"Ukusula le-SIM kususa isevisi ye-<xliff:g id="CARRIER_NAME_A">%1$s</xliff:g> kusukela kule divayisi.\n\nIsevisi ye-<xliff:g id="CARRIER_NAME_B">%1$s</xliff:g> ngeke ize ikhanselwe."</string>
<string name="erase_sim_confirm_button" msgid="8309115684335320541">"Sula"</string>
@@ -5040,9 +5059,16 @@
<string name="calls_sms_footnote" msgid="7002461875954024216">"Ukushaya kwe-Wi‑Fi kukuvumela ukuthi wenze futhi uthole amakholi ngamanethiwekhi angewona awenkampani yenethiwekhi njengamanye amanethiwekhi we-Wi-Fi."</string>
<string name="calls_preference_title" msgid="7536882032182563800">"Amakholi"</string>
<string name="sms_preference_title" msgid="8392745501754864395">"I-SMS"</string>
+ <string name="calls_sms_preferred" msgid="6016477652522583496">"okuncanyelwayo"</string>
+ <string name="calls_sms_calls_preferred" msgid="252913858812799809">"amakholi ancanyelwayo"</string>
+ <string name="calls_sms_sms_preferred" msgid="5826706870873784062">"I-SMS encanyelwayo"</string>
+ <string name="calls_sms_unavailable" msgid="4055729705246556529">"ayitholakali"</string>
+ <string name="calls_sms_no_sim" msgid="2336377399761819718">"Ayikho i-SIM"</string>
<string name="network_and_internet_preferences_title" msgid="8038469368705591439">"Okuncamelayo"</string>
<string name="network_and_internet_preferences_summary" msgid="613207494152304537">"Xhuma kumanethiwekhi asesidlangalaleni"</string>
<string name="keywords_internet" msgid="7674082764898690310">"uxhumano lenethiwekhi, i-inthanethi, okungenantambo, idatha, i-wifi, i-wi-fi, i-wi fi, iselula, iselula, inkampani yekholi, i-4g, i-3g, i-2g, i-lte"</string>
+ <string name="view_airplane_safe_networks" msgid="7390511371040078514">"Buka amanethiwekhi wendiza aphephile"</string>
+ <string name="turn_off_airplane_mode" msgid="1334192337050190071">"Vala imodi yendiza"</string>
<string name="aware_summary_when_bedtime_on" msgid="2063856008597376344">"Akutholakali ngoba imodi yesikhathi sokulala ivuliwe"</string>
<string name="reset_importance_completed" msgid="3595536767426097205">"Ukusetha kabusha ukubaluleka kwesaziso kuqediwe."</string>
<string name="apps_dashboard_title" msgid="3269953499954393706">"Izinhlelo zokusebenza"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8aeefdb..f465115 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -3683,7 +3683,7 @@
<!-- Edit access point screen menu option to save the user's changes for this APN to the persistent storage -->
<string name="menu_save">Save</string>
<!-- Edit access point screen menu option to discard the user's changes for this APN -->
- <string name="menu_cancel">Discard</string>
+ <string name="menu_cancel">Cancel</string>
<!-- APN error dialog title -->
<string name="error_title"></string>
<!-- APN error dialog messages: -->
@@ -3718,10 +3718,13 @@
<!-- SD card & phone storage settings screen, message on screen after user selects Reset network settings [CHAR LIMIT=NONE] -->
<string name="reset_network_desc">This will reset all network settings, including:\n\n<li>Wi\u2011Fi</li>\n<li>Mobile data</li>\n<li>Bluetooth</li>"</string>
- <!-- SD card & phone storage settings screen, title for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=50] -->
+ <!-- Erase Euicc -->
+ <!-- Confirmation button of dialog to confirm resetting user's app preferences [CHAR LIMIT=NONE] -->
+ <string name="erase_euicc_data_button">Erase</string>
+ <!-- Erase Euicc dialog and SD card & phone storage settings screen, title for the menu option and checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=50] -->
<string name="reset_esim_title">Erase downloaded SIMs</string>
- <!-- SD card & phone storage settings screen, message for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=NONE] -->
- <string name="reset_esim_desc">To download replacement SIMs, contact your carrier. This won\u2019t cancel any mobile service plans.</string>
+ <!-- Erase Euicc dialog and SD card & phone storage settings screen, message for the checkbox to let user decide whether erase eSIM data together [CHAR LIMIT=NONE] -->
+ <string name="reset_esim_desc">This won’t cancel any mobile service plans. To download replacement SIMs, contact your carrier.</string>
<!-- SD card & phone storage settings screen, button on screen after user selects Reset network settings -->
<string name="reset_network_button_text">Reset settings</string>
@@ -5720,7 +5723,7 @@
<!-- Summary for the battery high usage tip, which presents battery may run out earlier [CHAR LIMIT=NONE] -->
<string name="battery_tip_high_usage_summary">Battery may run out earlier than usual</string>
<!-- Title for the battery limited temporarily tip [CHAR LIMIT=NONE] -->
- <string name="battery_tip_limited_temporarily_title">Preserving battery health</string>
+ <string name="battery_tip_limited_temporarily_title">Optimizing for battery health</string>
<!-- Summary for the battery limited temporarily tip [CHAR LIMIT=NONE] -->
<string name="battery_tip_limited_temporarily_summary">Battery limited temporarily. Tap to learn more.</string>
<!-- Message for battery tip dialog to show the status about the battery [CHAR LIMIT=NONE] -->
@@ -11403,6 +11406,19 @@
<!-- Toast message shown when autofill_reset_developer_options has been performed. [CHAR_LIMIT=none] -->
<string name="autofill_reset_developer_options_complete">Autofill developer options have been reset</string>
+ <!-- Developer options location category strings -->
+ <!-- Title for privacy category [CHAR LIMIT=30]-->
+ <string name="location_category">Location</string>
+ <!-- [CHAR LIMIT=130] Title for location indicator settings -->
+ <string name="location_indicator_settings_title">Status bar location indicator</string>
+ <!-- [CHAR LIMIT=130] Description for location indicator settings -->
+ <string name="location_indicator_settings_description">Show for all locations, including network and connectivity</string>
+
+ <!-- Location setting: preference title - enforce full raw GNSS satellite measurements [CHAR LIMIT=60] -->
+ <string name="enable_gnss_raw_meas_full_tracking">Force full GNSS measurements</string>
+ <!-- Location setting: preference summary - describes the behavior of forcing full raw GNSS satellite measurements [CHAR LIMIT=NONE] -->
+ <string name="enable_gnss_raw_meas_full_tracking_summary">Track all GNSS constellations and frequencies with no duty cycling</string>
+
<!-- Name of setting for switching device theme [CHAR LIMIT=60] -->
<string name="device_theme">Device theme</string>
<!-- Name of default device theme [CHAR LIMIT=60] -->
@@ -11470,11 +11486,6 @@
<!-- Part of a message for an empty state screen. A user will see this message if they try to use a certain feature, but the feature was turned off so it won't slow down their phone. [CHAR LIMIT=NONE] -->
<string name="disabled_feature_reason_slow_down_phone">This feature has been turned off because it slows down your phone</string>
- <!-- UI debug setting: preference title - enforce full raw GNSS satellite measurements [CHAR LIMIT=60] -->
- <string name="enable_gnss_raw_meas_full_tracking">Force full GNSS measurements</string>
- <!-- UI debug setting: preference summary - describes the behavior of forcing full raw GNSS satellite measurements [CHAR LIMIT=NONE] -->
- <string name="enable_gnss_raw_meas_full_tracking_summary">Track all GNSS constellations and frequencies with no duty cycling</string>
-
<!-- UI debug setting: preference title - show all crash dialogs [CHAR LIMIT=60] -->
<string name="show_first_crash_dialog">Always show crash dialog</string>
<!-- UI debug setting: preference summary - describes the behavior of showing a dialog every time an app crashes [CHAR LIMIT=NONE] -->
@@ -12495,6 +12506,16 @@
<string name="calls_preference_title">Calls</string>
<!-- Provider Model: SMS preference title -->
<string name="sms_preference_title">SMS</string>
+ <!-- Provider Model: Preferred status in summary for Calls & SMS -->
+ <string name="calls_sms_preferred">preferred</string>
+ <!-- Provider Model: Calls Preferred status in summary for Calls & SMS -->
+ <string name="calls_sms_calls_preferred">calls preferred</string>
+ <!-- Provider Model: SMS Preferred status in summary for Calls & SMS -->
+ <string name="calls_sms_sms_preferred">SMS preferred</string>
+ <!-- Provider Model: Unavailable status in summary for Calls & SMS -->
+ <string name="calls_sms_unavailable">unavailable</string>
+ <!-- Provider Model: No SIM status in summary for Calls & SMS -->
+ <string name="calls_sms_no_sim">No SIM</string>
<!-- Network & internet preferences title [CHAR LIMIT=NONE] -->
<string name="network_and_internet_preferences_title">Preferences</string>
<!-- Network & internet preferences summary [CHAR LIMIT=NONE] -->
@@ -12514,4 +12535,17 @@
<!-- Title for setting tile leading to Apps settings [CHAR LIMIT=40]-->
<string name="apps_dashboard_title">Apps</string>
+
+ <!-- Bluetooth message permission alert for notification content [CHAR LIMIT=none] -->
+ <string name="bluetooth_message_access_notification_content">Untrusted device wants to access your messages. Tap for details.</string>
+ <!-- Bluetooth message permission alert for dialog title [CHAR LIMIT=none] -->
+ <string name="bluetooth_message_access_dialog_title">Allow access to messages?</string>
+ <!-- Bluetooth message permission alert for dialog content [CHAR LIMIT=none] -->
+ <string name="bluetooth_message_access_dialog_content">An untrusted Bluetooth device, [<xliff:g id="device_name" example="My device">%1$s</xliff:g>], wants to access your messages.\n\nYou haven\u2019t connected to [<xliff:g id="device_name" example="My device">%2$s</xliff:g>] before.</string>
+ <!-- Bluetooth phonebook permission alert for notification content [CHAR LIMIT=none] -->
+ <string name="bluetooth_phonebook_access_notification_content">Untrusted device wants to access your contacts and call log. Tap for details.</string>
+ <!-- Bluetooth phonebook permission alert for dialog title [CHAR LIMIT=none] -->
+ <string name="bluetooth_phonebook_access_dialog_title">Allow access to contacts and call log?</string>
+ <!-- Bluetooth phonebook permission alert for dialog content [CHAR LIMIT=none] -->
+ <string name="bluetooth_phonebook_access_dialog_content">An untrusted Bluetooth device, [<xliff:g id="device_name" example="My device">%1$s</xliff:g>], wants to access your contacts and call log. This includes data about incoming and outgoing calls.\n\nYou haven\u2019t connected to [<xliff:g id="device_name" example="My device">%2$s</xliff:g>] before.</string>
</resources>
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index f06ed2e..f5549f9 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -175,14 +175,6 @@
android:title="@string/automatic_system_heap_dump_title"
android:summary="@string/automatic_system_heap_dump_summary" />
- <Preference android:key="mock_location_app"
- android:title="@string/mock_location_app" />
-
- <SwitchPreference
- android:key="enable_gnss_raw_meas_full_tracking"
- android:title="@string/enable_gnss_raw_meas_full_tracking"
- android:summary="@string/enable_gnss_raw_meas_full_tracking_summary" />
-
<SwitchPreference
android:key="debug_view_attributes"
android:title="@string/debug_view_attributes" />
@@ -696,4 +688,25 @@
android:targetClass="com.android.settings.development.storage.BlobInfoListView" />
</Preference>
</PreferenceCategory>
+
+ <PreferenceCategory
+ android:key="location_category"
+ android:title="@string/location_category"
+ android:order="1300">
+
+ <Preference android:key="mock_location_app"
+ android:title="@string/mock_location_app" />
+
+ <SwitchPreference
+ android:key="enable_gnss_raw_meas_full_tracking"
+ android:title="@string/enable_gnss_raw_meas_full_tracking"
+ android:summary="@string/enable_gnss_raw_meas_full_tracking_summary" />
+
+ <SwitchPreference
+ android:title="@string/location_indicator_settings_title"
+ android:summary="@string/location_indicator_settings_description"
+ android:defaultValue="true"
+ android:key="location_indicator_settings"
+ settings:controller="com.android.settings.location.LocationIndicatorsPreferenceController"/>
+ </PreferenceCategory>
</PreferenceScreen>
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 07564f0..8262bb2 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -63,7 +63,7 @@
</com.android.settingslib.RestrictedPreference>
<!-- Cross-listed item, if you change this, also change it in power_usage_summary.xml -->
- <Preference
+ <com.android.settingslib.RestrictedPreference
android:key="screen_timeout"
android:title="@string/screen_timeout"
android:summary="@string/summary_placeholder"
diff --git a/res/xml/network_provider_internet.xml b/res/xml/network_provider_internet.xml
index 20cf2be..52ade65 100644
--- a/res/xml/network_provider_internet.xml
+++ b/res/xml/network_provider_internet.xml
@@ -64,7 +64,7 @@
<com.android.settingslib.RestrictedSwitchPreference
android:key="airplane_safe_networks"
android:title="@string/airplane_safe_networks"
- android:icon="@drawable/ic_airplanemode_active"
+ android:icon="@drawable/ic_airplane_safe_networks_24dp"
android:summary="@string/airplane_safe_networks_summary"
android:order="-4"
settings:userRestriction="no_airplane_mode"
diff --git a/res/xml/reset_dashboard_fragment.xml b/res/xml/reset_dashboard_fragment.xml
index 1b0e9fc..9497c8f 100644
--- a/res/xml/reset_dashboard_fragment.xml
+++ b/res/xml/reset_dashboard_fragment.xml
@@ -33,6 +33,12 @@
android:key="reset_app_prefs"
android:title="@string/reset_app_preferences" />
+ <!-- Erase Euicc data -->
+ <Preference
+ android:key="erase_euicc_data"
+ android:title="@string/reset_esim_title"
+ settings:controller="com.android.settings.network.EraseEuiccDataController" />
+
<!-- Factory reset -->
<com.android.settingslib.RestrictedPreference
android:key="factory_reset"
diff --git a/res/xml/transcode_settings.xml b/res/xml/transcode_settings.xml
index 65f6cd8..b142d31 100644
--- a/res/xml/transcode_settings.xml
+++ b/res/xml/transcode_settings.xml
@@ -35,9 +35,4 @@
android:key="transcode_default"
android:title="@string/transcode_default"
settings:controller="com.android.settings.development.transcode.TranscodeDefaultOptionPreferenceController" />
-
- <PreferenceCategory
- android:key="transcode_skip_apps"
- android:title="@string/transcode_skip_apps"
- settings:controller="com.android.settings.development.transcode.TranscodeAppsPreferenceController" />
</PreferenceScreen>
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index 5ff59b5..c4fa90d 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -32,6 +32,7 @@
import android.telephony.SubscriptionManager;
import android.telephony.euicc.EuiccManager;
import android.text.TextUtils;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
@@ -53,7 +54,9 @@
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import java.util.Optional;
/**
* Confirm and execute a reset of the device's network settings to a clean "just out of the box"
@@ -112,7 +115,7 @@
if (resultCode == Activity.RESULT_OK) {
showFinalConfirmation();
} else {
- establishInitialState();
+ establishInitialState(getActiveSubscriptionInfoList());
}
}
@@ -161,14 +164,15 @@
* inflate each view, caching all of the widget pointers we'll need at the
* time, then simply reuse the inflated views directly whenever we need
* to change contents.
+ *
+ * @param subscriptionsList is a list of SubscriptionInfo(s) which allow user to select from
*/
- private void establishInitialState() {
+ private void establishInitialState(List<SubscriptionInfo> subscriptionsList) {
mSubscriptionSpinner = (Spinner) mContentView.findViewById(R.id.reset_network_subscription);
mEsimContainer = mContentView.findViewById(R.id.erase_esim_container);
mEsimCheckbox = mContentView.findViewById(R.id.erase_esim);
- mSubscriptions = SubscriptionManager.from(getActivity())
- .getActiveSubscriptionInfoList();
+ mSubscriptions = subscriptionsList;
if (mSubscriptions != null && mSubscriptions.size() > 0) {
// Get the default subscription in the order of data, voice, sms, first up.
int defaultSubscription = SubscriptionManager.getDefaultDataSubscriptionId();
@@ -231,6 +235,31 @@
}
}
+ private List<SubscriptionInfo> getActiveSubscriptionInfoList() {
+ SubscriptionManager mgr = getActivity().getSystemService(SubscriptionManager.class);
+ if (mgr == null) {
+ Log.w(TAG, "No SubscriptionManager");
+ return Collections.emptyList();
+ }
+ return Optional.ofNullable(mgr.getActiveSubscriptionInfoList())
+ .orElse(Collections.emptyList());
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ // update options if subcription has been changed
+ List<SubscriptionInfo> updatedSubscriptions = getActiveSubscriptionInfoList();
+ if ((mSubscriptions != null)
+ && (mSubscriptions.size() == updatedSubscriptions.size())
+ && mSubscriptions.containsAll(updatedSubscriptions)) {
+ return;
+ }
+ Log.d(TAG, "subcription list changed");
+ establishInitialState(updatedSubscriptions);
+ }
+
private boolean showEuiccSettings(Context context) {
EuiccManager euiccManager =
(EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
@@ -261,7 +290,7 @@
mContentView = inflater.inflate(R.layout.reset_network, null);
- establishInitialState();
+ establishInitialState(getActiveSubscriptionInfoList());
return mContentView;
}
diff --git a/src/com/android/settings/ResetNetworkConfirm.java b/src/com/android/settings/ResetNetworkConfirm.java
index 97139c4..584d7f7 100644
--- a/src/com/android/settings/ResetNetworkConfirm.java
+++ b/src/com/android/settings/ResetNetworkConfirm.java
@@ -32,11 +32,14 @@
import android.net.wifi.p2p.WifiP2pManager;
import android.os.AsyncTask;
import android.os.Bundle;
+import android.os.Looper;
import android.os.RecoverySystem;
import android.os.UserHandle;
import android.os.UserManager;
import android.telephony.SubscriptionManager;
+import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
import android.telephony.TelephonyManager;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -63,6 +66,7 @@
* This is the confirmation screen.
*/
public class ResetNetworkConfirm extends InstrumentedFragment {
+ private static final String TAG = "ResetNetworkConfirm";
@VisibleForTesting View mContentView;
@VisibleForTesting boolean mEraseEsim;
@@ -71,6 +75,7 @@
private int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private ProgressDialog mProgressDialog;
private AlertDialog mAlertDialog;
+ private OnSubscriptionsChangedListener mSubscriptionsChangedListener;
/**
* Async task used to do all reset task. If error happens during
@@ -87,6 +92,7 @@
@Override
protected Boolean doInBackground(Void... params) {
+ boolean isResetSucceed = true;
ConnectivityManager connectivityManager = (ConnectivityManager)
mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager != null) {
@@ -101,6 +107,10 @@
p2pFactoryReset(mContext);
+ if (mEraseEsim) {
+ isResetSucceed = RecoverySystem.wipeEuiccData(mContext, mPackageName);
+ }
+
TelephonyManager telephonyManager = (TelephonyManager)
mContext.getSystemService(TelephonyManager.class)
.createForSubscriptionId(mSubId);
@@ -125,11 +135,7 @@
}
restoreDefaultApn(mContext);
- if (mEraseEsim) {
- return RecoverySystem.wipeEuiccData(mContext, mPackageName);
- } else {
- return true;
- }
+ return isResetSucceed;
}
@Override
@@ -161,6 +167,18 @@
return;
}
+ // abandon execution if subscription no longer active
+ if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ SubscriptionManager mgr = getSubscriptionManager();
+ // always remove listener
+ stopMonitorSubscriptionChange(mgr);
+ if (!isSubscriptionRemainActive(mgr, mSubId)) {
+ Log.w(TAG, "subId " + mSubId + " disappear when confirm");
+ mActivity.finish();
+ return;
+ }
+ }
+
mProgressDialog = getProgressDialog(mActivity);
mProgressDialog.show();
@@ -255,6 +273,56 @@
}
mActivity = getActivity();
+
+ if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ return;
+ }
+ // close confirmation dialog when reset specific subscription
+ // but removed priori to the confirmation button been pressed
+ startMonitorSubscriptionChange(getSubscriptionManager());
+ }
+
+ private SubscriptionManager getSubscriptionManager() {
+ SubscriptionManager mgr = mActivity.getSystemService(SubscriptionManager.class);
+ if (mgr == null) {
+ Log.w(TAG, "No SubscriptionManager");
+ }
+ return mgr;
+ }
+
+ private void startMonitorSubscriptionChange(SubscriptionManager mgr) {
+ if (mgr == null) {
+ return;
+ }
+ // update monitor listener
+ mSubscriptionsChangedListener = new OnSubscriptionsChangedListener(
+ Looper.getMainLooper()) {
+ @Override
+ public void onSubscriptionsChanged() {
+ SubscriptionManager mgr = getSubscriptionManager();
+ if (isSubscriptionRemainActive(mgr, mSubId)) {
+ return;
+ }
+ // close UI if subscription no longer active
+ Log.w(TAG, "subId " + mSubId + " no longer active.");
+ stopMonitorSubscriptionChange(mgr);
+ mActivity.finish();
+ }
+ };
+ mgr.addOnSubscriptionsChangedListener(
+ mActivity.getMainExecutor(), mSubscriptionsChangedListener);
+ }
+
+ private boolean isSubscriptionRemainActive(SubscriptionManager mgr, int subscriptionId) {
+ return (mgr == null) ? false : (mgr.getActiveSubscriptionInfo(subscriptionId) != null);
+ }
+
+ private void stopMonitorSubscriptionChange(SubscriptionManager mgr) {
+ if ((mgr == null) || (mSubscriptionsChangedListener == null)) {
+ return;
+ }
+ mgr.removeOnSubscriptionsChangedListener(mSubscriptionsChangedListener);
+ mSubscriptionsChangedListener = null;
}
@Override
@@ -269,6 +337,7 @@
if (mAlertDialog != null) {
mAlertDialog.dismiss();
}
+ stopMonitorSubscriptionChange(getSubscriptionManager());
super.onDestroy();
}
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index b6a9f59..4390aad 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -143,6 +143,11 @@
public static final String PROPERTY_PERMISSIONS_HUB_ENABLED = "permissions_hub_enabled";
/**
+ * Whether to show location indicators.
+ */
+ public static final String PROPERTY_LOCATION_INDICATORS_ENABLED = "location_indicators_enabled";
+
+ /**
* Finds a matching activity for a preference's intent. If a matching
* activity is not found, it will remove the preference.
*
diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java
index 09243e5..ea7fb7c 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceController.java
@@ -17,6 +17,7 @@
package com.android.settings.accessibility;
import android.content.Context;
+import android.hardware.display.ColorDisplayManager;
import android.provider.Settings;
import androidx.preference.Preference;
@@ -34,7 +35,12 @@
@Override
public int getAvailabilityStatus() {
- // TODO(b/170970675): Call into ColorDisplayService (CDS) to get availability/config status
+ if (!ColorDisplayManager.isColorTransformAccelerated(mContext)) {
+ return UNSUPPORTED_ON_DEVICE;
+ } else if (Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 0) != 1) {
+ return DISABLED_DEPENDENT_SETTING;
+ }
return AVAILABLE;
}
@@ -59,14 +65,14 @@
@Override
public int getSliderPosition() {
- // TODO(b/170970675): Call into CDS to get intensity
- return 0;
+ return Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.REDUCE_BRIGHT_COLORS_LEVEL, 0);
}
@Override
public boolean setSliderPosition(int position) {
- // TODO(b/170970675): Call into CDS to set intensity
- return true;
+ return Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.REDUCE_BRIGHT_COLORS_LEVEL, position);
}
@Override
diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
index c5ce77c..82b3a64 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsPreferenceController.java
@@ -17,6 +17,7 @@
package com.android.settings.accessibility;
import android.content.Context;
+import android.hardware.display.ColorDisplayManager;
import android.provider.Settings;
import com.android.settings.core.BasePreferenceController;
@@ -37,7 +38,7 @@
@Override
public int getAvailabilityStatus() {
- // TODO(b/170970675): call into CDS to get availability/config status
- return AVAILABLE;
+ return ColorDisplayManager.isColorTransformAccelerated(mContext) ? AVAILABLE
+ : UNSUPPORTED_ON_DEVICE;
}
}
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index 4822607..2985a9d 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -89,6 +89,9 @@
if (this instanceof InternalActivity) {
mUserId = getIntent().getIntExtra(Intent.EXTRA_USER_ID, UserHandle.myUserId());
+ if (BiometricUtils.containsGatekeeperPasswordHandle(getIntent())) {
+ mGkPwHandle = BiometricUtils.getGatekeeperPasswordHandle(getIntent());
+ }
}
if (savedInstanceState != null) {
@@ -366,7 +369,7 @@
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
}
BiometricUtils.launchEnrollForResult(this, intent, 0 /* requestCode */, hardwareAuthToken,
- null /* gkPwHandle */, mUserId);
+ mGkPwHandle, mUserId);
}
private void launchCredentialOnlyEnroll() {
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
index c2dc3ac..23a1133 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
@@ -48,9 +48,14 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
mFingerprintManager = Utils.getFingerprintManagerOrNull(this);
+ if (mFingerprintManager == null) {
+ Log.e(TAG, "Null FingerprintManager");
+ finish();
+ return;
+ }
+
+ super.onCreate(savedInstanceState);
mFooterBarMixin = getLayout().getMixin(FooterBarMixin.class);
mFooterBarMixin.setSecondaryButton(
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
index be383dc..e40e30d 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
@@ -99,9 +99,9 @@
if (mRequestType == BluetoothDevice.REQUEST_TYPE_PROFILE_CONNECTION) {
showDialog(getString(R.string.bluetooth_connection_permission_request), mRequestType);
} else if (mRequestType == BluetoothDevice.REQUEST_TYPE_PHONEBOOK_ACCESS) {
- showDialog(getString(R.string.bluetooth_phonebook_request), mRequestType);
+ showDialog(getString(R.string.bluetooth_phonebook_access_dialog_title), mRequestType);
} else if (mRequestType == BluetoothDevice.REQUEST_TYPE_MESSAGE_ACCESS) {
- showDialog(getString(R.string.bluetooth_map_request), mRequestType);
+ showDialog(getString(R.string.bluetooth_message_access_dialog_title), mRequestType);
} else if (mRequestType == BluetoothDevice.REQUEST_TYPE_SIM_ACCESS) {
showDialog(getString(R.string.bluetooth_sap_request), mRequestType);
}
@@ -136,9 +136,9 @@
p.mView = createSapDialogView();
break;
}
- p.mPositiveButtonText = getString(R.string.yes);
+ p.mPositiveButtonText = getString(R.string.allow);
p.mPositiveButtonListener = this;
- p.mNegativeButtonText = getString(R.string.no);
+ p.mNegativeButtonText = getString(R.string.deny);
p.mNegativeButtonListener = this;
mOkButton = mAlert.getButton(DialogInterface.BUTTON_POSITIVE);
setupAlert();
@@ -168,7 +168,7 @@
String mRemoteName = Utils.createRemoteName(this, mDevice);
mView = getLayoutInflater().inflate(R.layout.bluetooth_access, null);
messageView = (TextView)mView.findViewById(R.id.message);
- messageView.setText(getString(R.string.bluetooth_pb_acceptance_dialog_text,
+ messageView.setText(getString(R.string.bluetooth_phonebook_access_dialog_content,
mRemoteName, mRemoteName));
return mView;
}
@@ -177,7 +177,7 @@
String mRemoteName = Utils.createRemoteName(this, mDevice);
mView = getLayoutInflater().inflate(R.layout.bluetooth_access, null);
messageView = (TextView)mView.findViewById(R.id.message);
- messageView.setText(getString(R.string.bluetooth_map_acceptance_dialog_text,
+ messageView.setText(getString(R.string.bluetooth_message_access_dialog_content,
mRemoteName, mRemoteName));
return mView;
}
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
index 684f90f..7fac4991c 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
@@ -140,13 +140,13 @@
switch (mRequestType) {
case BluetoothDevice.REQUEST_TYPE_PHONEBOOK_ACCESS:
title = context.getString(R.string.bluetooth_phonebook_request);
- message = context.getString(R.string.bluetooth_pb_acceptance_dialog_text,
- deviceAlias, deviceAlias);
+ message = context.getString(
+ R.string.bluetooth_phonebook_access_notification_content);
break;
case BluetoothDevice.REQUEST_TYPE_MESSAGE_ACCESS:
title = context.getString(R.string.bluetooth_map_request);
- message = context.getString(R.string.bluetooth_map_acceptance_dialog_text,
- deviceAlias, deviceAlias);
+ message = context.getString(
+ R.string.bluetooth_message_access_notification_content);
break;
case BluetoothDevice.REQUEST_TYPE_SIM_ACCESS:
title = context.getString(R.string.bluetooth_sap_request);
@@ -172,6 +172,7 @@
.setContentTitle(title)
.setTicker(message)
.setContentText(message)
+ .setStyle(new Notification.BigTextStyle().bigText(message))
.setSmallIcon(android.R.drawable.stat_sys_data_bluetooth)
.setAutoCancel(true)
.setPriority(Notification.PRIORITY_MAX)
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
index 93df2f1..9cbb921 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
@@ -32,6 +32,7 @@
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
+import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
@@ -156,24 +157,24 @@
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
- ProgressBar bar = (ProgressBar) holder.findViewById(R.id.determinateBar);
+ ProgressBar bar = getProgressBar(holder);
if (mChartEnabled && (!TextUtils.isEmpty(mStartLabel) || !TextUtils.isEmpty(mEndLabel))) {
bar.setVisibility(View.VISIBLE);
- holder.findViewById(R.id.label_bar).setVisibility(View.VISIBLE);
+ getLabelBar(holder).setVisibility(View.VISIBLE);
bar.setProgress((int) (mProgress * 100));
- ((TextView) holder.findViewById(android.R.id.text1)).setText(mStartLabel);
- ((TextView) holder.findViewById(android.R.id.text2)).setText(mEndLabel);
+ (getLabel1(holder)).setText(mStartLabel);
+ (getLabel2(holder)).setText(mEndLabel);
} else {
bar.setVisibility(View.GONE);
- holder.findViewById(R.id.label_bar).setVisibility(View.GONE);
+ getLabelBar(holder).setVisibility(View.GONE);
}
updateDataUsageLabels(holder);
- TextView usageTitle = (TextView) holder.findViewById(R.id.usage_title);
- TextView carrierInfo = (TextView) holder.findViewById(R.id.carrier_and_update);
- Button launchButton = (Button) holder.findViewById(R.id.launch_mdp_app_button);
- TextView limitInfo = (TextView) holder.findViewById(R.id.data_limits);
+ TextView usageTitle = getUsageTitle(holder);
+ TextView carrierInfo = getCarrierInfo(holder);
+ Button launchButton = getLaunchButton(holder);
+ TextView limitInfo = getDataLimits(holder);
if (mWifiMode && mSingleWifi) {
updateCycleTimeText(holder);
@@ -187,7 +188,7 @@
} else if (mWifiMode) {
usageTitle.setText(R.string.data_usage_wifi_title);
usageTitle.setVisibility(View.VISIBLE);
- TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
+ TextView cycleTime = getCycleTime(holder);
cycleTime.setText(mUsagePeriod);
carrierInfo.setVisibility(View.GONE);
limitInfo.setVisibility(View.GONE);
@@ -235,7 +236,7 @@
}
private void updateDataUsageLabels(PreferenceViewHolder holder) {
- TextView usageNumberField = (TextView) holder.findViewById(R.id.data_usage_view);
+ TextView usageNumberField = getDataUsed(holder);
final Formatter.BytesResult usedResult = Formatter.formatBytes(getContext().getResources(),
mDataplanUse, Formatter.FLAG_CALCULATE_ROUNDED | Formatter.FLAG_IEC_UNITS);
@@ -250,11 +251,10 @@
TextUtils.expandTemplate(template, usageNumberText, usedResult.units);
usageNumberField.setText(usageText);
- final MeasurableLinearLayout layout =
- (MeasurableLinearLayout) holder.findViewById(R.id.usage_layout);
+ final MeasurableLinearLayout layout = getLayout(holder);
if (mHasMobileData && mNumPlans >= 0 && mDataplanSize > 0L) {
- TextView usageRemainingField = (TextView) holder.findViewById(R.id.data_remaining_view);
+ TextView usageRemainingField = getDataRemaining(holder);
long dataRemaining = mDataplanSize - mDataplanUse;
if (dataRemaining >= 0) {
usageRemainingField.setText(
@@ -276,7 +276,7 @@
}
private void updateCycleTimeText(PreferenceViewHolder holder) {
- TextView cycleTime = (TextView) holder.findViewById(R.id.cycle_left_time);
+ TextView cycleTime = getCycleTime(holder);
// Takes zero as a special case which value is never set.
if (mCycleEndTimeMs == CYCLE_TIME_UNINITIAL_VALUE) {
@@ -362,9 +362,68 @@
}
@VisibleForTesting
- long getHistoricalUsageLevel() {
+ protected long getHistoricalUsageLevel() {
final DataUsageController controller = new DataUsageController(getContext());
return controller.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard());
}
+ @VisibleForTesting
+ protected TextView getUsageTitle(PreferenceViewHolder holder) {
+ return (TextView) holder.findViewById(R.id.usage_title);
+ }
+
+ @VisibleForTesting
+ protected TextView getCycleTime(PreferenceViewHolder holder) {
+ return (TextView) holder.findViewById(R.id.cycle_left_time);
+ }
+
+ @VisibleForTesting
+ protected TextView getCarrierInfo(PreferenceViewHolder holder) {
+ return (TextView) holder.findViewById(R.id.carrier_and_update);
+ }
+
+ @VisibleForTesting
+ protected TextView getDataLimits(PreferenceViewHolder holder) {
+ return (TextView) holder.findViewById(R.id.data_limits);
+ }
+
+ @VisibleForTesting
+ protected TextView getDataUsed(PreferenceViewHolder holder) {
+ return (TextView) holder.findViewById(R.id.data_usage_view);
+ }
+
+ @VisibleForTesting
+ protected TextView getDataRemaining(PreferenceViewHolder holder) {
+ return (TextView) holder.findViewById(R.id.data_remaining_view);
+ }
+
+ @VisibleForTesting
+ protected Button getLaunchButton(PreferenceViewHolder holder) {
+ return (Button) holder.findViewById(R.id.launch_mdp_app_button);
+ }
+
+ @VisibleForTesting
+ protected LinearLayout getLabelBar(PreferenceViewHolder holder) {
+ return (LinearLayout) holder.findViewById(R.id.label_bar);
+ }
+
+ @VisibleForTesting
+ protected TextView getLabel1(PreferenceViewHolder holder) {
+ return (TextView) holder.findViewById(android.R.id.text1);
+ }
+
+ @VisibleForTesting
+ protected TextView getLabel2(PreferenceViewHolder holder) {
+ return (TextView) holder.findViewById(android.R.id.text2);
+ }
+
+ @VisibleForTesting
+ protected ProgressBar getProgressBar(PreferenceViewHolder holder) {
+ return (ProgressBar) holder.findViewById(R.id.determinateBar);
+ }
+
+ @VisibleForTesting
+ protected MeasurableLinearLayout getLayout(PreferenceViewHolder holder) {
+ return (MeasurableLinearLayout) holder.findViewById(R.id.usage_layout);
+ }
}
diff --git a/src/com/android/settings/datausage/OWNERS b/src/com/android/settings/datausage/OWNERS
new file mode 100644
index 0000000..49449ec
--- /dev/null
+++ b/src/com/android/settings/datausage/OWNERS
@@ -0,0 +1,5 @@
+# Default reviewers for this and subdirectories.
+andychou@google.com
+goldmanj@google.com
+bonianchen@google.com
+wengsu@google.com
diff --git a/src/com/android/settings/development/qstile/DevelopmentTiles.java b/src/com/android/settings/development/qstile/DevelopmentTiles.java
index e64c8c0..203a688 100644
--- a/src/com/android/settings/development/qstile/DevelopmentTiles.java
+++ b/src/com/android/settings/development/qstile/DevelopmentTiles.java
@@ -48,6 +48,8 @@
import androidx.annotation.VisibleForTesting;
import com.android.internal.app.LocalePicker;
+import com.android.internal.inputmethod.Completable;
+import com.android.internal.inputmethod.ResultCallbacks;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.view.IInputMethodManager;
import com.android.settings.R;
@@ -260,9 +262,12 @@
return false;
}
- private boolean isImeTraceEnabled() {
+ @VisibleForTesting
+ boolean isImeTraceEnabled() {
try {
- return mInputMethodManager.isImeTraceEnabled();
+ final Completable.Boolean value = Completable.createBoolean();
+ mInputMethodManager.isImeTraceEnabled(ResultCallbacks.of(value));
+ return Completable.getResult(value);
} catch (RemoteException e) {
Log.e(TAG, "Could not get ime trace status, defaulting to false.", e);
}
diff --git a/src/com/android/settings/development/transcode/TranscodeAppsPreferenceController.java b/src/com/android/settings/development/transcode/TranscodeAppsPreferenceController.java
deleted file mode 100644
index 5593d7a..0000000
--- a/src/com/android/settings/development/transcode/TranscodeAppsPreferenceController.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.development.transcode;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.SystemProperties;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.core.BasePreferenceController;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * The controller for the "Enable transcoding for apps" section on the transcode settings
- * screen.
- */
-public class TranscodeAppsPreferenceController extends BasePreferenceController implements
- Preference.OnPreferenceChangeListener {
-
- private static final String TRANSCODE_SELECTED_APPS_PROP_KEY =
- "persist.sys.fuse.transcode_uids";
-
- private final PackageManager mPackageManager;
- private final List<String> mUids = new ArrayList<>();
-
- public TranscodeAppsPreferenceController(Context context,
- String preferenceKey) {
- super(context, preferenceKey);
- mPackageManager = context.getPackageManager();
- }
-
- @Override
- public int getAvailabilityStatus() {
- return AVAILABLE;
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- final Context context = screen.getContext();
- mUids.addAll(Arrays.asList(
- SystemProperties.get(TRANSCODE_SELECTED_APPS_PROP_KEY).split(",")));
- Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
- launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
- List<ResolveInfo> apps = mPackageManager.queryIntentActivities(launcherIntent, 0);
- for (ResolveInfo app : apps) {
- String uid = String.valueOf(app.activityInfo.applicationInfo.uid);
- SwitchPreference preference = new SwitchPreference(context);
- preference.setTitle(app.loadLabel(mPackageManager));
- preference.setIcon(app.loadIcon(mPackageManager));
- preference.setKey(uid);
- preference.setChecked(isSelectedForTranscoding(uid));
- preference.setOnPreferenceChangeListener(this);
-
- screen.addPreference(preference);
- }
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object o) {
- boolean value = (Boolean) o;
- String uidStr = preference.getKey();
- if (value) {
- mUids.add(uidStr);
- } else {
- mUids.remove(uidStr);
- }
- SystemProperties.set(TRANSCODE_SELECTED_APPS_PROP_KEY, String.join(",", mUids));
- return true;
- }
-
- private boolean isSelectedForTranscoding(String uid) {
- return mUids.contains(uid);
- }
-}
diff --git a/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java b/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
index 3cbf3cb..f14953c 100644
--- a/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
+++ b/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceController.java
@@ -35,7 +35,7 @@
@Override
public boolean isChecked() {
- return !SystemProperties.getBoolean(TRANSCODE_DEFAULT_SYS_PROP_KEY, false);
+ return !SystemProperties.getBoolean(TRANSCODE_DEFAULT_SYS_PROP_KEY, true);
}
@Override
diff --git a/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java b/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java
index f36f4cb..c15806d 100644
--- a/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java
+++ b/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceController.java
@@ -41,7 +41,7 @@
@Override
public boolean isChecked() {
- return SystemProperties.getBoolean(TRANSCODE_ENABLED_PROP_KEY, false);
+ return SystemProperties.getBoolean(TRANSCODE_ENABLED_PROP_KEY, true);
}
@Override
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
index 10409fc..414039b 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java
@@ -16,6 +16,8 @@
package com.android.settings.deviceinfo.simstatus;
+import static androidx.lifecycle.Lifecycle.Event;
+
import android.annotation.Nullable;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -54,21 +56,23 @@
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
+import androidx.lifecycle.LifecycleObserver;
+import androidx.lifecycle.OnLifecycleEvent;
import com.android.settings.R;
import com.android.settingslib.DeviceInfoUtils;
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.OnPause;
-import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.utils.ThreadUtils;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
-public class SimStatusDialogController implements LifecycleObserver, OnResume, OnPause {
+/**
+ * Controller for Sim Status information within the About Phone Settings page.
+ */
+public class SimStatusDialogController implements LifecycleObserver {
private final static String TAG = "SimStatusDialogCtrl";
@@ -263,7 +267,10 @@
}
}
- @Override
+ /**
+ * OnResume lifecycle event, resume listening for phone state or subscription changes.
+ */
+ @OnLifecycleEvent(Event.ON_RESUME)
public void onResume() {
if (mSubscriptionInfo == null) {
return;
@@ -288,7 +295,10 @@
mIsRegisteredListener = true;
}
- @Override
+ /**
+ * onPause lifecycle event, no longer listen for phone state or subscription changes.
+ */
+ @OnLifecycleEvent(Event.ON_PAUSE)
public void onPause() {
if (mSubscriptionInfo == null) {
if (mIsRegisteredListener) {
@@ -318,7 +328,8 @@
mDialog.setText(NETWORK_PROVIDER_VALUE_ID, carrierName);
}
- private void updatePhoneNumber() {
+ @VisibleForTesting
+ protected void updatePhoneNumber() {
// If formattedNumber is null or empty, it'll display as "Unknown".
mDialog.setText(PHONE_NUMBER_VALUE_ID,
DeviceInfoUtils.getBidiFormattedPhoneNumber(mContext, mSubscriptionInfo));
@@ -592,7 +603,7 @@
}
@VisibleForTesting
- void requestForUpdateEid() {
+ protected void requestForUpdateEid() {
ThreadUtils.postOnBackgroundThread(() -> {
final AtomicReference<String> eid = getEid(mSlotIndex);
ThreadUtils.postOnMainThread(() -> updateEid(eid));
@@ -600,7 +611,7 @@
}
@VisibleForTesting
- AtomicReference<String> getEid(int slotIndex) {
+ protected AtomicReference<String> getEid(int slotIndex) {
boolean shouldHaveEid = false;
String eid = null;
if (mTelephonyManager.getActiveModemCount() > MAX_PHONE_COUNT_SINGLE_SIM) {
@@ -638,7 +649,7 @@
}
@VisibleForTesting
- void updateEid(AtomicReference<String> eid) {
+ protected void updateEid(AtomicReference<String> eid) {
if (eid == null) {
mDialog.removeSettingFromScreen(EID_INFO_LABEL_ID);
mDialog.removeSettingFromScreen(EID_INFO_VALUE_ID);
@@ -753,7 +764,7 @@
}
@VisibleForTesting
- PhoneStateListener getPhoneStateListener() {
+ protected PhoneStateListener getPhoneStateListener() {
return new PhoneStateListener() {
@Override
public void onDataConnectionStateChanged(int state) {
diff --git a/src/com/android/settings/display/ScreenTimeoutPreferenceController.java b/src/com/android/settings/display/ScreenTimeoutPreferenceController.java
index 2e39e8e..c44376c 100644
--- a/src/com/android/settings/display/ScreenTimeoutPreferenceController.java
+++ b/src/com/android/settings/display/ScreenTimeoutPreferenceController.java
@@ -26,10 +26,13 @@
import android.os.UserManager;
import android.provider.Settings;
+import androidx.preference.Preference;
+
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settingslib.RestrictedPreference;
/**
* The controller of {@link ScreenTimeoutSettings}.
@@ -43,39 +46,58 @@
@Override
public int getAvailabilityStatus() {
- return isDisableByAdmin() ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
+ return AVAILABLE;
}
@Override
- public CharSequence getSummary() {
- if (isDisableByAdmin()) {
- return mContext.getString(com.android.settings.R.string.disabled_by_policy_title);
- } else {
- final long currentTimeout = getCurrentScreenTimeout();
- final CharSequence[] timeoutEntries = mContext.getResources().getStringArray(
- R.array.screen_timeout_entries);
- final CharSequence[] timeoutValues = mContext.getResources().getStringArray(
- R.array.screen_timeout_values);
- final CharSequence description = TimeoutPreferenceController.getTimeoutDescription(
- currentTimeout, timeoutEntries, timeoutValues);
- return mContext.getString(R.string.screen_timeout_summary, description);
+ public void updateState(Preference preference) {
+ final RestrictedLockUtils.EnforcedAdmin admin = getEnforcedAdmin();
+ if (admin != null) {
+ preference.setEnabled(false);
+ ((RestrictedPreference) preference).setDisabledByAdmin(admin);
}
+ preference.setSummary(getTimeoutSummary());
}
- private boolean isDisableByAdmin() {
+ private CharSequence getTimeoutSummary() {
+ final long currentTimeout = getCurrentScreenTimeout();
+ final CharSequence[] timeoutEntries = mContext.getResources().getStringArray(
+ R.array.screen_timeout_entries);
+ final CharSequence[] timeoutValues = mContext.getResources().getStringArray(
+ R.array.screen_timeout_values);
+ final CharSequence description = getTimeoutDescription(
+ currentTimeout, timeoutEntries, timeoutValues);
+ return mContext.getString(R.string.screen_timeout_summary, description);
+ }
+
+ private RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin() {
final DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class);
if (dpm != null) {
- final RestrictedLockUtils.EnforcedAdmin admin =
- RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
- mContext, UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT,
- UserHandle.myUserId());
- return admin != null;
+ return RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+ mContext, UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT,
+ UserHandle.myUserId());
}
- return false;
+ return null;
}
private long getCurrentScreenTimeout() {
return Settings.System.getLong(mContext.getContentResolver(),
SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE);
}
+
+ private static CharSequence getTimeoutDescription(
+ long currentTimeout, CharSequence[] entries, CharSequence[] values) {
+ if (currentTimeout < 0 || entries == null || values == null
+ || values.length != entries.length) {
+ return null;
+ }
+
+ for (int i = 0; i < values.length; i++) {
+ long timeout = Long.parseLong(values[i].toString());
+ if (currentTimeout == timeout) {
+ return entries[i];
+ }
+ }
+ return null;
+ }
}
diff --git a/src/com/android/settings/display/ScreenTimeoutSettings.java b/src/com/android/settings/display/ScreenTimeoutSettings.java
index 290e4ff..83f904a 100644
--- a/src/com/android/settings/display/ScreenTimeoutSettings.java
+++ b/src/com/android/settings/display/ScreenTimeoutSettings.java
@@ -28,6 +28,7 @@
import android.provider.Settings;
import android.util.Log;
+import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
@@ -59,9 +60,17 @@
/** If there is no setting in the provider, use this. */
public static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000;
+ private static final int DEFAULT_ORDER_OF_LOWEST_PREFERENCE = Integer.MAX_VALUE - 1;
+
private CharSequence[] mInitialEntries;
private CharSequence[] mInitialValues;
private FooterPreference mPrivacyPreference;
+
+ @VisibleForTesting
+ RestrictedLockUtils.EnforcedAdmin mAdmin;
+ @VisibleForTesting
+ Preference mDisableOptionsPreference;
+
@VisibleForTesting
AdaptiveSleepPermissionPreferenceController mAdaptiveSleepPermissionController;
@@ -88,6 +97,15 @@
mPrivacyPreference.setTitle(R.string.adaptive_sleep_privacy);
mPrivacyPreference.setSelectable(false);
mPrivacyPreference.setLayoutResource(R.layout.preference_footer);
+
+ mDisableOptionsPreference = new FooterPreference(context);
+ mDisableOptionsPreference.setLayoutResource(R.layout.preference_footer);
+ mDisableOptionsPreference.setTitle(R.string.admin_disabled_other_options);
+ mDisableOptionsPreference.setIcon(R.drawable.ic_info_outline_24dp);
+
+ // The 'disabled by admin' preference should always be at the end of the setting page.
+ mDisableOptionsPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE);
+ mPrivacyPreference.setOrder(DEFAULT_ORDER_OF_LOWEST_PREFERENCE - 1);
}
@Override
@@ -120,6 +138,14 @@
final PreferenceScreen screen = getPreferenceScreen();
screen.removeAll();
+ if (mAdmin != null) {
+ mDisableOptionsPreference.setOnPreferenceClickListener(p -> {
+ RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(), mAdmin);
+ return true;
+ });
+ screen.addPreference(mDisableOptionsPreference);
+ }
+
final List<? extends CandidateInfo> candidateList = getCandidates();
if (candidateList == null) {
return;
@@ -137,6 +163,14 @@
mAdaptiveSleepController.addToScreen(screen);
screen.addPreference(mPrivacyPreference);
}
+
+ if (mAdmin != null) {
+ mDisableOptionsPreference.setOnPreferenceClickListener(p -> {
+ RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(), mAdmin);
+ return true;
+ });
+ screen.addPreference(mDisableOptionsPreference);
+ }
}
@Override
@@ -178,9 +212,8 @@
if (dpm == null) {
return Long.MAX_VALUE;
}
- final RestrictedLockUtils.EnforcedAdmin admin =
- RestrictedLockUtilsInternal.checkIfMaximumTimeToLockIsSet(context);
- if (admin != null) {
+ mAdmin = RestrictedLockUtilsInternal.checkIfMaximumTimeToLockIsSet(context);
+ if (mAdmin != null) {
return dpm.getMaximumTimeToLock(null /* admin */, UserHandle.myUserId());
}
return Long.MAX_VALUE;
diff --git a/src/com/android/settings/display/TimeoutPreferenceController.java b/src/com/android/settings/display/TimeoutPreferenceController.java
deleted file mode 100644
index 60b7e24..0000000
--- a/src/com/android/settings/display/TimeoutPreferenceController.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-package com.android.settings.display;
-
-import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
-
-import android.app.admin.DevicePolicyManager;
-import android.content.Context;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.util.Log;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-import com.android.settingslib.RestrictedLockUtilsInternal;
-import com.android.settingslib.core.AbstractPreferenceController;
-
-public class TimeoutPreferenceController extends AbstractPreferenceController implements
- PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
-
- private static final String TAG = "TimeoutPrefContr";
-
- /** If there is no setting in the provider, use this. */
- public static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000;
-
- private final String mScreenTimeoutKey;
-
- public TimeoutPreferenceController(Context context, String key) {
- super(context);
- mScreenTimeoutKey = key;
- }
-
- @Override
- public boolean isAvailable() {
- return true;
- }
-
- @Override
- public String getPreferenceKey() {
- return mScreenTimeoutKey;
- }
-
- @Override
- public void updateState(Preference preference) {
- final TimeoutListPreference timeoutListPreference = (TimeoutListPreference) preference;
- final long currentTimeout = Settings.System.getLong(mContext.getContentResolver(),
- SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE);
- timeoutListPreference.setValue(String.valueOf(currentTimeout));
- final DevicePolicyManager dpm =
- (DevicePolicyManager) mContext.getSystemService(Context.DEVICE_POLICY_SERVICE);
- if (dpm != null) {
- final RestrictedLockUtils.EnforcedAdmin admin =
- RestrictedLockUtilsInternal.checkIfMaximumTimeToLockIsSet(mContext);
- final long maxTimeout =
- dpm.getMaximumTimeToLock(null /* admin */, UserHandle.myUserId());
- timeoutListPreference.removeUnusableTimeouts(maxTimeout, admin);
- }
- updateTimeoutPreferenceDescription(timeoutListPreference,
- Long.parseLong(timeoutListPreference.getValue()));
-
- final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
- mContext, UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT,
- UserHandle.myUserId());
- if (admin != null) {
- timeoutListPreference.removeUnusableTimeouts(0/* disable all*/, admin);
- }
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- try {
- int value = Integer.parseInt((String) newValue);
- Settings.System.putInt(mContext.getContentResolver(), SCREEN_OFF_TIMEOUT, value);
- updateTimeoutPreferenceDescription((TimeoutListPreference) preference, value);
- } catch (NumberFormatException e) {
- Log.e(TAG, "could not persist screen timeout setting", e);
- }
- return true;
- }
-
- public static CharSequence getTimeoutDescription(
- long currentTimeout, CharSequence[] entries, CharSequence[] values) {
- if (currentTimeout < 0 || entries == null || values == null
- || values.length != entries.length) {
- return null;
- }
-
- for (int i = 0; i < values.length; i++) {
- long timeout = Long.parseLong(values[i].toString());
- if (currentTimeout == timeout) {
- return entries[i];
- }
- }
- return null;
- }
-
- private void updateTimeoutPreferenceDescription(TimeoutListPreference preference,
- long currentTimeout) {
- final CharSequence[] entries = preference.getEntries();
- final CharSequence[] values = preference.getEntryValues();
- final String summary;
- if (preference.isDisabledByAdmin()) {
- summary = mContext.getString(com.android.settings.R.string.disabled_by_policy_title);
- } else {
- final CharSequence timeoutDescription = getTimeoutDescription(
- currentTimeout, entries, values);
- summary = timeoutDescription == null
- ? ""
- : mContext.getString(R.string.screen_timeout_summary, timeoutDescription);
- }
- preference.setSummary(summary);
- }
-
-}
diff --git a/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceController.java b/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceController.java
index 3dba3f0..28e4154 100644
--- a/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceController.java
+++ b/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceController.java
@@ -21,6 +21,8 @@
import android.os.Handler;
import android.os.Looper;
import android.provider.Settings;
+import android.telephony.PhoneNumberUtils;
+import android.text.Spannable;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
@@ -69,8 +71,17 @@
@Override
public CharSequence getSummary() {
- return mContext.getString(R.string.emergency_gesture_call_for_help_summary,
- mEmergencyNumberUtils.getPoliceNumber());
+ String number = mEmergencyNumberUtils.getPoliceNumber();
+ String summary = mContext.getString(R.string.emergency_gesture_call_for_help_summary,
+ number);
+ int numberStartIndex = summary.indexOf(number);
+ if (numberStartIndex < 0) {
+ return summary;
+ }
+ Spannable summarySpan = Spannable.Factory.getInstance().newSpannable(summary);
+ PhoneNumberUtils.addTtsSpan(summarySpan, numberStartIndex,
+ numberStartIndex + number.length());
+ return summarySpan;
}
@Override
diff --git a/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java
index 5eba539..04a32de 100644
--- a/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java
+++ b/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceController.java
@@ -76,7 +76,7 @@
@Override
public boolean isChecked() {
return Settings.Secure.getInt(mContext.getContentResolver(),
- SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, OFF) == ON;
+ SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, ON) == ON;
}
@Override
diff --git a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
index 19de403..bfdd13a 100644
--- a/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
+++ b/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSlice.java
@@ -206,7 +206,7 @@
return PendingIntent
.getActivity(mContext, device.hashCode() /* requestCode */,
subSettingLauncher.toIntent(),
- 0 /* flags */);
+ PendingIntent.FLAG_IMMUTABLE);
}
@VisibleForTesting
@@ -236,7 +236,8 @@
.setClass(mContext, SliceBroadcastReceiver.class)
.putExtra(EXTRA_ENABLE_BLUETOOTH, true);
final SliceAction action = SliceAction.create(PendingIntent.getBroadcast(mContext,
- 0 /* requestCode */, intent, 0 /* flags */), icon, ListBuilder.ICON_IMAGE, title);
+ 0 /* requestCode */, intent, PendingIntent.FLAG_IMMUTABLE), icon,
+ ListBuilder.ICON_IMAGE, title);
return new ListBuilder.RowBuilder()
.setTitleItem(icon, ListBuilder.ICON_IMAGE)
@@ -252,7 +253,7 @@
final IconCompat icon = Utils.createIconWithDrawable(drawable);
final CharSequence title = mContext.getText(R.string.bluetooth_devices);
final PendingIntent primaryActionIntent = PendingIntent.getActivity(mContext,
- 0 /* requestCode */, getIntent(), 0 /* flags */);
+ 0 /* requestCode */, getIntent(), PendingIntent.FLAG_IMMUTABLE);
final SliceAction primarySliceAction = SliceAction.createDeeplink(primaryActionIntent, icon,
ListBuilder.ICON_IMAGE, title);
@@ -274,7 +275,7 @@
.setSourceMetricsCategory(SettingsEnums.BLUETOOTH_PAIRING)
.toIntent();
final PendingIntent pi = PendingIntent.getActivity(mContext, intent.hashCode(), intent,
- 0 /* flags */);
+ PendingIntent.FLAG_IMMUTABLE);
return SliceAction.createDeeplink(pi, icon, ListBuilder.ICON_IMAGE, title);
}
@@ -341,7 +342,8 @@
.putExtra(BLUETOOTH_DEVICE_HASH_CODE, bluetoothDevice.hashCode());
return SliceAction.create(
- PendingIntent.getBroadcast(mContext, bluetoothDevice.hashCode(), intent, 0),
+ PendingIntent.getBroadcast(mContext, bluetoothDevice.hashCode(), intent,
+ PendingIntent.FLAG_IMMUTABLE),
getBluetoothDeviceIcon(bluetoothDevice),
ListBuilder.ICON_IMAGE,
bluetoothDevice.getName());
diff --git a/src/com/android/settings/location/LocationIndicatorsPreferenceController.java b/src/com/android/settings/location/LocationIndicatorsPreferenceController.java
new file mode 100644
index 0000000..f7b7408
--- /dev/null
+++ b/src/com/android/settings/location/LocationIndicatorsPreferenceController.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.location;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.provider.DeviceConfig;
+
+import com.android.settings.Utils;
+import com.android.settings.core.TogglePreferenceController;
+
+/** Controller for location indicators toggle. */
+public class LocationIndicatorsPreferenceController extends TogglePreferenceController {
+
+ public LocationIndicatorsPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public boolean isChecked() {
+ return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
+ Utils.PROPERTY_LOCATION_INDICATORS_ENABLED, false);
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
+ Utils.PROPERTY_LOCATION_INDICATORS_ENABLED, Boolean.toString(isChecked), true);
+ return true;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ // Location indicators feature is only available on devices that support location.
+ return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_LOCATION)
+ ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+}
diff --git a/src/com/android/settings/media/MediaDeviceUpdateWorker.java b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
index b8c3d8f..14e8267 100644
--- a/src/com/android/settings/media/MediaDeviceUpdateWorker.java
+++ b/src/com/android/settings/media/MediaDeviceUpdateWorker.java
@@ -18,8 +18,6 @@
import static android.media.AudioManager.STREAM_DEVICES_CHANGED_ACTION;
-import static com.android.settings.media.MediaOutputSlice.MEDIA_PACKAGE_NAME;
-
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -55,6 +53,8 @@
private static final String TAG = "MediaDeviceUpdateWorker";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
+ public static final String MEDIA_PACKAGE_NAME = "media_package_name";
+
protected final Context mContext;
protected final Collection<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>();
private final DevicesChangedBroadcastReceiver mReceiver;
diff --git a/src/com/android/settings/media/MediaOutputGroupSlice.java b/src/com/android/settings/media/MediaOutputGroupSlice.java
deleted file mode 100644
index 0359ca9..0000000
--- a/src/com/android/settings/media/MediaOutputGroupSlice.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.media;
-
-import static android.app.slice.Slice.EXTRA_RANGE_VALUE;
-
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_GROUP_SLICE_URI;
-
-import android.app.PendingIntent;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.builders.SliceAction;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.slices.CustomSliceable;
-import com.android.settings.slices.SliceBackgroundWorker;
-import com.android.settings.slices.SliceBroadcastReceiver;
-import com.android.settingslib.media.MediaDevice;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Show the Media device that can be transfer the media.
- */
-public class MediaOutputGroupSlice implements CustomSliceable {
-
- @VisibleForTesting
- static final String GROUP_DEVICES = "group_devices";
- @VisibleForTesting
- static final String MEDIA_DEVICE_ID = "media_device_id";
- @VisibleForTesting
- static final String CUSTOMIZED_ACTION = "customized_action";
- @VisibleForTesting
- static final int ACTION_VOLUME_ADJUSTMENT = 1;
- @VisibleForTesting
- static final int ACTION_MEDIA_SESSION_OPERATION = 2;
- @VisibleForTesting
- static final int ERROR = -1;
-
- private static final String TAG = "MediaOutputGroupSlice";
- private static final int COLOR_DISABLED = (int) (255 * 0.3);
-
- private final Context mContext;
- private MediaDeviceUpdateWorker mWorker;
-
- public MediaOutputGroupSlice(Context context) {
- mContext = context;
- }
-
- @Override
- public Slice getSlice() {
- final ListBuilder listBuilder = new ListBuilder(mContext, getUri(), ListBuilder.INFINITY)
- .setAccentColor(COLOR_NOT_TINTED);
- // Add "Group" row
- final IconCompat titleIcon = IconCompat.createWithResource(mContext,
- R.drawable.ic_speaker_group_black_24dp);
- final Bitmap emptyBitmap = Bitmap.createBitmap(1, 1, Bitmap.Config.ARGB_8888);
- if (getWorker() == null) {
- return listBuilder.build();
- }
- final int maxVolume = getWorker().getSessionVolumeMax();
- final String title = mContext.getString(R.string.media_output_group);
- final SliceAction primaryAction = SliceAction.createDeeplink(
- getBroadcastIntent(GROUP_DEVICES,
- GROUP_DEVICES.hashCode(),
- ACTION_MEDIA_SESSION_OPERATION),
- titleIcon, ListBuilder.ICON_IMAGE, GROUP_DEVICES);
- final SliceAction endItemAction = SliceAction.createDeeplink(
- getBroadcastIntent(GROUP_DEVICES,
- GROUP_DEVICES.hashCode() + ACTION_MEDIA_SESSION_OPERATION,
- ACTION_MEDIA_SESSION_OPERATION),
- IconCompat.createWithBitmap(emptyBitmap), ListBuilder.ICON_IMAGE, "");
- if (maxVolume > 0 && !getWorker().hasAdjustVolumeUserRestriction()) {
- // Add InputRange row
- listBuilder.addInputRange(new ListBuilder.InputRangeBuilder()
- .setTitleItem(titleIcon, ListBuilder.ICON_IMAGE)
- .addEndItem(endItemAction)
- .setTitle(title)
- .setPrimaryAction(primaryAction)
- .setInputAction(getBroadcastIntent(GROUP_DEVICES,
- GROUP_DEVICES.hashCode() + ACTION_VOLUME_ADJUSTMENT,
- ACTION_VOLUME_ADJUSTMENT))
- .setMax(maxVolume)
- .setValue(getWorker().getSessionVolume()));
- } else { // No max volume information. Add generic Row
- listBuilder.addRow(new ListBuilder.RowBuilder()
- .setTitleItem(titleIcon, ListBuilder.ICON_IMAGE)
- .setTitle(title)
- .setPrimaryAction(primaryAction));
- }
- // Add device row
- addRow(listBuilder, getWorker().getSelectedMediaDevice(), true);
- addRow(listBuilder, getWorker().getSelectableMediaDevice(), false);
- return listBuilder.build();
- }
-
- private void addRow(ListBuilder listBuilder, List<MediaDevice> mediaDevices, boolean selected) {
- final boolean adjustVolumeUserRestriction = getWorker().hasAdjustVolumeUserRestriction();
- List<MediaDevice> deselectableMediaDevices = new ArrayList<>();
- if (selected) {
- deselectableMediaDevices = getWorker().getDeselectableMediaDevice();
- }
- for (MediaDevice device : mediaDevices) {
- final int maxVolume = device.getMaxVolume();
- final IconCompat titleIcon = Utils.createIconWithDrawable(device.getIcon());
- final String title = device.getName();
- final SliceAction disabledIconSliceAction = SliceAction.createDeeplink(
- getBroadcastIntent(null, 0, 0),
- getDisabledCheckboxIcon(), ListBuilder.ICON_IMAGE, "");
- final SliceAction enabledIconSliceAction = SliceAction.createToggle(
- getBroadcastIntent(device.getId(),
- device.hashCode() + ACTION_MEDIA_SESSION_OPERATION,
- ACTION_MEDIA_SESSION_OPERATION),
- IconCompat.createWithResource(mContext, R.drawable.ic_check_box_anim),
- "",
- selected);
- if (maxVolume > 0 && selected && !adjustVolumeUserRestriction) {
- // Add InputRange row
- final ListBuilder.InputRangeBuilder builder = new ListBuilder.InputRangeBuilder()
- .setTitleItem(titleIcon, ListBuilder.ICON_IMAGE)
- .setTitle(title)
- .setInputAction(getBroadcastIntent(device.getId(),
- device.hashCode() + ACTION_VOLUME_ADJUSTMENT,
- ACTION_VOLUME_ADJUSTMENT))
- .setMax(device.getMaxVolume())
- .setValue(device.getCurrentVolume());
- // Add endItem with different icons
- if (selected && (!getWorker().isDeviceIncluded(deselectableMediaDevices, device)
- || mediaDevices.size() == 1)) {
- builder.addEndItem(disabledIconSliceAction);
- } else {
- builder.addEndItem(enabledIconSliceAction);
- }
- listBuilder.addInputRange(builder);
- } else { // No max volume information. Add generic Row
- final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
- .setTitleItem(titleIcon, ListBuilder.ICON_IMAGE)
- .setTitle(title);
- // Add endItem with different icons
- if (selected && (!getWorker().isDeviceIncluded(deselectableMediaDevices, device)
- || mediaDevices.size() == 1)) {
- rowBuilder.addEndItem(disabledIconSliceAction);
- } else {
- rowBuilder.addEndItem(enabledIconSliceAction);
- }
- listBuilder.addRow(rowBuilder);
- }
- }
- }
-
- private IconCompat getDisabledCheckboxIcon() {
- final Drawable drawable = mContext.getDrawable(R.drawable.ic_check_box_blue_24dp).mutate();
- final Bitmap checkbox = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
- drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
- final Canvas canvas = new Canvas(checkbox);
- drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
- drawable.setAlpha(COLOR_DISABLED);
- drawable.draw(canvas);
-
- return IconCompat.createWithBitmap(checkbox);
- }
-
- private PendingIntent getBroadcastIntent(String id, int requestCode, int action) {
- final Intent intent = new Intent(getUri().toString());
- intent.setClass(mContext, SliceBroadcastReceiver.class);
- intent.putExtra(MEDIA_DEVICE_ID, id);
- intent.putExtra(CUSTOMIZED_ACTION, action);
- intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
- return PendingIntent.getBroadcast(mContext, requestCode, intent,
- PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
- }
-
- private MediaDeviceUpdateWorker getWorker() {
- if (mWorker == null) {
- mWorker = SliceBackgroundWorker.getInstance(getUri());
- }
- return mWorker;
- }
-
- @Override
- public Uri getUri() {
- return MEDIA_OUTPUT_GROUP_SLICE_URI;
- }
-
- @Override
- public void onNotifyChange(Intent intent) {
- final String id = intent.getStringExtra(MEDIA_DEVICE_ID);
- if (TextUtils.isEmpty(id)) {
- Log.e(TAG, "Unable to handle notification. The device is unavailable");
- return;
- }
- final MediaDeviceUpdateWorker worker = getWorker();
- final MediaDevice device = worker.getMediaDeviceById(id);
- switch (intent.getIntExtra(CUSTOMIZED_ACTION, ERROR)) {
- case ACTION_VOLUME_ADJUSTMENT:
- final int newPosition = intent.getIntExtra(EXTRA_RANGE_VALUE, ERROR);
- if (newPosition == ERROR) {
- Log.e(TAG, "Unable to adjust volume. The volume value is unavailable");
- return;
- }
- // Group volume adjustment
- if (TextUtils.equals(id, GROUP_DEVICES)) {
- worker.adjustSessionVolume(newPosition);
- } else {
- if (device == null) {
- Log.e(TAG, "Unable to adjust volume. The device(" + id
- + ") is unavailable");
- return;
- }
- // Single device volume adjustment
- worker.adjustVolume(device, newPosition);
- }
- break;
- case ACTION_MEDIA_SESSION_OPERATION:
- if (device == null) {
- Log.e(TAG, "Unable to adjust session volume. The device(" + id
- + ") is unavailable");
- return;
- }
- if (worker.isDeviceIncluded(worker.getSelectableMediaDevice(), device)) {
- worker.addDeviceToPlayMedia(device);
- } else if (worker.isDeviceIncluded(worker.getDeselectableMediaDevice(), device)) {
- worker.removeDeviceFromPlayMedia(device);
- } else {
- // Do nothing
- Log.d(TAG, device.getName() + " is not selectable nor deselectable");
- }
- break;
- }
- }
-
- @Override
- public Intent getIntent() {
- return null;
- }
-
- @Override
- public Class getBackgroundWorkerClass() {
- return MediaDeviceUpdateWorker.class;
- }
-}
diff --git a/src/com/android/settings/media/MediaOutputIndicatorSlice.java b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
index 40ee05b..69e5dde 100644
--- a/src/com/android/settings/media/MediaOutputIndicatorSlice.java
+++ b/src/com/android/settings/media/MediaOutputIndicatorSlice.java
@@ -87,7 +87,7 @@
@Override
public Intent getIntent() {
- // This Slice reflects active media device information and launch MediaOutputSlice. It does
+ // This Slice reflects active media device information and launch MediaOutputDialog. It does
// not contain its owned Slice data
return null;
}
diff --git a/src/com/android/settings/media/MediaOutputSlice.java b/src/com/android/settings/media/MediaOutputSlice.java
deleted file mode 100644
index ae7e0e8..0000000
--- a/src/com/android/settings/media/MediaOutputSlice.java
+++ /dev/null
@@ -1,415 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.media;
-
-import static android.app.slice.Slice.EXTRA_RANGE_VALUE;
-import static android.text.Spanned.SPAN_EXCLUSIVE_EXCLUSIVE;
-
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI;
-
-import android.app.PendingIntent;
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.PorterDuff;
-import android.graphics.PorterDuffColorFilter;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-import android.text.SpannableString;
-import android.text.TextUtils;
-import android.text.style.ForegroundColorSpan;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.slice.Slice;
-import androidx.slice.builders.ListBuilder;
-import androidx.slice.builders.SliceAction;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.bluetooth.BluetoothPairingDetail;
-import com.android.settings.core.SubSettingLauncher;
-import com.android.settings.slices.CustomSliceable;
-import com.android.settings.slices.SliceBackgroundWorker;
-import com.android.settings.slices.SliceBroadcastReceiver;
-import com.android.settingslib.media.LocalMediaManager;
-import com.android.settingslib.media.MediaDevice;
-import com.android.settingslib.media.MediaOutputSliceConstants;
-
-import java.util.Collection;
-
-/**
- * Show the Media device that can be transfer the media.
- */
-public class MediaOutputSlice implements CustomSliceable {
-
- private static final String TAG = "MediaOutputSlice";
- private static final String MEDIA_DEVICE_ID = "media_device_id";
- private static final String MEDIA_GROUP_DEVICE = "media_group_device";
- private static final String MEDIA_GROUP_REQUEST = "media_group_request";
- private static final int NON_SLIDER_VALUE = -1;
-
- public static final String MEDIA_PACKAGE_NAME = "media_package_name";
-
- private final Context mContext;
-
- private MediaDeviceUpdateWorker mWorker;
-
- public MediaOutputSlice(Context context) {
- mContext = context;
- }
-
- @VisibleForTesting
- void init(MediaDeviceUpdateWorker worker) {
- mWorker = worker;
- }
-
- @Override
- public Slice getSlice() {
- final ListBuilder listBuilder = new ListBuilder(mContext, getUri(), ListBuilder.INFINITY)
- .setAccentColor(COLOR_NOT_TINTED);
- if (!isVisible()) {
- Log.d(TAG, "getSlice() is not visible");
- return listBuilder.build();
- }
-
- final Collection<MediaDevice> devices = getMediaDevices();
- final MediaDeviceUpdateWorker worker = getWorker();
-
- if (worker.getSelectedMediaDevice().size() > 1) {
- // Insert group item to the first when it is available
- if (worker.getSessionVolumeMax() > 0 && !worker.hasAdjustVolumeUserRestriction()) {
- listBuilder.addInputRange(getGroupSliderRow());
- } else {
- listBuilder.addRow(getGroupRow());
- }
- // Add all other devices
- for (MediaDevice device : devices) {
- addRow(device, null /* connectedDevice */, listBuilder);
- }
- } else {
- final MediaDevice connectedDevice = worker.getCurrentConnectedMediaDevice();
- if (devices.size() == 1) {
- // Zero state
- final MediaDevice device = devices.iterator().next();
- addRow(device, device, listBuilder);
- // Add "pair new" only when local output device exists
- final int type = device.getDeviceType();
- if (type == MediaDevice.MediaDeviceType.TYPE_PHONE_DEVICE
- || type == MediaDevice.MediaDeviceType.TYPE_3POINT5_MM_AUDIO_DEVICE
- || type == MediaDevice.MediaDeviceType.TYPE_USB_C_AUDIO_DEVICE) {
- listBuilder.addRow(getPairNewRow());
- }
- } else {
- final boolean isTouched = worker.getIsTouched();
- // Fix the last top device when user press device to transfer.
- final MediaDevice topDevice = isTouched ? worker.getTopDevice() : connectedDevice;
-
- if (topDevice != null) {
- addRow(topDevice, connectedDevice, listBuilder);
- worker.setTopDevice(topDevice);
- }
-
- for (MediaDevice device : devices) {
- if (topDevice == null || !TextUtils.equals(topDevice.getId(), device.getId())) {
- addRow(device, connectedDevice, listBuilder);
- }
- }
- }
- }
- return listBuilder.build();
- }
-
- private ListBuilder.RowBuilder getPairNewRow() {
- final Drawable d = mContext.getDrawable(R.drawable.ic_add_24dp);
- d.setColorFilter(new PorterDuffColorFilter(Utils.getColorAccentDefaultColor(mContext),
- PorterDuff.Mode.SRC_IN));
- final IconCompat icon = Utils.createIconWithDrawable(d);
- final String title = mContext.getString(R.string.bluetooth_pairing_pref_title);
- final Intent intent = new SubSettingLauncher(mContext)
- .setDestination(BluetoothPairingDetail.class.getName())
- .setTitleRes(R.string.bluetooth_pairing_page_title)
- .setSourceMetricsCategory(SettingsEnums.PANEL_MEDIA_OUTPUT)
- .toIntent();
- final SliceAction primarySliceAction = SliceAction.createDeeplink(
- PendingIntent.getActivity(mContext, 0 /* requestCode */, intent,
- PendingIntent.FLAG_IMMUTABLE),
- IconCompat.createWithResource(mContext, R.drawable.ic_add_24dp/*ic_add_blue_24dp*/),
- ListBuilder.ICON_IMAGE,
- mContext.getText(R.string.bluetooth_pairing_pref_title));
- final ListBuilder.RowBuilder builder = new ListBuilder.RowBuilder()
- .setTitleItem(icon, ListBuilder.ICON_IMAGE)
- .setTitle(title)
- .setPrimaryAction(primarySliceAction);
- return builder;
- }
-
- private ListBuilder.InputRangeBuilder getGroupSliderRow() {
- final IconCompat icon = IconCompat.createWithResource(mContext,
- R.drawable.ic_speaker_group_black_24dp);
- final CharSequence sessionName = getWorker().getSessionName();
- final CharSequence title = TextUtils.isEmpty(sessionName)
- ? mContext.getString(R.string.media_output_group) : sessionName;
- final PendingIntent broadcastAction =
- getBroadcastIntent(mContext, MEDIA_GROUP_DEVICE, MEDIA_GROUP_DEVICE.hashCode());
- final SliceAction primarySliceAction = SliceAction.createDeeplink(broadcastAction, icon,
- ListBuilder.ICON_IMAGE, title);
- final ListBuilder.InputRangeBuilder builder = new ListBuilder.InputRangeBuilder()
- .setTitleItem(icon, ListBuilder.ICON_IMAGE)
- .setTitle(title)
- .setPrimaryAction(primarySliceAction)
- .setInputAction(getSliderInputAction(MEDIA_GROUP_DEVICE.hashCode(),
- MEDIA_GROUP_DEVICE))
- .setMax(getWorker().getSessionVolumeMax())
- .setValue(getWorker().getSessionVolume())
- .addEndItem(getEndItemSliceAction());
- return builder;
- }
-
- private ListBuilder.RowBuilder getGroupRow() {
- final IconCompat icon = IconCompat.createWithResource(mContext,
- R.drawable.ic_speaker_group_black_24dp);
- final CharSequence sessionName = getWorker().getSessionName();
- final CharSequence title = TextUtils.isEmpty(sessionName)
- ? mContext.getString(R.string.media_output_group) : sessionName;
- final PendingIntent broadcastAction =
- getBroadcastIntent(mContext, MEDIA_GROUP_DEVICE, MEDIA_GROUP_DEVICE.hashCode());
- final SliceAction primarySliceAction = SliceAction.createDeeplink(broadcastAction, icon,
- ListBuilder.ICON_IMAGE, title);
- final ListBuilder.RowBuilder builder = new ListBuilder.RowBuilder()
- .setTitleItem(icon, ListBuilder.ICON_IMAGE)
- .setTitle(title)
- .setPrimaryAction(primarySliceAction)
- .addEndItem(getEndItemSliceAction());
- return builder;
- }
-
- private void addRow(MediaDevice device, MediaDevice connectedDevice, ListBuilder listBuilder) {
- if (connectedDevice != null && TextUtils.equals(device.getId(), connectedDevice.getId())) {
- final String title = device.getName();
- final IconCompat icon = getDeviceIconCompat(device);
-
- final PendingIntent broadcastAction =
- getBroadcastIntent(mContext, device.getId(), device.hashCode());
- final SliceAction primarySliceAction = SliceAction.createDeeplink(broadcastAction, icon,
- ListBuilder.ICON_IMAGE, title);
-
- if (device.getMaxVolume() > 0 && !getWorker().hasAdjustVolumeUserRestriction()) {
- final ListBuilder.InputRangeBuilder builder = new ListBuilder.InputRangeBuilder()
- .setTitleItem(icon, ListBuilder.ICON_IMAGE)
- .setTitle(title)
- .setPrimaryAction(primarySliceAction)
- .setInputAction(getSliderInputAction(device.hashCode(), device.getId()))
- .setMax(device.getMaxVolume())
- .setValue(device.getCurrentVolume());
- // Check end item visibility
- if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE
- && !getWorker().getSelectableMediaDevice().isEmpty()) {
- builder.addEndItem(getEndItemSliceAction());
- }
- listBuilder.addInputRange(builder);
- } else {
- Log.d(TAG, "addRow device = " + device.getName() + " MaxVolume = "
- + device.getMaxVolume());
- final ListBuilder.RowBuilder builder = getMediaDeviceRow(device);
- // Check end item visibility
- if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE
- && !getWorker().getSelectableMediaDevice().isEmpty()) {
- builder.addEndItem(getEndItemSliceAction());
- }
- listBuilder.addRow(builder);
- }
- } else {
- if (device.getState() == LocalMediaManager.MediaDeviceState.STATE_CONNECTING) {
- listBuilder.addRange(getTransferringMediaDeviceRow(device));
- } else {
- listBuilder.addRow(getMediaDeviceRow(device));
- }
- }
- }
-
- private PendingIntent getSliderInputAction(int requestCode, String id) {
- final Intent intent = new Intent(getUri().toString())
- .setData(getUri())
- .putExtra(MEDIA_DEVICE_ID, id)
- .setClass(mContext, SliceBroadcastReceiver.class);
-
- return PendingIntent.getBroadcast(mContext, requestCode, intent,
- PendingIntent.FLAG_IMMUTABLE);
- }
-
- private SliceAction getEndItemSliceAction() {
- final Intent intent = new Intent()
- .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT_GROUP)
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
- .putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME,
- getWorker().getPackageName());
- final int requestCode = TextUtils.isEmpty(getWorker().getPackageName())
- ? 0
- : getWorker().getPackageName().hashCode();
- return SliceAction.createDeeplink(
- PendingIntent.getActivity(mContext, requestCode, intent,
- PendingIntent.FLAG_IMMUTABLE),
- IconCompat.createWithResource(mContext, R.drawable.ic_add_blue_24dp),
- ListBuilder.ICON_IMAGE,
- mContext.getText(R.string.add));
- }
-
- private IconCompat getDeviceIconCompat(MediaDevice device) {
- Drawable drawable = device.getIcon();
- if (drawable == null) {
- Log.d(TAG, "getDeviceIconCompat() device : " + device.getName() + ", drawable is null");
- // Use default Bluetooth device icon to handle getIcon() is null case.
- drawable = mContext.getDrawable(com.android.internal.R.drawable.ic_bt_headphones_a2dp);
- }
-
- return Utils.createIconWithDrawable(drawable);
- }
-
- private MediaDeviceUpdateWorker getWorker() {
- if (mWorker == null) {
- mWorker = SliceBackgroundWorker.getInstance(getUri());
- }
- return mWorker;
- }
-
- private Collection<MediaDevice> getMediaDevices() {
- final Collection<MediaDevice> devices = getWorker().getMediaDevices();
- return devices;
- }
-
- private ListBuilder.RangeBuilder getTransferringMediaDeviceRow(MediaDevice device) {
- final IconCompat deviceIcon = getDeviceIconCompat(device);
- final SliceAction sliceAction = SliceAction.create(getBroadcastIntent(mContext,
- device.getId(), device.hashCode()), deviceIcon, ListBuilder.ICON_IMAGE,
- mContext.getText(R.string.media_output_switching));
-
- return new ListBuilder.RangeBuilder()
- .setTitleItem(deviceIcon, ListBuilder.ICON_IMAGE)
- .setMode(ListBuilder.RANGE_MODE_INDETERMINATE)
- .setTitle(device.getName())
- .setPrimaryAction(sliceAction);
- }
-
- private ListBuilder.RowBuilder getMediaDeviceRow(MediaDevice device) {
- final String deviceName = device.getName();
- final PendingIntent broadcastAction =
- getBroadcastIntent(mContext, device.getId(), device.hashCode());
- final IconCompat deviceIcon = getDeviceIconCompat(device);
- final ListBuilder.RowBuilder rowBuilder = new ListBuilder.RowBuilder()
- .setTitleItem(deviceIcon, ListBuilder.ICON_IMAGE);
-
- if (device.getDeviceType() == MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE
- && !device.isConnected()) {
- final int state = device.getState();
- if (state == LocalMediaManager.MediaDeviceState.STATE_CONNECTING_FAILED) {
- rowBuilder.setTitle(deviceName);
- rowBuilder.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
- ListBuilder.ICON_IMAGE, deviceName));
- rowBuilder.setSubtitle(mContext.getText(R.string.bluetooth_connect_failed));
- } else {
- // Append status to title only for the disconnected Bluetooth device.
- final SpannableString spannableTitle = new SpannableString(
- mContext.getString(R.string.media_output_disconnected_status, deviceName));
- spannableTitle.setSpan(new ForegroundColorSpan(
- Utils.getColorAttrDefaultColor(mContext,
- android.R.attr.textColorSecondary)),
- deviceName.length(),
- spannableTitle.length(), SPAN_EXCLUSIVE_EXCLUSIVE);
- rowBuilder.setTitle(spannableTitle);
- rowBuilder.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
- ListBuilder.ICON_IMAGE, spannableTitle));
- }
- } else {
- rowBuilder.setTitle(deviceName);
- rowBuilder.setPrimaryAction(SliceAction.create(broadcastAction, deviceIcon,
- ListBuilder.ICON_IMAGE, deviceName));
- if (device.getState() == LocalMediaManager.MediaDeviceState.STATE_CONNECTING_FAILED) {
- rowBuilder.setSubtitle(mContext.getText(R.string.media_output_switch_error_text));
- }
- }
-
- return rowBuilder;
- }
-
- private PendingIntent getBroadcastIntent(Context context, String id, int requestCode) {
- final Intent intent = new Intent(getUri().toString());
- intent.setClass(context, SliceBroadcastReceiver.class);
- intent.putExtra(MEDIA_DEVICE_ID, id);
- intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
- return PendingIntent.getBroadcast(context, requestCode, intent,
- PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
- }
-
- @Override
- public Uri getUri() {
- return MEDIA_OUTPUT_SLICE_URI;
- }
-
- @Override
- public void onNotifyChange(Intent intent) {
- final MediaDeviceUpdateWorker worker = getWorker();
- final String id = intent != null ? intent.getStringExtra(MEDIA_DEVICE_ID) : "";
- if (TextUtils.isEmpty(id)) {
- return;
- }
-
- final int newPosition = intent.getIntExtra(EXTRA_RANGE_VALUE, NON_SLIDER_VALUE);
- if (TextUtils.equals(id, MEDIA_GROUP_DEVICE)) {
- // Session volume adjustment
- worker.adjustSessionVolume(newPosition);
- } else {
- final MediaDevice device = worker.getMediaDeviceById(id);
- if (device == null) {
- Log.d(TAG, "onNotifyChange: Unable to get device " + id);
- return;
- }
-
- if (newPosition == NON_SLIDER_VALUE) {
- // Intent for device connection
- Log.d(TAG, "onNotifyChange: Switch to " + device.getName());
- worker.setIsTouched(true);
- worker.connectDevice(device);
- } else {
- // Single device volume adjustment
- worker.adjustVolume(device, newPosition);
- }
- }
- }
-
- @Override
- public Intent getIntent() {
- return null;
- }
-
- @Override
- public Class getBackgroundWorkerClass() {
- return MediaDeviceUpdateWorker.class;
- }
-
- private boolean isVisible() {
- // To decide Slice's visibility.
- // Return true if
- // 1. AudioMode is not in on-going call
- // 2. worker is not null
- // 3. Available devices are more than 0
- return getWorker() != null
- && !com.android.settingslib.Utils.isAudioModeOngoingCall(mContext)
- && getWorker().getMediaDevices().size() > 0;
- }
-}
diff --git a/src/com/android/settings/network/EraseEuiccDataController.java b/src/com/android/settings/network/EraseEuiccDataController.java
new file mode 100644
index 0000000..d221fbd
--- /dev/null
+++ b/src/com/android/settings/network/EraseEuiccDataController.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network;
+
+import android.content.Context;
+import android.text.TextUtils;
+
+import androidx.preference.Preference;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.system.ResetDashboardFragment;
+
+/**
+ * Controller for erasing Euicc data
+ */
+public class EraseEuiccDataController extends BasePreferenceController implements
+ PreferenceControllerMixin {
+ private ResetDashboardFragment mHostFragment;
+
+ public EraseEuiccDataController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ public void setFragment(ResetDashboardFragment hostFragment) {
+ mHostFragment = hostFragment;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ return false;
+ }
+ EraseEuiccDataDialogFragment.show(mHostFragment);
+ return true;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE_UNSEARCHABLE;
+ }
+}
diff --git a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
new file mode 100644
index 0000000..3aee9b1
--- /dev/null
+++ b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.app.settings.SettingsEnums;
+import android.content.DialogInterface;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.RecoverySystem;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.system.ResetDashboardFragment;
+
+public class EraseEuiccDataDialogFragment extends InstrumentedDialogFragment implements
+ DialogInterface.OnClickListener {
+
+ public static final String TAG = "EraseEuiccDataDlg";
+ private static final String PACKAGE_NAME_EUICC_DATA_MANAGEMENT_CALLBACK =
+ "com.android.settings.network";
+
+ public static void show(ResetDashboardFragment host) {
+ final EraseEuiccDataDialogFragment dialog = new EraseEuiccDataDialogFragment();
+ dialog.setTargetFragment(host, 0 /* requestCode */);
+ final FragmentManager manager = host.getActivity().getSupportFragmentManager();
+ dialog.show(manager, TAG);
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.RESET_EUICC;
+ }
+
+ @NonNull
+ @Override
+ public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
+ return new AlertDialog.Builder(getActivity())
+ .setTitle(R.string.reset_esim_title)
+ .setMessage(R.string.reset_esim_desc)
+ .setPositiveButton(R.string.erase_euicc_data_button, this)
+ .setNegativeButton(R.string.cancel, null)
+ .setOnDismissListener(this)
+ .create();
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ Fragment fragment = getTargetFragment();
+ if (!(fragment instanceof ResetDashboardFragment)) {
+ Log.e(TAG, "getTargetFragment return unexpected type");
+ }
+
+ if (which == DialogInterface.BUTTON_POSITIVE) {
+ AsyncTask.execute(new Runnable() {
+ @Override
+ public void run() {
+ RecoverySystem.wipeEuiccData(
+ getContext(), PACKAGE_NAME_EUICC_DATA_MANAGEMENT_CALLBACK);
+ }
+ });
+ }
+ }
+}
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index e56db27..7ce98e8 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -21,6 +21,7 @@
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.os.Bundle;
+import android.provider.SearchIndexableResource;
import android.util.Log;
import androidx.appcompat.app.AlertDialog;
@@ -38,6 +39,7 @@
import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
@SearchIndexable
@@ -186,6 +188,18 @@
new BaseSearchIndexProvider(R.xml.network_and_internet) {
@Override
+ // TODO(b/167474581): Should remove this method when Provider Model finished.
+ public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ if (Utils.isProviderModelEnabled(context)) {
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = R.xml.network_provider_internet;
+ return Arrays.asList(sir);
+ }
+ return super.getXmlResourcesToIndex(context, enabled);
+ }
+
+ @Override
public List<AbstractPreferenceController> createPreferenceControllers(Context
context) {
return buildPreferenceControllers(context, null /* lifecycle */,
diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsController.java b/src/com/android/settings/network/NetworkProviderCallsSmsController.java
index f7d9221..3a228dc 100644
--- a/src/com/android/settings/network/NetworkProviderCallsSmsController.java
+++ b/src/com/android/settings/network/NetworkProviderCallsSmsController.java
@@ -22,7 +22,6 @@
import android.os.UserManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
-import android.util.Log;
import androidx.annotation.VisibleForTesting;
import androidx.lifecycle.LifecycleObserver;
@@ -42,10 +41,6 @@
private static final String TAG = "NetworkProviderCallsSmsController";
private static final String KEY = "calls_and_sms";
- private static final String PREFERRED_CALL_SMS = "preferred";
- private static final String PREFERRED_CALL = "calls preferred";
- private static final String PREFERRED_SMS = "SMS preferred";
- private static final String UNAVAILABLE = "unavailable";
private UserManager mUserManager;
private SubscriptionManager mSubscriptionManager;
@@ -91,7 +86,7 @@
mSubscriptionManager);
if (subs.isEmpty()) {
- return null;
+ return setSummaryResId(R.string.calls_sms_no_sim);
} else {
final StringBuilder summary = new StringBuilder();
for (SubscriptionInfo subInfo : subs) {
@@ -131,19 +126,23 @@
boolean isSmsPreferred = subId == getDefaultSmsSubscriptionId();
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
- status = UNAVAILABLE;
+ status = setSummaryResId(R.string.calls_sms_unavailable);
} else {
if (isDataPreferred && isSmsPreferred) {
- status = PREFERRED_CALL_SMS;
+ status = setSummaryResId(R.string.calls_sms_preferred);
} else if (isDataPreferred) {
- status = PREFERRED_CALL;
+ status = setSummaryResId(R.string.calls_sms_calls_preferred);
} else if (isSmsPreferred) {
- status = PREFERRED_SMS;
+ status = setSummaryResId(R.string.calls_sms_sms_preferred);
}
}
return status;
}
+ private String setSummaryResId(int resId) {
+ return mContext.getResources().getString(resId);
+ }
+
@VisibleForTesting
protected int getDefaultVoiceSubscriptionId(){
return SubscriptionManager.getDefaultVoiceSubscriptionId();
@@ -167,6 +166,7 @@
if (subs.isEmpty()) {
mPreference.setEnabled(false);
} else {
+ mPreference.setEnabled(true);
mPreference.setFragment(NetworkProviderCallsSmsFragment.class.getCanonicalName());
}
}
diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java
index 864078c..f4ffd09 100644
--- a/src/com/android/settings/network/SubscriptionsPreferenceController.java
+++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java
@@ -165,7 +165,7 @@
// Avoid from showing subscription(SIM)s which has been marked as hidden
// For example, only one subscription will be shown when there're multiple
// subscriptions with same group UUID.
- if (!isSubscriptionCanBeDisplayed(mContext, subId)) {
+ if (!canSubscriptionBeDisplayed(mContext, subId)) {
continue;
}
activeSubIds.add(subId);
@@ -290,7 +290,7 @@
// For example, only one subscription will be shown when there're multiple
// subscriptions with same group UUID.
.filter(subInfo ->
- isSubscriptionCanBeDisplayed(mContext, subInfo.getSubscriptionId()))
+ canSubscriptionBeDisplayed(mContext, subInfo.getSubscriptionId()))
.count() >= (Utils.isProviderModelEnabled(mContext) ? 1 : 2);
}
@@ -331,7 +331,7 @@
}
@VisibleForTesting
- boolean isSubscriptionCanBeDisplayed(Context context, int subId) {
+ boolean canSubscriptionBeDisplayed(Context context, int subId) {
return (SubscriptionUtil.getAvailableSubscription(context,
ProxySubscriptionManager.getInstance(context), subId) != null);
}
diff --git a/src/com/android/settings/network/apn/ApnEditor.java b/src/com/android/settings/network/apn/ApnEditor.java
index b2b35dc..afc68d5 100644
--- a/src/com/android/settings/network/apn/ApnEditor.java
+++ b/src/com/android/settings/network/apn/ApnEditor.java
@@ -805,16 +805,15 @@
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
- if (mReadOnlyApn) {
- return;
- }
// If it's a new APN, then cancel will delete the new entry in onPause
- if (!mNewApn) {
+ if (!mNewApn && !mReadOnlyApn) {
menu.add(0, MENU_DELETE, 0, R.string.menu_delete)
.setIcon(R.drawable.ic_delete);
}
- menu.add(0, MENU_SAVE, 0, R.string.menu_save)
- .setIcon(android.R.drawable.ic_menu_save);
+ if (!mReadOnlyApn) {
+ menu.add(0, MENU_SAVE, 0, R.string.menu_save)
+ .setIcon(android.R.drawable.ic_menu_save);
+ }
menu.add(0, MENU_CANCEL, 0, R.string.menu_cancel)
.setIcon(android.R.drawable.ic_menu_close_clear_cancel);
}
diff --git a/src/com/android/settings/network/telephony/DeleteEuiccSubscriptionDialogActivity.java b/src/com/android/settings/network/telephony/DeleteEuiccSubscriptionDialogActivity.java
index 6186de3..8257bf3 100644
--- a/src/com/android/settings/network/telephony/DeleteEuiccSubscriptionDialogActivity.java
+++ b/src/com/android/settings/network/telephony/DeleteEuiccSubscriptionDialogActivity.java
@@ -54,7 +54,6 @@
private DeleteEuiccSubscriptionSidecar mDeleteEuiccSubscriptionSidecar;
private List<SubscriptionInfo> mSubscriptionsToBeDeleted;
private SubscriptionInfo mSubscriptionToBeDeleted;
- private AlertDialog mDeleteSimConfirmDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -65,14 +64,14 @@
mSubscriptionToBeDeleted = SubscriptionUtil.getSubById(mSubscriptionManager, subId);
mSubscriptionsToBeDeleted =
SubscriptionUtil.findAllSubscriptionsInGroup(mSubscriptionManager, subId);
- mDeleteEuiccSubscriptionSidecar = DeleteEuiccSubscriptionSidecar.get(getFragmentManager());
- if (mSubscriptionToBeDeleted == null || mDeleteEuiccSubscriptionSidecar == null) {
+ if (mSubscriptionToBeDeleted == null || mSubscriptionsToBeDeleted.isEmpty()) {
Log.e(TAG, "Cannot find subscription with sub ID: " + subId);
finish();
return;
}
+ mDeleteEuiccSubscriptionSidecar = DeleteEuiccSubscriptionSidecar.get(getFragmentManager());
if (savedInstanceState == null) {
showDeleteSimConfirmDialog();
}
diff --git a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
index ba12146..348c9c8 100644
--- a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
+++ b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java
@@ -185,6 +185,7 @@
return this;
}
+ @VisibleForTesting
protected int getMode() {
return MODE_NONE;
}
@@ -194,12 +195,12 @@
}
@VisibleForTesting
- VolteQueryImsState queryImsState(int subId) {
+ protected VolteQueryImsState queryImsState(int subId) {
return new VolteQueryImsState(mContext, subId);
}
@VisibleForTesting
- boolean isCallStateIdle() {
+ protected boolean isCallStateIdle() {
return (mCallState != null) && (mCallState == TelephonyManager.CALL_STATE_IDLE);
}
diff --git a/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelper.java b/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelper.java
index d2eab3e..158becc 100644
--- a/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelper.java
+++ b/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelper.java
@@ -270,7 +270,7 @@
final Intent intent = new Intent(action);
intent.setClass(mContext, SliceBroadcastReceiver.class);
return PendingIntent.getBroadcast(mContext, 0 /* requestCode */, intent,
- PendingIntent.FLAG_CANCEL_CURRENT);
+ PendingIntent.FLAG_CANCEL_CURRENT | PendingIntent.FLAG_IMMUTABLE);
}
/**
@@ -287,7 +287,8 @@
final Intent intent = new Intent(action);
intent.setPackage(SETTINGS_PACKAGE_NAME);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */);
+ return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent,
+ PendingIntent.FLAG_IMMUTABLE);
}
@VisibleForTesting
diff --git a/src/com/android/settings/network/telephony/EuiccOperationSidecar.java b/src/com/android/settings/network/telephony/EuiccOperationSidecar.java
index 3bda9c5..c82220e 100644
--- a/src/com/android/settings/network/telephony/EuiccOperationSidecar.java
+++ b/src/com/android/settings/network/telephony/EuiccOperationSidecar.java
@@ -105,7 +105,7 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- mEuiccManager = (EuiccManager) getContext().getSystemService(Context.EUICC_SERVICE);
+ mEuiccManager = getContext().getSystemService(EuiccManager.class);
getContext()
.getApplicationContext()
diff --git a/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java b/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
index 5a6ff7e..06c74bc 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryRecyclerView.java
@@ -1,9 +1,14 @@
package com.android.settings.notification.history;
+import static android.view.HapticFeedbackConstants.CLOCK_TICK;
+
import android.annotation.Nullable;
import android.content.Context;
+import android.graphics.Canvas;
import android.util.AttributeSet;
+import android.view.View;
+import androidx.annotation.NonNull;
import androidx.recyclerview.widget.DividerItemDecoration;
import androidx.recyclerview.widget.ItemTouchHelper;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -15,6 +20,9 @@
private OnItemSwipeDeleteListener listener;
+ /** The amount of horizontal displacement caused by user's action, used to track the swiping. */
+ private float dXLast;
+
public NotificationHistoryRecyclerView(Context context) {
this(context, null);
}
@@ -57,6 +65,27 @@
listener.onItemSwipeDeleted(viewHolder.getAdapterPosition());
}
}
+
+ /** Performs haptic effect once the swiping goes past a certain location. */
+ @Override
+ public void onChildDraw(@NonNull Canvas c, @NonNull RecyclerView recyclerView,
+ @NonNull ViewHolder viewHolder, float dX, float dY, int actionState,
+ boolean isCurrentlyActive) {
+ super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
+ if (isCurrentlyActive) {
+ View view = viewHolder.itemView;
+ float swipeThreshold = getSwipeThreshold(viewHolder);
+ float snapOffset = swipeThreshold * view.getWidth();
+ boolean snapIntoNewLocation = dX < -snapOffset || dX > snapOffset;
+ boolean snapIntoNewLocationLast = dXLast < -snapOffset || dXLast > snapOffset;
+ if (snapIntoNewLocation != snapIntoNewLocationLast) {
+ view.performHapticFeedback(CLOCK_TICK);
+ }
+ dXLast = dX;
+ } else {
+ dXLast = 0;
+ }
+ }
}
public interface OnItemSwipeDeleteListener {
diff --git a/src/com/android/settings/panel/MediaOutputGroupPanel.java b/src/com/android/settings/panel/MediaOutputGroupPanel.java
deleted file mode 100644
index 36f779b..0000000
--- a/src/com/android/settings/panel/MediaOutputGroupPanel.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.panel;
-
-import static androidx.lifecycle.Lifecycle.Event.ON_START;
-import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
-
-import static com.android.settings.media.MediaOutputSlice.MEDIA_PACKAGE_NAME;
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_GROUP_SLICE_URI;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Color;
-import android.net.Uri;
-
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-
-import com.android.settings.R;
-import com.android.settingslib.media.LocalMediaManager;
-import com.android.settingslib.media.MediaDevice;
-import com.android.settingslib.media.MediaOutputSliceConstants;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents the Media output group Panel.
- *
- * <p>
- * Displays Media output group item
- * </p>
- */
-public class MediaOutputGroupPanel implements PanelContent, LocalMediaManager.DeviceCallback,
- LifecycleObserver {
-
- private final Context mContext;
- private final String mPackageName;
-
- private PanelContentCallback mCallback;
- private LocalMediaManager mLocalMediaManager;
-
- /**
- * To generate a Media output group Panel instance.
- *
- * @param context the context of the caller.
- * @param packageName media application package name.
- * @return MediaOutputGroupPanel instance.
- */
- public static MediaOutputGroupPanel create(Context context, String packageName) {
- return new MediaOutputGroupPanel(context, packageName);
- }
-
- private MediaOutputGroupPanel(Context context, String packageName) {
- mContext = context.getApplicationContext();
- mPackageName = packageName;
- }
-
- @Override
- public CharSequence getTitle() {
- return mContext.getText(R.string.media_output_group_panel_title);
- }
-
- @Override
- public CharSequence getSubTitle() {
- final int size = mLocalMediaManager.getSelectedMediaDevice().size();
- if (size == 1) {
- return mContext.getText(R.string.media_output_group_panel_single_device_summary);
- }
- return mContext.getString(R.string.media_output_group_panel_multiple_devices_summary, size);
- }
-
- @Override
- public IconCompat getIcon() {
- return IconCompat.createWithResource(mContext, R.drawable.ic_arrow_back).setTint(
- Color.BLACK);
- }
-
- @Override
- public List<Uri> getSlices() {
- final List<Uri> uris = new ArrayList<>();
- MEDIA_OUTPUT_GROUP_SLICE_URI =
- MEDIA_OUTPUT_GROUP_SLICE_URI
- .buildUpon()
- .clearQuery()
- .appendQueryParameter(MEDIA_PACKAGE_NAME, mPackageName)
- .build();
- uris.add(MEDIA_OUTPUT_GROUP_SLICE_URI);
- return uris;
- }
-
- @Override
- public Intent getSeeMoreIntent() {
- return null;
- }
-
- @Override
- public Intent getHeaderIconIntent() {
- final Intent intent = new Intent()
- .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT)
- .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
- .putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME, mPackageName);
- return intent;
- }
-
- @Override
- public void registerCallback(PanelContentCallback callback) {
- mCallback = callback;
- }
-
- /**
- * Lifecycle callback to initial {@link LocalMediaManager}
- */
- @OnLifecycleEvent(ON_START)
- public void onStart() {
- if (mLocalMediaManager == null) {
- mLocalMediaManager = new LocalMediaManager(mContext, mPackageName, null);
- }
- mLocalMediaManager.registerCallback(this);
- mLocalMediaManager.startScan();
- }
-
- /**
- * Lifecycle callback to de-initial {@link LocalMediaManager}
- */
- @OnLifecycleEvent(ON_STOP)
- public void onStop() {
- mLocalMediaManager.unregisterCallback(this);
- mLocalMediaManager.stopScan();
- }
-
- @Override
- public void onDeviceListUpdate(List<MediaDevice> devices) {
- if (mCallback != null) {
- mCallback.onHeaderChanged();
- }
- }
-
- @Override
- public int getMetricsCategory() {
- return SettingsEnums.PANEL_MEDIA_OUTPUT_GROUP;
- }
-
- @Override
- public int getViewType() {
- return PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON;
- }
-}
diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java
deleted file mode 100644
index c3846c2..0000000
--- a/src/com/android/settings/panel/MediaOutputPanel.java
+++ /dev/null
@@ -1,256 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.panel;
-
-import static androidx.lifecycle.Lifecycle.Event.ON_START;
-import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
-
-import static com.android.settings.media.MediaOutputSlice.MEDIA_PACKAGE_NAME;
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.Bitmap;
-import android.media.MediaMetadata;
-import android.media.session.MediaController;
-import android.media.session.MediaSessionManager;
-import android.media.session.PlaybackState;
-import android.net.Uri;
-import android.text.TextUtils;
-import android.util.Log;
-
-import androidx.core.graphics.drawable.IconCompat;
-import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
-
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settingslib.media.InfoMediaDevice;
-import com.android.settingslib.media.LocalMediaManager;
-import com.android.settingslib.media.MediaDevice;
-import com.android.settingslib.media.MediaOutputSliceConstants;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Represents the Media output Panel.
- *
- * <p>
- * Displays Media output item
- * </p>
- */
-public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceCallback,
- LifecycleObserver {
-
- private static final String TAG = "MediaOutputPanel";
-
- private final Context mContext;
- private final String mPackageName;
-
- @VisibleForTesting
- LocalMediaManager mLocalMediaManager;
-
- private PanelContentCallback mCallback;
- private boolean mIsCustomizedButtonUsed = true;
- private MediaSessionManager mMediaSessionManager;
- private MediaController mMediaController;
-
- public static MediaOutputPanel create(Context context, String packageName) {
- // Redirect to new media output dialog
- context.sendBroadcast(new Intent()
- .addFlags(Intent.FLAG_RECEIVER_FOREGROUND)
- .setPackage(MediaOutputSliceConstants.SYSTEMUI_PACKAGE_NAME)
- .setAction(MediaOutputSliceConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG)
- .putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME, packageName));
- return null;
- }
-
- private MediaOutputPanel(Context context, String packageName) {
- mContext = context.getApplicationContext();
- mPackageName = TextUtils.isEmpty(packageName) ? "" : packageName;
- }
-
- @Override
- public CharSequence getTitle() {
- if (mMediaController != null) {
- final MediaMetadata metadata = mMediaController.getMetadata();
- if (metadata != null) {
- return metadata.getDescription().getTitle();
- }
- }
- return mContext.getText(R.string.media_volume_title);
- }
-
- @Override
- public CharSequence getSubTitle() {
- if (mMediaController != null) {
- final MediaMetadata metadata = mMediaController.getMetadata();
- if (metadata != null) {
- return metadata.getDescription().getSubtitle();
- }
- }
- return mContext.getText(R.string.media_output_panel_title);
- }
-
- @Override
- public IconCompat getIcon() {
- if (mMediaController == null) {
- return null;
- }
- final MediaMetadata metadata = mMediaController.getMetadata();
- if (metadata != null) {
- final Bitmap bitmap = metadata.getDescription().getIconBitmap();
- if (bitmap != null) {
- final Bitmap roundBitmap = Utils.convertCornerRadiusBitmap(mContext, bitmap,
- (float) mContext.getResources().getDimensionPixelSize(
- R.dimen.output_switcher_panel_icon_corner_radius));
-
- return IconCompat.createWithBitmap(roundBitmap);
- }
- }
- Log.d(TAG, "Media meta data does not contain icon information");
- return null;
- }
-
- @Override
- public List<Uri> getSlices() {
- final List<Uri> uris = new ArrayList<>();
- MEDIA_OUTPUT_SLICE_URI =
- MEDIA_OUTPUT_SLICE_URI
- .buildUpon()
- .clearQuery()
- .appendQueryParameter(MEDIA_PACKAGE_NAME, mPackageName)
- .build();
- uris.add(MEDIA_OUTPUT_SLICE_URI);
- return uris;
- }
-
- @Override
- public Intent getSeeMoreIntent() {
- return null;
- }
-
- @Override
- public boolean isCustomizedButtonUsed() {
- return mIsCustomizedButtonUsed;
- }
-
- @Override
- public CharSequence getCustomizedButtonTitle() {
- return mContext.getText(R.string.service_stop);
- }
-
- @Override
- public void onClickCustomizedButton() {
- mLocalMediaManager.releaseSession();
- }
-
- @Override
- public void registerCallback(PanelContentCallback callback) {
- mCallback = callback;
- }
-
- @Override
- public int getMetricsCategory() {
- return SettingsEnums.PANEL_MEDIA_OUTPUT;
- }
-
- @Override
- public void onSelectedDeviceStateChanged(MediaDevice device, int state) {
- dispatchCustomButtonStateChanged();
- }
-
- @Override
- public void onDeviceListUpdate(List<MediaDevice> devices) {
- dispatchCustomButtonStateChanged();
- }
-
- @Override
- public void onDeviceAttributesChanged() {
- dispatchCustomButtonStateChanged();
- }
-
- private void dispatchCustomButtonStateChanged() {
- hideCustomButtonIfNecessary();
- if (mCallback != null) {
- mCallback.onCustomizedButtonStateChanged();
- }
- }
-
- private void hideCustomButtonIfNecessary() {
- final MediaDevice device = mLocalMediaManager.getCurrentConnectedDevice();
- mIsCustomizedButtonUsed = device instanceof InfoMediaDevice;
- }
-
- @OnLifecycleEvent(ON_START)
- public void onStart() {
- if (!TextUtils.isEmpty(mPackageName)) {
- mMediaSessionManager = mContext.getSystemService(MediaSessionManager.class);
- for (MediaController controller : mMediaSessionManager.getActiveSessions(null)) {
- if (TextUtils.equals(controller.getPackageName(), mPackageName)) {
- mMediaController = controller;
- mMediaController.registerCallback(mCb);
- mCallback.onHeaderChanged();
- break;
- }
- }
- }
- if (mMediaController == null) {
- Log.d(TAG, "No media controller for " + mPackageName);
- }
- if (mLocalMediaManager == null) {
- mLocalMediaManager = new LocalMediaManager(mContext, mPackageName, null);
- }
- mLocalMediaManager.registerCallback(this);
- mLocalMediaManager.startScan();
- }
-
- @OnLifecycleEvent(ON_STOP)
- public void onStop() {
- if (mMediaController != null) {
- mMediaController.unregisterCallback(mCb);
- }
- mLocalMediaManager.unregisterCallback(this);
- mLocalMediaManager.stopScan();
- }
-
- @Override
- public int getViewType() {
- return PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON;
- }
-
- private final MediaController.Callback mCb = new MediaController.Callback() {
- @Override
- public void onMetadataChanged(MediaMetadata metadata) {
- if (mCallback != null) {
- mCallback.onHeaderChanged();
- }
- }
-
- @Override
- public void onPlaybackStateChanged(PlaybackState state) {
- final int playState = state.getState();
- if (mCallback != null && (playState == PlaybackState.STATE_STOPPED
- || playState == PlaybackState.STATE_PAUSED)) {
- mCallback.forceClose();
- }
- }
- };
-}
diff --git a/src/com/android/settings/panel/PanelContent.java b/src/com/android/settings/panel/PanelContent.java
index 9fa4316..6c271fd 100644
--- a/src/com/android/settings/panel/PanelContent.java
+++ b/src/com/android/settings/panel/PanelContent.java
@@ -31,7 +31,6 @@
public interface PanelContent extends Instrumentable {
int VIEW_TYPE_SLIDER = 1;
- int VIEW_TYPE_SLIDER_LARGE_ICON = 2;
/**
* @return a icon for the title of the Panel.
diff --git a/src/com/android/settings/panel/PanelFeatureProviderImpl.java b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
index 93c6025..ca30952 100644
--- a/src/com/android/settings/panel/PanelFeatureProviderImpl.java
+++ b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
@@ -16,9 +16,6 @@
package com.android.settings.panel;
-import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT;
-import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT_GROUP;
-
import android.content.Context;
import android.os.Bundle;
import android.provider.Settings;
@@ -39,16 +36,12 @@
switch (panelType) {
case Settings.Panel.ACTION_INTERNET_CONNECTIVITY:
return InternetConnectivityPanel.create(context);
- case ACTION_MEDIA_OUTPUT:
- return MediaOutputPanel.create(context, mediaPackageName);
case Settings.Panel.ACTION_NFC:
return NfcPanel.create(context);
case Settings.Panel.ACTION_WIFI:
return WifiPanel.create(context);
case Settings.Panel.ACTION_VOLUME:
return VolumePanel.create(context);
- case ACTION_MEDIA_OUTPUT_GROUP:
- return MediaOutputGroupPanel.create(context, mediaPackageName);
}
throw new IllegalStateException("No matching panel for: " + panelType);
diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java
index 133e0fc..cc27683 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -240,7 +240,7 @@
final IconCompat icon = mPanel.getIcon();
final CharSequence title = mPanel.getTitle();
- if (icon != null || mPanel.getViewType() == PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON) {
+ if (icon != null) {
enablePanelHeader(icon, title);
} else {
mTitleView.setVisibility(View.VISIBLE);
@@ -248,11 +248,7 @@
mTitleView.setText(title);
}
- if (mPanel.getViewType() == PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON) {
- mFooterDivider.setVisibility(View.VISIBLE);
- } else {
- mFooterDivider.setVisibility(View.GONE);
- }
+ mFooterDivider.setVisibility(View.GONE);
mSeeMoreButton.setOnClickListener(getSeeMoreListener());
mDoneButton.setOnClickListener(getCloseListener());
diff --git a/src/com/android/settings/panel/PanelSlicesAdapter.java b/src/com/android/settings/panel/PanelSlicesAdapter.java
index a055dbb..4c8698a 100644
--- a/src/com/android/settings/panel/PanelSlicesAdapter.java
+++ b/src/com/android/settings/panel/PanelSlicesAdapter.java
@@ -16,9 +16,7 @@
package com.android.settings.panel;
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_GROUP_SLICE_URI;
import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI;
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI;
import android.app.settings.SettingsEnums;
import android.content.Context;
@@ -75,8 +73,6 @@
View view;
if (viewType == PanelContent.VIEW_TYPE_SLIDER) {
view = inflater.inflate(R.layout.panel_slice_slider_row, viewGroup, false);
- } else if (viewType == PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON) {
- view = inflater.inflate(R.layout.panel_slice_slider_row_large_icon, viewGroup, false);
} else {
view = inflater.inflate(R.layout.panel_slice_row, viewGroup, false);
}
@@ -142,15 +138,6 @@
final Slice slice = sliceLiveData.getValue();
if (slice == null || slice.getUri().equals(MEDIA_OUTPUT_INDICATOR_SLICE_URI)) {
mDividerAllowedAbove = false;
- } else if (position == 0 && (slice.getUri().equals(MEDIA_OUTPUT_SLICE_URI)
- || slice.getUri().equals(MEDIA_OUTPUT_GROUP_SLICE_URI))) {
- sliceView.setClickable(false);
- // Customize output switcher slice padding
- final int padding = mPanelFragment.getResources().getDimensionPixelSize(
- R.dimen.output_switcher_slice_padding_top);
- mSliceSliderLayout.setPadding(mSliceSliderLayout.getPaddingLeft(), padding,
- mSliceSliderLayout.getPaddingRight(),
- padding);
}
// Log Panel interaction
@@ -175,7 +162,7 @@
@Override
public boolean isDividerAllowedBelow() {
- return mPanelFragment.getPanelViewType() != PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON;
+ return true;
}
}
}
diff --git a/src/com/android/settings/sim/SimDialogActivity.java b/src/com/android/settings/sim/SimDialogActivity.java
index 0ae294e..252b6c0 100644
--- a/src/com/android/settings/sim/SimDialogActivity.java
+++ b/src/com/android/settings/sim/SimDialogActivity.java
@@ -19,7 +19,6 @@
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
-import android.telecom.PhoneAccount;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
import android.telephony.SubscriptionManager;
@@ -54,6 +53,8 @@
public static final int PREFERRED_PICK = 3;
// Show the "select SMS subscription" dialog, but don't save as default, just return a result
public static final int SMS_PICK_FOR_MESSAGE = 4;
+ // Dismiss the current dialog and finish the activity.
+ public static final int PICK_DISMISS = 5;
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -70,6 +71,12 @@
private void showOrUpdateDialog() {
final int dialogType = getIntent().getIntExtra(DIALOG_TYPE_KEY, INVALID_PICK);
+
+ if (dialogType == PICK_DISMISS) {
+ finishAndRemoveTask();
+ return;
+ }
+
final String tag = Integer.toString(dialogType);
final FragmentManager fragmentManager = getSupportFragmentManager();
SimDialogFragment fragment = (SimDialogFragment) fragmentManager.findFragmentByTag(tag);
diff --git a/src/com/android/settings/sim/SimSelectNotification.java b/src/com/android/settings/sim/SimSelectNotification.java
index 6bd4c24..8d5a3e0 100644
--- a/src/com/android/settings/sim/SimSelectNotification.java
+++ b/src/com/android/settings/sim/SimSelectNotification.java
@@ -20,10 +20,10 @@
import static android.provider.Settings.ENABLE_MMS_DATA_REQUEST_REASON_OUTGOING_MMS;
import static android.provider.Settings.EXTRA_ENABLE_MMS_DATA_REQUEST_REASON;
import static android.provider.Settings.EXTRA_SUB_ID;
-import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE;
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_ALL;
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA;
+import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DISMISS;
import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_NONE;
import static android.telephony.TelephonyManager.EXTRA_SIM_COMBINATION_NAMES;
import static android.telephony.TelephonyManager.EXTRA_SIM_COMBINATION_WARNING_TYPE;
@@ -32,6 +32,9 @@
import static android.telephony.TelephonyManager.EXTRA_SUBSCRIPTION_ID;
import static android.telephony.data.ApnSetting.TYPE_MMS;
+import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
+import static com.android.settings.sim.SimDialogActivity.PICK_DISMISS;
+
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
@@ -51,7 +54,6 @@
import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
import com.android.settings.network.telephony.MobileNetworkActivity;
-import com.android.settingslib.HelpUtils;
public class SimSelectNotification extends BroadcastReceiver {
private static final String TAG = "SimSelectNotification";
@@ -159,6 +161,16 @@
// Cancel any previous notifications
cancelSimSelectNotification(context);
+
+ // If the dialog type is to dismiss.
+ if (dialogType == EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DISMISS) {
+ Intent newIntent = new Intent(context, SimDialogActivity.class);
+ newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ newIntent.putExtra(SimDialogActivity.DIALOG_TYPE_KEY, PICK_DISMISS);
+ context.startActivity(newIntent);
+ return;
+ }
+
// Create a notification to tell the user that some defaults are missing
createSimSelectNotification(context);
@@ -186,10 +198,11 @@
final int warningType = intent.getIntExtra(EXTRA_SIM_COMBINATION_WARNING_TYPE,
EXTRA_SIM_COMBINATION_WARNING_TYPE_NONE);
+ // Cancel any previous notifications
+ cancelSimCombinationWarningNotification(context);
+
if (warningType == EXTRA_SIM_COMBINATION_WARNING_TYPE_DUAL_CDMA) {
- // Cancel any previous notifications
- cancelSimCombinationWarningNotification(context);
- // Create a notification to tell the user that some defaults are missing
+ // Create a notification to tell the user that there's a sim combination warning.
createSimCombinationWarningNotification(context, intent);
}
}
diff --git a/src/com/android/settings/slices/CustomSliceRegistry.java b/src/com/android/settings/slices/CustomSliceRegistry.java
index ce98d27..cf23cbd 100644
--- a/src/com/android/settings/slices/CustomSliceRegistry.java
+++ b/src/com/android/settings/slices/CustomSliceRegistry.java
@@ -37,9 +37,7 @@
import com.android.settings.homepage.contextualcards.slices.FaceSetupSlice;
import com.android.settings.homepage.contextualcards.slices.LowStorageSlice;
import com.android.settings.location.LocationSlice;
-import com.android.settings.media.MediaOutputGroupSlice;
import com.android.settings.media.MediaOutputIndicatorSlice;
-import com.android.settings.media.MediaOutputSlice;
import com.android.settings.media.RemoteMediaSlice;
import com.android.settings.network.AirplaneSafeNetworksSlice;
import com.android.settings.network.telephony.MobileDataSlice;
@@ -256,26 +254,6 @@
.build();
/**
- * Backing Uri for the Media output Slice.
- */
- public static Uri MEDIA_OUTPUT_SLICE_URI = new Uri.Builder()
- .scheme(ContentResolver.SCHEME_CONTENT)
- .authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
- .appendPath(MediaOutputSliceConstants.KEY_MEDIA_OUTPUT)
- .build();
-
- /**
- * Backing Uri for the Media output group Slice.
- */
- public static Uri MEDIA_OUTPUT_GROUP_SLICE_URI = new Uri.Builder()
- .scheme(ContentResolver.SCHEME_CONTENT)
- .authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
- .appendPath(MediaOutputSliceConstants.KEY_MEDIA_OUTPUT_GROUP)
- .build();
-
- /**
* Backing Uri for the Media output indicator Slice.
*/
public static Uri MEDIA_OUTPUT_INDICATOR_SLICE_URI = new Uri.Builder()
@@ -340,12 +318,10 @@
sUriToSlice.put(LOCATION_SLICE_URI, LocationSlice.class);
sUriToSlice.put(LOW_STORAGE_SLICE_URI, LowStorageSlice.class);
sUriToSlice.put(MEDIA_OUTPUT_INDICATOR_SLICE_URI, MediaOutputIndicatorSlice.class);
- sUriToSlice.put(MEDIA_OUTPUT_SLICE_URI, MediaOutputSlice.class);
sUriToSlice.put(MOBILE_DATA_SLICE_URI, MobileDataSlice.class);
sUriToSlice.put(WIFI_SLICE_URI, WifiSlice.class);
sUriToSlice.put(DARK_THEME_SLICE_URI, DarkThemeSlice.class);
sUriToSlice.put(REMOTE_MEDIA_SLICE_URI, RemoteMediaSlice.class);
- sUriToSlice.put(MEDIA_OUTPUT_GROUP_SLICE_URI, MediaOutputGroupSlice.class);
sUriToSlice.put(ALWAYS_ON_SLICE_URI, AlwaysOnDisplaySlice.class);
sUriToSlice.put(AIRPLANE_SAFE_NETWORKS_SLICE_URI, AirplaneSafeNetworksSlice.class);
}
diff --git a/src/com/android/settings/sound/MediaOutputPreferenceController.java b/src/com/android/settings/sound/MediaOutputPreferenceController.java
index 40a4d56..b5562a3 100644
--- a/src/com/android/settings/sound/MediaOutputPreferenceController.java
+++ b/src/com/android/settings/sound/MediaOutputPreferenceController.java
@@ -37,7 +37,7 @@
import java.util.List;
/**
- * This class allows launching MediaOutputSlice to switch output device.
+ * This class allows launching MediaOutputDialog to switch output device.
* Preference would hide only when
* - Bluetooth = OFF
* - Bluetooth = ON and Connected Devices = 0 and Previously Connected = 0
diff --git a/src/com/android/settings/system/ResetDashboardFragment.java b/src/com/android/settings/system/ResetDashboardFragment.java
index 024db14..e5fc8f1 100644
--- a/src/com/android/settings/system/ResetDashboardFragment.java
+++ b/src/com/android/settings/system/ResetDashboardFragment.java
@@ -22,6 +22,7 @@
import com.android.settings.R;
import com.android.settings.applications.manageapplications.ResetAppPrefPreferenceController;
import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.network.EraseEuiccDataController;
import com.android.settings.network.NetworkResetPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -57,6 +58,12 @@
return buildPreferenceControllers(context, getSettingsLifecycle());
}
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ use(EraseEuiccDataController.class).setFragment(this);
+ }
+
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java
index 2858ab4..7d009f4 100644
--- a/src/com/android/settings/wifi/slice/WifiSlice.java
+++ b/src/com/android/settings/wifi/slice/WifiSlice.java
@@ -232,7 +232,7 @@
CharSequence title) {
intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
final PendingIntent pi = PendingIntent.getBroadcast(mContext, requestCode, intent,
- PendingIntent.FLAG_UPDATE_CURRENT);
+ PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
return SliceAction.create(pi, icon, ListBuilder.ICON_IMAGE, title);
}
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index 421b576..c8c6c38 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -49,6 +49,7 @@
"telephony-common",
"ims-common",
],
+ uses_libs: ["org.apache.http.legacy"],
}
//############################################################
diff --git a/tests/robotests/new_tests_hook.sh b/tests/robotests/new_tests_hook.sh
new file mode 100755
index 0000000..92d6670
--- /dev/null
+++ b/tests/robotests/new_tests_hook.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+# This script detects the presence of new robolectric java tests within
+# commits to be uploaded. If a new file is detected the script will print an
+# error message and return an error code. Intended to be used as a repo hook.
+
+new_robolectric_tests=$(
+ git diff --name-status $REPO_LREV | grep "^A.*tests/robotests.*\.java")
+if [ $new_robolectric_tests != "" ]
+then
+ echo "New Robolectric unit tests detected. Please submit junit tests" \
+ "instead, in the tests/junit directory." \
+ "See go/android-platform-robolectric-cleanup."
+ echo $new_robolectric_tests
+ exit 1
+fi
diff --git a/tests/robotests/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java
deleted file mode 100644
index 4cc17dc..0000000
--- a/tests/robotests/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.accessibility;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-/** TODO(b/170970675): Update and add tests after ColorDisplayService work is integrated */
-public class ReduceBrightColorsIntensityPreferenceControllerTest {
- private final Context mContext = ApplicationProvider.getApplicationContext();
- private final ReduceBrightColorsIntensityPreferenceController mPreferenceController =
- new ReduceBrightColorsIntensityPreferenceController(mContext,
- "rbc_intensity");
-
- @Test
- public void isAvailable_configuredRbcAvailable_enabledRbc_shouldReturnTrue() {
- assertThat(mPreferenceController.isAvailable()).isTrue();
- }
- @Test
- public void isAvailable_configuredRbcAvailable_disabledRbc_shouldReturnFalse() {
- assertThat(mPreferenceController.isAvailable()).isTrue();
- }
- @Test
- public void isAvailable_configuredRbcUnavailable_enabledRbc_shouldReturnFalse() {
- assertThat(mPreferenceController.isAvailable()).isTrue();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
index 8626d2d..691ce5e 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/DefaultSmsShortcutPreferenceControllerTest.java
@@ -19,6 +19,7 @@
import static com.google.common.truth.Truth.assertThat;
import android.app.role.RoleControllerManager;
+import android.app.role.RoleManager;
import android.content.Context;
import org.junit.Before;
@@ -37,6 +38,8 @@
private static final String PREFERENCE_KEY = "default_sms_app";
@Mock
+ private RoleManager mRoleManager;
+ @Mock
private RoleControllerManager mRoleControllerManager;
private DefaultSmsShortcutPreferenceController mController;
@@ -44,8 +47,9 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- ShadowApplication.getInstance().setSystemService(Context.ROLE_CONTROLLER_SERVICE,
- mRoleControllerManager);
+ final ShadowApplication shadowApplication = ShadowApplication.getInstance();
+ shadowApplication.setSystemService(Context.ROLE_SERVICE, mRoleManager);
+ shadowApplication.setSystemService(Context.ROLE_CONTROLLER_SERVICE, mRoleControllerManager);
mController = new DefaultSmsShortcutPreferenceController(RuntimeEnvironment.application,
TEST_PACKAGE_NAME);
}
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 3521f49..47edb40 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
@@ -36,6 +36,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -74,6 +75,7 @@
}
@Test
+ @Ignore
public void fingerprintEnrollHelp_shouldShowHelpText() {
EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java
index 6103b2b..24d4d33 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java
@@ -24,7 +24,6 @@
import com.android.settings.core.PreferenceControllerListHelper;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.DatabaseIndexingUtils;
-import com.android.settingslib.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
import org.robolectric.RuntimeEnvironment;
diff --git a/tests/robotests/src/com/android/settings/datausage/AppPrefLoaderTest.java b/tests/robotests/src/com/android/settings/datausage/AppPrefLoaderTest.java
deleted file mode 100644
index 5efeaf2..0000000
--- a/tests/robotests/src/com/android/settings/datausage/AppPrefLoaderTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.datausage;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.graphics.drawable.Drawable;
-import android.util.ArraySet;
-
-import androidx.preference.Preference;
-
-import 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 AppPrefLoaderTest {
-
- @Mock
- private PackageManager mPackageManager;
-
- private AppPrefLoader mLoader;
-
- @Before
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- final ArraySet<String> pkgs = new ArraySet<>(2);
- pkgs.add("pkg0");
- pkgs.add("pkg1");
- mLoader = new AppPrefLoader(RuntimeEnvironment.application, pkgs, mPackageManager);
- }
-
- @Test
- public void loadInBackground_packageNotFound_shouldReturnEmptySet()
- throws NameNotFoundException {
- when(mPackageManager.getApplicationInfo(anyString(), anyInt()))
- .thenThrow(new NameNotFoundException());
-
- assertThat(mLoader.loadInBackground()).isEmpty();
- }
-
- @Test
- public void loadInBackground_shouldReturnPreference() throws NameNotFoundException {
- ApplicationInfo info = mock(ApplicationInfo.class);
- when(mPackageManager.getApplicationInfo(anyString(), anyInt())).thenReturn(info);
- final Drawable drawable = mock(Drawable.class);
- final String label = "Label1";
- when(info.loadIcon(mPackageManager)).thenReturn(drawable);
- when(info.loadLabel(mPackageManager)).thenReturn(label);
-
- Preference preference = mLoader.loadInBackground().valueAt(0);
- assertThat(preference.getTitle()).isEqualTo(label);
- assertThat(preference.getIcon()).isEqualTo(drawable);
- assertThat(preference.isSelectable()).isFalse();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/datausage/CellDataPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/CellDataPreferenceTest.java
deleted file mode 100644
index c0b12dc..0000000
--- a/tests/robotests/src/com/android/settings/datausage/CellDataPreferenceTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.settings.datausage;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-
-import android.content.Context;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.LinearLayout;
-
-import androidx.preference.PreferenceViewHolder;
-
-import com.android.settings.network.ProxySubscriptionManager;
-
-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 CellDataPreferenceTest {
-
- @Mock
- private ProxySubscriptionManager mProxySubscriptionMgr;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private SubscriptionInfo mSubInfo;
-
- private Context mContext;
- private PreferenceViewHolder mHolder;
- private CellDataPreference mPreference;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = RuntimeEnvironment.application;
- mPreference = new CellDataPreference(mContext, null) {
- @Override
- ProxySubscriptionManager getProxySubscriptionManager() {
- return mProxySubscriptionMgr;
- }
- @Override
- SubscriptionInfo getActiveSubscriptionInfo(int subId) {
- return mSubInfo;
- }
- };
- doNothing().when(mSubscriptionManager).setDefaultDataSubId(anyInt());
- doReturn(mSubscriptionManager).when(mProxySubscriptionMgr).get();
- doNothing().when(mProxySubscriptionMgr).addActiveSubscriptionsListener(any());
- doNothing().when(mProxySubscriptionMgr).removeActiveSubscriptionsListener(any());
-
- final LayoutInflater inflater = LayoutInflater.from(mContext);
- final View view = inflater.inflate(mPreference.getLayoutResource(),
- new LinearLayout(mContext), false);
-
- mHolder = PreferenceViewHolder.createInstanceForTests(view);
- }
-
- @Test
- public void noActiveSub_shouldDisable() {
- mSubInfo = null;
- mPreference.mOnSubscriptionsChangeListener.onChanged();
- assertThat(mPreference.isEnabled()).isFalse();
- }
-
- @Test
- public void hasActiveSub_shouldEnable() {
- mPreference.mOnSubscriptionsChangeListener.onChanged();
- assertThat(mPreference.isEnabled()).isTrue();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageInfoControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
deleted file mode 100644
index 6c89201..0000000
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-package com.android.settings.datausage;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.net.NetworkPolicy;
-import android.net.NetworkTemplate;
-
-import com.android.settingslib.net.DataUsageController.DataUsageInfo;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
-@RunWith(RobolectricTestRunner.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;
-
- private DataUsageInfoController mInfoController;
- private DataUsageInfo info;
-
- @Before
- public void setUp() {
- mInfoController = new DataUsageInfoController();
- info = new DataUsageInfo();
- }
-
- @Test
- public void testLowUsageLowWarning_LimitUsed() {
- info.warningLevel = POSITIVE_SMALL;
- info.limitLevel = POSITIVE_LARGE;
- info.usageLevel = POSITIVE_SMALL;
- assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.limitLevel);
- }
-
- @Test
- public void testLowUsageEqualWarning_LimitUsed() {
- info.warningLevel = POSITIVE_LARGE;
- info.limitLevel = POSITIVE_LARGE;
- info.usageLevel = POSITIVE_SMALL;
- assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.limitLevel);
- }
-
- @Test
- public void testNoLimitNoUsage_WarningUsed() {
- info.warningLevel = POSITIVE_LARGE;
- info.limitLevel = ZERO;
- info.usageLevel = ZERO;
- assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.warningLevel);
- }
-
- @Test
- public void testNoLimitLowUsage_WarningUsed() {
- info.warningLevel = POSITIVE_LARGE;
- info.limitLevel = ZERO;
- info.usageLevel = POSITIVE_SMALL;
- assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.warningLevel);
- }
-
- @Test
- public void testLowWarningNoLimit_UsageUsed() {
- info.warningLevel = POSITIVE_SMALL;
- info.limitLevel = ZERO;
- info.usageLevel = POSITIVE_LARGE;
- assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.usageLevel);
- }
-
- @Test
- public void testLowWarningLowLimit_UsageUsed() {
- info.warningLevel = POSITIVE_SMALL;
- info.limitLevel = POSITIVE_SMALL;
- info.usageLevel = POSITIVE_LARGE;
- assertThat(mInfoController.getSummaryLimit(info)).isEqualTo(info.usageLevel);
- }
-
- private NetworkPolicy getDefaultNetworkPolicy() {
- NetworkTemplate template =
- new NetworkTemplate(NetworkTemplate.MATCH_WIFI_WILDCARD, null, null);
- int cycleDay = -1;
- String cycleTimezone = "UTC";
- long warningBytes = -1;
- long limitBytes = -1;
- return new NetworkPolicy(template, cycleDay, cycleTimezone, warningBytes, limitBytes, true);
- }
-
- @Test
- public void testNullArguments_NoError() {
- mInfoController.updateDataLimit(null, null);
- mInfoController.updateDataLimit(info, null);
- mInfoController.updateDataLimit(null, getDefaultNetworkPolicy());
- }
-
- @Test
- public void testNegativeWarning_UpdatedToZero() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.warningBytes = NEGATIVE;
- mInfoController.updateDataLimit(info, policy);
- assertThat(info.warningLevel).isEqualTo(ZERO);
- }
-
- @Test
- public void testWarningZero_UpdatedToZero() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.warningBytes = ZERO;
- mInfoController.updateDataLimit(info, policy);
- assertThat(info.warningLevel).isEqualTo(ZERO);
- }
-
- @Test
- public void testWarningPositive_UpdatedToWarning() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.warningBytes = POSITIVE_SMALL;
- mInfoController.updateDataLimit(info, policy);
- assertThat(info.warningLevel).isEqualTo(policy.warningBytes);
- }
-
- @Test
- public void testLimitNegative_UpdatedToZero() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.limitBytes = NEGATIVE;
- mInfoController.updateDataLimit(info, policy);
- assertThat(info.limitLevel).isEqualTo(ZERO);
- }
-
- @Test
- public void testLimitZero_UpdatedToZero() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.limitBytes = ZERO;
- mInfoController.updateDataLimit(info, policy);
- assertThat(info.limitLevel).isEqualTo(ZERO);
- }
-
- @Test
- public void testLimitPositive_UpdatedToLimit() {
- NetworkPolicy policy = getDefaultNetworkPolicy();
- policy.limitBytes = POSITIVE_SMALL;
- mInfoController.updateDataLimit(info, policy);
- assertThat(info.limitLevel).isEqualTo(policy.limitBytes);
- }
-}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
deleted file mode 100644
index 5f40925..0000000
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ /dev/null
@@ -1,562 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.settings.datausage;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.app.Activity;
-import android.content.ComponentName;
-import android.content.Intent;
-import android.graphics.Typeface;
-import android.net.ConnectivityManager;
-import android.net.NetworkTemplate;
-import android.os.Bundle;
-import android.telephony.SubscriptionManager;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.ProgressBar;
-import android.widget.TextView;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.preference.PreferenceViewHolder;
-
-import com.android.settings.R;
-import com.android.settings.SettingsActivity;
-import com.android.settings.SubSettings;
-import com.android.settingslib.Utils;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowActivity;
-
-import java.util.concurrent.TimeUnit;
-
-@RunWith(RobolectricTestRunner.class)
-public class DataUsageSummaryPreferenceTest {
-
- private static final long CYCLE_DURATION_MILLIS = 1000000000L;
- private static final long UPDATE_LAG_MILLIS = 10000000L;
- private static final String FAKE_CARRIER = "z-mobile";
-
- private Activity mActivity;
- private PreferenceViewHolder mHolder;
- private DataUsageSummaryPreference mSummaryPreference;
- private TextView mUsageTitle;
- private TextView mCycleTime;
- private TextView mCarrierInfo;
- private TextView mDataLimits;
- private TextView mDataUsed;
- private TextView mDataRemaining;
- private Button mLaunchButton;
- private LinearLayout mLabelBar;
- private TextView mLabel1;
- private TextView mLabel2;
- private ProgressBar mProgressBar;
-
- private long mCycleEnd;
- private long mUpdateTime;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mActivity = spy(Robolectric.setupActivity(Activity.class));
- mSummaryPreference = new DataUsageSummaryPreference(mActivity, null /* attrs */);
- LayoutInflater inflater = LayoutInflater.from(mActivity);
- View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
- false /* attachToRoot */);
-
- mHolder = spy(PreferenceViewHolder.createInstanceForTests(view));
-
- final long now = System.currentTimeMillis();
- mCycleEnd = now + CYCLE_DURATION_MILLIS;
- mUpdateTime = now - UPDATE_LAG_MILLIS;
- }
-
- @Test
- public void testSetUsageInfo_withLaunchIntent_launchButtonShown() {
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
- }
-
- @Test
- public void testSetUsageInfo_withoutLaunchIntent_launchButtonNotShown() {
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- null /* launchIntent */);
-
- bindViewHolder();
- assertThat(mLaunchButton.getVisibility()).isEqualTo(View.GONE);
- }
-
- @Test
- public void testSetUsageInfo_withDataPlans_carrierInfoShown() {
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
- }
-
- @Test
- public void testSetUsageInfo_withNoDataPlans_carrierInfoNotShown() {
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.GONE);
- }
-
- @Test
- public void testCarrierUpdateTime_shouldFormatDaysCorrectly() {
- int baseUnit = 2;
- int smudge = 6;
- final long updateTime = System.currentTimeMillis()
- - TimeUnit.DAYS.toMillis(baseUnit) - TimeUnit.HOURS.toMillis(smudge);
- mCarrierInfo = (TextView) mHolder.findViewById(R.id.carrier_and_update);
- mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getText().toString())
- .isEqualTo("Updated by " + FAKE_CARRIER + " " + baseUnit + " days ago");
- }
-
- @Test
- public void testCarrierUpdateTime_shouldFormatHoursCorrectly() {
- int baseUnit = 2;
- int smudge = 6;
- final long updateTime = System.currentTimeMillis()
- - TimeUnit.HOURS.toMillis(baseUnit) - TimeUnit.MINUTES.toMillis(smudge);
- mCarrierInfo = (TextView) mHolder.findViewById(R.id.carrier_and_update);
- mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getText().toString())
- .isEqualTo("Updated by " + FAKE_CARRIER + " " + baseUnit + " hr ago");
- }
-
- @Test
- public void testCarrierUpdateTime_shouldFormatMinutesCorrectly() {
- int baseUnit = 2;
- int smudge = 6;
- final long updateTime = System.currentTimeMillis()
- - TimeUnit.MINUTES.toMillis(baseUnit) - TimeUnit.SECONDS.toMillis(smudge);
- mCarrierInfo = (TextView) mHolder.findViewById(R.id.carrier_and_update);
- mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getText().toString())
- .isEqualTo("Updated by " + FAKE_CARRIER + " " + baseUnit + " min ago");
- }
-
- @Test
- public void testCarrierUpdateTime_shouldFormatLessThanMinuteCorrectly() {
- final long updateTime = System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(45);
- mCarrierInfo = (TextView) mHolder.findViewById(R.id.carrier_and_update);
- mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getText().toString())
- .isEqualTo("Updated by " + FAKE_CARRIER + " just now");
- }
-
- @Test
- public void testCarrierUpdateTimeWithNoCarrier_shouldSayJustNow() {
- final long updateTime = System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(45);
- mCarrierInfo = (TextView) mHolder.findViewById(R.id.carrier_and_update);
- mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, null /* carrier */,
- 1 /* numPlans */, new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getText().toString())
- .isEqualTo("Updated just now");
- }
-
- @Test
- public void testCarrierUpdateTimeWithNoCarrier_shouldFormatTime() {
- final long updateTime = System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(2);
- mCarrierInfo = (TextView) mHolder.findViewById(R.id.carrier_and_update);
- mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, null /* carrier */,
- 1 /* numPlans */, new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getText().toString())
- .isEqualTo("Updated 2 min ago");
- }
-
- @Test
- public void setUsageInfo_withRecentCarrierUpdate_doesNotSetCarrierInfoWarningColorAndFont() {
- final long updateTime = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(1);
- mCarrierInfo = (TextView) mHolder.findViewById(R.id.carrier_and_update);
- mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mCarrierInfo.getCurrentTextColor()).isEqualTo(
- Utils.getColorAttrDefaultColor(mActivity, android.R.attr.textColorSecondary));
- assertThat(mCarrierInfo.getTypeface()).isEqualTo(Typeface.SANS_SERIF);
- }
-
- @Test
- public void testSetUsageInfo_withStaleCarrierUpdate_setsCarrierInfoWarningColorAndFont() {
- final long updateTime = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(7);
- mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mCarrierInfo.getCurrentTextColor()).isEqualTo(
- Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorError));
- assertThat(mCarrierInfo.getTypeface()).isEqualTo(
- DataUsageSummaryPreference.SANS_SERIF_MEDIUM);
- }
-
- @Test
- public void testSetUsageInfo_withNoDataPlans_usageTitleNotShown() {
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mUsageTitle.getVisibility()).isEqualTo(View.GONE);
- }
-
- @Test
- public void testSetUsageInfo_withMultipleDataPlans_usageTitleShown() {
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 2 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mUsageTitle.getVisibility()).isEqualTo(View.VISIBLE);
- }
-
- @Test
- public void testSetUsageInfo_cycleRemainingTimeIsLessOneDay() {
- // just under one day
- final long cycleEnd = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(23);
- mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mCycleTime.getText()).isEqualTo(
- mActivity.getString(R.string.billing_cycle_less_than_one_day_left));
- }
-
- @Test
- public void testSetUsageInfo_cycleRemainingTimeNegativeDaysLeft_shouldDisplayNoneLeft() {
- final long cycleEnd = System.currentTimeMillis() - 1L;
- mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mCycleTime.getText()).isEqualTo(
- mActivity.getString(R.string.billing_cycle_none_left));
- }
-
- @Test
- public void testSetUsageInfo_cycleRemainingTimeDaysLeft_shouldUsePlurals() {
- final int daysLeft = 3;
- final long cycleEnd = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(daysLeft)
- + TimeUnit.HOURS.toMillis(1);
- mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- new Intent());
-
- bindViewHolder();
- assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mCycleTime.getText()).isEqualTo(daysLeft + " days left");
- }
-
- @Test
- public void testSetLimitInfo_withLimitInfo_dataLimitsShown() {
- final String limitText = "test limit text";
- mSummaryPreference.setLimitInfo(limitText);
-
- bindViewHolder();
- assertThat(mDataLimits.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mDataLimits.getText()).isEqualTo(limitText);
- }
-
- @Test
- public void testSetLimitInfo_withNullLimitInfo_dataLimitsNotShown() {
- mSummaryPreference.setLimitInfo(null);
-
- bindViewHolder();
- assertThat(mDataLimits.getVisibility()).isEqualTo(View.GONE);
- }
-
- @Test
- public void testSetLimitInfo_withEmptyLimitInfo_dataLimitsNotShown() {
- final String emptyLimitText = "";
- mSummaryPreference.setLimitInfo(emptyLimitText);
-
- bindViewHolder();
- assertThat(mDataLimits.getVisibility()).isEqualTo(View.GONE);
- }
-
- @Test
- public void testSetChartEnabledFalse_hidesLabelBar() {
- setValidLabels();
- mSummaryPreference.setChartEnabled(false);
-
- bindViewHolder();
- assertThat(mLabelBar.getVisibility()).isEqualTo(View.GONE);
- assertThat(mProgressBar.getVisibility()).isEqualTo(View.GONE);
- }
-
- @Test
- public void testSetEmptyLabels_hidesLabelBar() {
- mSummaryPreference.setLabels("", "");
-
- bindViewHolder();
- assertThat(mLabelBar.getVisibility()).isEqualTo(View.GONE);
- assertThat(mProgressBar.getVisibility()).isEqualTo(View.GONE);
- }
-
- @Test
- public void testLabelBar_isVisible_whenLabelsSet() {
- setValidLabels();
- //mChartEnabled defaults to true
-
- bindViewHolder();
- assertThat(mLabelBar.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mProgressBar.getVisibility()).isEqualTo(View.VISIBLE);
- }
-
- @Test
- public void testSetProgress_updatesProgressBar() {
- setValidLabels();
- mSummaryPreference.setProgress(.5f);
-
- bindViewHolder();
- assertThat(mProgressBar.getProgress()).isEqualTo(50);
- }
-
- private void setValidLabels() {
- mSummaryPreference.setLabels("0.0 GB", "5.0 GB");
- }
-
- @Test
- public void testSetUsageAndRemainingInfo_withUsageInfo_dataUsageAndRemainingShown() {
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
- mSummaryPreference.setUsageNumbers(
- BillingCycleSettings.MIB_IN_BYTES,
- 10 * BillingCycleSettings.MIB_IN_BYTES,
- true /* hasMobileData */);
-
- bindViewHolder();
- assertThat(mDataUsed.getText().toString()).isEqualTo("1.00 MB used");
- assertThat(mDataRemaining.getText().toString()).isEqualTo("9.00 MB left");
- assertThat(mDataRemaining.getVisibility()).isEqualTo(View.VISIBLE);
- final int colorId = Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorAccent);
- assertThat(mDataRemaining.getCurrentTextColor()).isEqualTo(colorId);
- }
-
- @Test
- public void testSetUsageInfo_withDataOverusage() {
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
- mSummaryPreference.setUsageNumbers(
- 11 * BillingCycleSettings.MIB_IN_BYTES,
- 10 * BillingCycleSettings.MIB_IN_BYTES,
- true /* hasMobileData */);
-
- bindViewHolder();
- assertThat(mDataUsed.getText().toString()).isEqualTo("11.00 MB used");
- assertThat(mDataRemaining.getText().toString()).isEqualTo("1.00 MB over");
- final int colorId = Utils.getColorAttrDefaultColor(mActivity, android.R.attr.colorError);
- assertThat(mDataRemaining.getCurrentTextColor()).isEqualTo(colorId);
- }
-
- @Test
- public void testSetUsageInfo_withUsageInfo_dataUsageShown() {
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- new Intent());
- mSummaryPreference.setUsageNumbers(
- BillingCycleSettings.MIB_IN_BYTES, -1L, true /* hasMobileData */);
-
- bindViewHolder();
- assertThat(mDataUsed.getText().toString()).isEqualTo("1.00 MB used");
- assertThat(mDataRemaining.getText()).isEqualTo("");
- }
-
- @Test
- public void testSetAppIntent_toMdpApp_intentCorrect() {
- final FragmentActivity activity = Robolectric.setupActivity(FragmentActivity.class);
- final Intent intent = new Intent(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
- intent.setPackage("test-owner.example.com");
- intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, 42);
-
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- intent);
-
- bindViewHolder();
- assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mLaunchButton.getText())
- .isEqualTo(mActivity.getString(R.string.launch_mdp_app_text));
-
- mLaunchButton.callOnClick();
- ShadowActivity shadowActivity = Shadows.shadowOf(activity);
- Intent startedIntent = shadowActivity.getNextStartedActivity();
- assertThat(startedIntent.getAction())
- .isEqualTo(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
- assertThat(startedIntent.getPackage()).isEqualTo("test-owner.example.com");
- assertThat(startedIntent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, -1))
- .isEqualTo(42);
- }
-
- @Test
- public void testSetUsageInfo_withOverflowStrings_dataRemainingNotShown() {
- LayoutInflater inflater = LayoutInflater.from(mActivity);
- View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
- false /* attachToRoot */);
-
- TextView dataUsed = spy(new TextView(mActivity));
- TextView dataRemaining = spy(new TextView(mActivity));
- doReturn(dataUsed).when(mHolder).findViewById(R.id.data_usage_view);
- doReturn(dataRemaining).when(mHolder).findViewById(R.id.data_remaining_view);
-
- mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
- new Intent());
- mSummaryPreference.setUsageNumbers(
- BillingCycleSettings.MIB_IN_BYTES,
- 10 * BillingCycleSettings.MIB_IN_BYTES,
- true /* hasMobileData */);
-
- when(mActivity.getResources()).thenCallRealMethod();
- when(mActivity.getText(R.string.data_used_formatted))
- .thenReturn("^1 ^2 used with long trailing text");
- when(mActivity.getText(R.string.data_remaining)).thenReturn("^1 left");
-
- bindViewHolder();
-
- doReturn(500).when(dataUsed).getMeasuredWidth();
- doReturn(500).when(dataRemaining).getMeasuredWidth();
-
- assertThat(dataRemaining.getVisibility()).isEqualTo(View.VISIBLE);
-
- MeasurableLinearLayout layout =
- (MeasurableLinearLayout) mHolder.findViewById(R.id.usage_layout);
- layout.measure(
- View.MeasureSpec.makeMeasureSpec(800, View.MeasureSpec.EXACTLY),
- View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
-
- assertThat(dataUsed.getText().toString()).isEqualTo("1.00 MB used with long trailing text");
- assertThat(dataRemaining.getVisibility()).isEqualTo(View.GONE);
- }
-
- @Test
- public void testSetWifiMode_withUsageInfo_dataUsageShown() {
- final int daysLeft = 3;
- final long cycleEnd = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(daysLeft)
- + TimeUnit.HOURS.toMillis(1);
- final FragmentActivity activity = Robolectric.setupActivity(FragmentActivity.class);
- mSummaryPreference = spy(mSummaryPreference);
- mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
- new Intent());
- mSummaryPreference.setUsageNumbers(1000000L, -1L, true);
- final String cycleText = "The quick fox";
- mSummaryPreference.setWifiMode(true /* isWifiMode */, cycleText, false /* isSingleWifi */);
- doReturn(200L).when(mSummaryPreference).getHistoricalUsageLevel();
-
- bindViewHolder();
- assertThat(mUsageTitle.getText().toString())
- .isEqualTo(mActivity.getString(R.string.data_usage_wifi_title));
- assertThat(mUsageTitle.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mCycleTime.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mCycleTime.getText()).isEqualTo(cycleText);
- assertThat(mCarrierInfo.getVisibility()).isEqualTo(View.GONE);
- assertThat(mDataLimits.getVisibility()).isEqualTo(View.GONE);
- assertThat(mLaunchButton.getVisibility()).isEqualTo(View.VISIBLE);
- assertThat(mLaunchButton.getText())
- .isEqualTo(mActivity.getString(R.string.launch_wifi_text));
-
- mLaunchButton.callOnClick();
- ShadowActivity shadowActivity = Shadows.shadowOf(activity);
- Intent startedIntent = shadowActivity.getNextStartedActivity();
- assertThat(startedIntent.getComponent()).isEqualTo(new ComponentName("com.android.settings",
- SubSettings.class.getName()));
-
- final Bundle expect = new Bundle(1);
- expect.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE,
- NetworkTemplate.buildTemplateWifiWildcard());
- final Bundle actual = startedIntent
- .getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
- assertThat((NetworkTemplate) actual.getParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE))
- .isEqualTo(NetworkTemplate.buildTemplateWifiWildcard());
-
- assertThat(startedIntent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
- .isEqualTo(R.string.wifi_data_usage);
- }
-
- @Test
- public void testSetWifiMode_noUsageInfo_shouldDisableLaunchButton() {
- mSummaryPreference = spy(mSummaryPreference);
- mSummaryPreference.setWifiMode(true /* isWifiMode */, "Test cycle text",
- false /* isSingleWifi */);
- doReturn(0L).when(mSummaryPreference).getHistoricalUsageLevel();
-
- bindViewHolder();
-
- assertThat(mLaunchButton.isEnabled()).isFalse();
- }
-
- @Test
- public void launchWifiDataUsage_shouldSetWifiNetworkTypeInIntentExtra() {
- mSummaryPreference.launchWifiDataUsage(mActivity);
-
- final Intent launchIntent = Shadows.shadowOf(mActivity).getNextStartedActivity();
- final Bundle args =
- launchIntent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
-
- assertThat(args.getInt(DataUsageList.EXTRA_NETWORK_TYPE))
- .isEqualTo(ConnectivityManager.TYPE_WIFI);
- }
-
- private void bindViewHolder() {
- mSummaryPreference.onBindViewHolder(mHolder);
- mUsageTitle = (TextView) mHolder.findViewById(R.id.usage_title);
- mCycleTime = (TextView) mHolder.findViewById(R.id.cycle_left_time);
- mCarrierInfo = (TextView) mHolder.findViewById(R.id.carrier_and_update);
- mDataLimits = (TextView) mHolder.findViewById(R.id.data_limits);
- mDataUsed = spy((TextView) mHolder.findViewById(R.id.data_usage_view));
- mDataRemaining = spy((TextView) mHolder.findViewById(R.id.data_remaining_view));
- mLaunchButton = (Button) mHolder.findViewById(R.id.launch_mdp_app_button);
- mLabelBar = (LinearLayout) mHolder.findViewById(R.id.label_bar);
- mLabel1 = (TextView) mHolder.findViewById(R.id.text1);
- mLabel2 = (TextView) mHolder.findViewById(R.id.text2);
- mProgressBar = (ProgressBar) mHolder.findViewById(R.id.determinateBar);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java b/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java
index b4dab0d..88e2886 100644
--- a/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java
+++ b/tests/robotests/src/com/android/settings/development/qstile/WinscopeTraceTest.java
@@ -37,6 +37,7 @@
import android.view.IWindowManager;
import android.widget.Toast;
+import com.android.internal.inputmethod.IBooleanResultCallback;
import com.android.internal.view.IInputMethodManager;
import com.android.settings.testutils.shadow.ShadowParcel;
@@ -68,6 +69,9 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mWinscopeTrace = spy(new DevelopmentTiles.WinscopeTrace());
+ // default ImeTraceEnabled value, prevent tests from actually calling into IMM and
+ // await the result forever.
+ doReturn(false).when(mWinscopeTrace).isImeTraceEnabled();
ReflectionHelpers.setField(mWinscopeTrace, "mWindowManager", mWindowManager);
ReflectionHelpers.setField(mWinscopeTrace, "mInputMethodManager", mInputMethodManager);
ReflectionHelpers.setField(mWinscopeTrace, "mSurfaceFlinger", mSurfaceFlinger);
@@ -93,7 +97,6 @@
public void sfReturnsTraceEnabled_shouldReturnEnabled() throws RemoteException {
// Assume Window Trace and Input Method Manager are disabled.
doReturn(false).when(mWindowManager).isWindowTraceEnabled();
- doReturn(false).when(mInputMethodManager).isImeTraceEnabled();
ShadowParcel.sReadBoolResult = true;
assertThat(mWinscopeTrace.isEnabled()).isTrue();
verify(mSurfaceFlinger)
@@ -114,7 +117,6 @@
public void wmAndSfAndImmReturnTraceDisabled_shouldReturnDisabled() throws RemoteException {
ShadowParcel.sReadBoolResult = false;
doReturn(false).when(mWindowManager).isWindowTraceEnabled();
- doReturn(false).when(mInputMethodManager).isImeTraceEnabled();
assertThat(mWinscopeTrace.isEnabled()).isFalse();
verify(mSurfaceFlinger)
.transact(eq(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE), any(), any(),
@@ -127,7 +129,7 @@
throws RemoteException {
ShadowParcel.sReadBoolResult = false;
doReturn(false).when(mWindowManager).isWindowTraceEnabled();
- doReturn(true).when(mInputMethodManager).isImeTraceEnabled();
+ doReturn(true).when(mWinscopeTrace).isImeTraceEnabled();
assertThat(mWinscopeTrace.isEnabled()).isTrue();
verify(mSurfaceFlinger)
.transact(eq(SURFACE_FLINGER_LAYER_TRACE_STATUS_CODE), any(), any(),
@@ -140,7 +142,7 @@
public void immReturnsTraceEnabled_shouldReturnEnabled() throws RemoteException {
// Assume Window Manager and Surface Trace are disabled.
ShadowParcel.sReadBoolResult = false;
- doReturn(true).when(mInputMethodManager).isImeTraceEnabled();
+ doReturn(true).when(mWinscopeTrace).isImeTraceEnabled();
assertThat(mWinscopeTrace.isEnabled()).isTrue();
}
@@ -149,7 +151,6 @@
public void immReturnsTraceDisabled_shouldReturnDisabled() throws RemoteException {
// Assume Window Manager and Surface Trace are disabled.
ShadowParcel.sReadBoolResult = false;
- doReturn(false).when(mInputMethodManager).isImeTraceEnabled();
assertThat(mWinscopeTrace.isEnabled()).isFalse();
}
@@ -167,7 +168,6 @@
public void sfUnavailableAndWmAndImmReturnTraceDisabled_shouldReturnDisabled()
throws RemoteException {
doReturn(false).when(mWindowManager).isWindowTraceEnabled();
- doReturn(false).when(mInputMethodManager).isImeTraceEnabled();
ReflectionHelpers.setField(mWinscopeTrace, "mSurfaceFlinger", null);
assertThat(mWinscopeTrace.isEnabled()).isFalse();
}
@@ -251,7 +251,8 @@
@Test
public void setIsEnableAndImmThrowsRemoteException_shouldFailGracefully()
throws RemoteException {
- doThrow(new RemoteException("Unknown")).when(mInputMethodManager).isImeTraceEnabled();
+ doThrow(new RemoteException("Unknown")).when(mInputMethodManager)
+ .isImeTraceEnabled(any(IBooleanResultCallback.Stub.class));
mWinscopeTrace.setIsEnabled(true);
}
diff --git a/tests/robotests/src/com/android/settings/development/transcode/TranscodeAppsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/transcode/TranscodeAppsPreferenceControllerTest.java
deleted file mode 100644
index b31f727..0000000
--- a/tests/robotests/src/com/android/settings/development/transcode/TranscodeAppsPreferenceControllerTest.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.development.transcode;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ActivityInfo;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.graphics.drawable.Drawable;
-import android.os.SystemProperties;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
-import androidx.test.core.app.ApplicationProvider;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowPackageManager;
-
-import java.util.Collections;
-
-@RunWith(RobolectricTestRunner.class)
-public class TranscodeAppsPreferenceControllerTest {
-
- private static final int APPLICATION_UID = 1234;
- private static final String TRANSCODE_SELECTED_APPS_PROP_KEY =
- "persist.sys.fuse.transcode_uids";
-
- @Mock
- private PreferenceScreen mScreen;
- private Context mContext;
- private ShadowPackageManager mShadowPackageManager;
- private TranscodeAppsPreferenceController mController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = ApplicationProvider.getApplicationContext();
- mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
- mController = new TranscodeAppsPreferenceController(mContext, "test_key");
- Preference preference = new Preference(mContext);
-
- when(mScreen.getContext()).thenReturn(mContext);
- when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(preference);
- }
-
- @Test
- public void isAlwaysAvailable() {
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- public void display_hasLaunchAbleApps_shouldDisplay() {
- Intent launcherIntent = new Intent(Intent.ACTION_MAIN);
- launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
- final ResolveInfo resolveInfo = new FakeResolveInfo(mContext);
- ApplicationInfo applicationInfo = new ApplicationInfo();
- applicationInfo.uid = APPLICATION_UID;
- ActivityInfo activityInfo = new ActivityInfo();
- activityInfo.applicationInfo = applicationInfo;
- resolveInfo.activityInfo = activityInfo;
- mShadowPackageManager.setResolveInfosForIntent(launcherIntent,
- Collections.singletonList(resolveInfo));
-
- mController.displayPreference(mScreen);
-
- verify(mScreen, atLeastOnce()).addPreference(any(Preference.class));
- }
-
- @Test
- public void preferenceChecked_shouldSelectApp() {
- // First ensure that the app is not selected.
- SystemProperties.set(TRANSCODE_SELECTED_APPS_PROP_KEY, String.valueOf(-1));
- SwitchPreference switchPreference = createPreference(/* defaultCheckedState = */ false);
-
- switchPreference.performClick();
-
- // Verify that the app is selected.
- assertThat(SystemProperties.get(TRANSCODE_SELECTED_APPS_PROP_KEY)).contains(
- String.valueOf(APPLICATION_UID));
- }
-
- @Test
- public void preferenceUnchecked_shouldUnSelectApp() {
- // First ensure that the app is selected.
- SystemProperties.set(TRANSCODE_SELECTED_APPS_PROP_KEY, String.valueOf(APPLICATION_UID));
- SwitchPreference switchPreference = createPreference(/* defaultCheckedState = */ true);
-
- switchPreference.performClick();
-
- // Verify that the app is not selected.
- assertThat(SystemProperties.get(TRANSCODE_SELECTED_APPS_PROP_KEY)).doesNotContain(
- String.valueOf(APPLICATION_UID));
- }
-
- private SwitchPreference createPreference(boolean defaultCheckedState) {
- SwitchPreference preference = new SwitchPreference(mContext);
- preference.setTitle("Test Pref");
- preference.setIcon(R.drawable.ic_settings_24dp);
- preference.setKey(String.valueOf(APPLICATION_UID));
- preference.setChecked(defaultCheckedState);
- preference.setOnPreferenceChangeListener(mController);
- return preference;
- }
-
- private static class FakeResolveInfo extends ResolveInfo {
-
- private final Context mContext;
-
- FakeResolveInfo(Context context) {
- this.mContext = context;
- }
-
- @Override
- public CharSequence loadLabel(PackageManager pm) {
- return "TestName";
- }
-
- @Override
- public Drawable loadIcon(PackageManager pm) {
- return mContext.getDrawable(R.drawable.ic_settings_24dp);
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeForgetTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeForgetTest.java
deleted file mode 100644
index 9434daa..0000000
--- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeForgetTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.deviceinfo;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.DialogInterface;
-import android.os.Bundle;
-import android.os.storage.VolumeRecord;
-import android.widget.Button;
-
-import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.FragmentActivity;
-
-import com.android.settings.R;
-import com.android.settings.deviceinfo.PrivateVolumeForget.ForgetConfirmFragment;
-import com.android.settings.testutils.shadow.ShadowStorageManager;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.androidx.fragment.FragmentController;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowStorageManager.class)
-public class PrivateVolumeForgetTest {
-
- private PrivateVolumeForget mFragment;
- private FragmentActivity mActivity;
-
- @Before
- public void setUp() {
- final Bundle bundle = new Bundle();
- bundle.putString(VolumeRecord.EXTRA_FS_UUID, "id");
- mFragment = FragmentController.of(new PrivateVolumeForget(), bundle)
- .create()
- .start()
- .resume()
- .visible()
- .get();
- mActivity = mFragment.getActivity();
- }
-
- @After
- public void tearDown() {
- ShadowStorageManager.reset();
- }
-
- @Test
- public void OnClickListener_shouldCallForget() {
- assertThat(ShadowStorageManager.isForgetCalled()).isFalse();
-
- final Button confirm = mFragment.getView().findViewById(R.id.confirm);
-
- confirm.performClick();
- final ForgetConfirmFragment confirmFragment =
- (ForgetConfirmFragment) mActivity.getSupportFragmentManager().findFragmentByTag(
- PrivateVolumeForget.TAG_FORGET_CONFIRM);
-
- assertThat(confirmFragment).isNotNull();
-
- final AlertDialog dialog = (AlertDialog) confirmFragment.getDialog();
- final Button forget = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
-
- forget.performClick();
-
- assertThat(ShadowStorageManager.isForgetCalled()).isTrue();
- }
-}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
index 7f59ef3..621ddfa 100644
--- a/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/display/ScreenTimeoutSettingsTest.java
@@ -22,6 +22,7 @@
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
@@ -34,9 +35,11 @@
import android.provider.SearchIndexableResource;
import android.provider.Settings;
+import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
+import com.android.settingslib.RestrictedLockUtils;
import org.junit.Before;
import org.junit.Test;
@@ -68,6 +71,9 @@
@Mock
AdaptiveSleepPreferenceController mAdaptiveSleepPreferenceController;
+ @Mock
+ Preference mDisableOptionsPreference;
+
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
@@ -128,6 +134,16 @@
}
@Test
+ public void updateCandidates_enforcedAdmin_showDisabledByAdminPreference() {
+ mSettings.mAdmin = new RestrictedLockUtils.EnforcedAdmin();
+ mSettings.mDisableOptionsPreference = mDisableOptionsPreference;
+
+ mSettings.updateCandidates();
+
+ verify(mPreferenceScreen, atLeast(1)).addPreference(mDisableOptionsPreference);
+ }
+
+ @Test
public void setDefaultKey_controlCurrentScreenTimeout() {
mSettings.setDefaultKey(TIMEOUT_VALUES[0]);
diff --git a/tests/robotests/src/com/android/settings/display/TimeoutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/TimeoutPreferenceControllerTest.java
deleted file mode 100644
index cf0e660..0000000
--- a/tests/robotests/src/com/android/settings/display/TimeoutPreferenceControllerTest.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.display;
-
-import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.UserHandle;
-import android.os.UserManager;
-import android.provider.Settings;
-
-import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
-import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowDevicePolicyManager.class)
-public class TimeoutPreferenceControllerTest {
-
- private static final int TIMEOUT = 30;
- private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
- private static final String DEFAULT_TIMEOUT = "300000"; // 5 minutes
-
- private Context mContext;
- @Mock
- private TimeoutListPreference mPreference;
- @Mock
- private UserManager mUserManager;
-
- private TimeoutPreferenceController mController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
- when(mPreference.getValue()).thenReturn(DEFAULT_TIMEOUT);
- mController = new TimeoutPreferenceController(mContext, KEY_SCREEN_TIMEOUT);
- }
-
- @After
- public void tearDown() {
- ShadowRestrictedLockUtilsInternal.reset();
- }
-
- @Test
- public void testOnPreferenceChange_SetTimeout_ReturnCorrectTimeout() {
- mController.onPreferenceChange(mPreference, Integer.toString(TIMEOUT));
-
- final int mode = Settings.System.getInt(mContext.getContentResolver(),
- SCREEN_OFF_TIMEOUT, 0);
- assertThat(mode).isEqualTo(TIMEOUT);
- }
-
- @Test
- public void testUpdateStateNoAdminTimeouts() {
- when(mUserManager.getProfiles(anyInt())).thenReturn(Collections.emptyList());
- mController.updateState(mPreference);
- verify(mPreference).removeUnusableTimeouts(0, null);
- }
-
- @Test
- public void testUpdateStateWithAdminTimeouts() {
- final int profileUserId = UserHandle.myUserId();
- final long timeout = 10000;
- when(mUserManager.getProfiles(profileUserId)).thenReturn(Collections.emptyList());
- ShadowDevicePolicyManager.getShadow().setMaximumTimeToLock(profileUserId, timeout);
-
- mController.updateState(mPreference);
- verify(mPreference).removeUnusableTimeouts(timeout, null);
- }
-
- @Test
- public void testUpdateStateWithAdminTimeoutsAndRestriction() {
- final int profileUserId = UserHandle.myUserId();
- final long timeout = 100;
- when(mUserManager.getProfiles(profileUserId)).thenReturn(Collections.emptyList());
- ShadowDevicePolicyManager.getShadow().setMaximumTimeToLock(profileUserId, timeout);
-
- int userId = UserHandle.myUserId();
- List<UserManager.EnforcingUser> enforcingUsers = new ArrayList<>();
- // Add two enforcing users so that RestrictedLockUtils.checkIfRestrictionEnforced returns
- // non-null.
- enforcingUsers.add(new UserManager.EnforcingUser(userId,
- UserManager.RESTRICTION_SOURCE_DEVICE_OWNER));
- enforcingUsers.add(new UserManager.EnforcingUser(userId,
- UserManager.RESTRICTION_SOURCE_PROFILE_OWNER));
- when(mUserManager.getUserRestrictionSources(
- UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT, UserHandle.of(userId)))
- .thenReturn(enforcingUsers);
-
- mController.updateState(mPreference);
-
- ArgumentCaptor<Long> longCaptor = ArgumentCaptor.forClass(Long.class);
- ArgumentCaptor<EnforcedAdmin> adminCaptor = ArgumentCaptor.forClass(EnforcedAdmin.class);
-
- verify(mPreference, times(2))
- .removeUnusableTimeouts(longCaptor.capture(), adminCaptor.capture());
- assertThat(longCaptor.getValue()).isEqualTo(0);
- assertThat(adminCaptor.getValue()).isNotNull();
- }
-
- @Test
- @Config(shadows = ShadowRestrictedLockUtilsInternal.class)
- public void updateState_selectedTimeoutLargerThanAdminMax_shouldSetSummaryToUpdatedPrefValue() {
- final int profileUserId = UserHandle.myUserId();
- final long allowedTimeout = 480000L; // 8 minutes
- when(mUserManager.getProfiles(profileUserId)).thenReturn(Collections.emptyList());
- ShadowDevicePolicyManager.getShadow().setMaximumTimeToLock(profileUserId, allowedTimeout);
- ShadowRestrictedLockUtilsInternal.setMaximumTimeToLockIsSet(true);
- final CharSequence[] timeouts = {"15000", "30000", "60000", "120000", "300000", "600000"};
- final CharSequence[] summaries = {"15s", "30s", "1m", "2m", "5m", "10m"};
- // set current timeout to be 10 minutes, which is longer than the allowed 8 minutes
- Settings.System.putLong(mContext.getContentResolver(), SCREEN_OFF_TIMEOUT, 600000L);
- when(mPreference.getEntries()).thenReturn(summaries);
- when(mPreference.getEntryValues()).thenReturn(timeouts);
- when(mPreference.getValue()).thenReturn("300000");
-
- mController.updateState(mPreference);
-
- verify(mPreference).setSummary(mContext.getString(R.string.screen_timeout_summary, "5m"));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index c81e81c..4c19477 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -259,7 +259,7 @@
false /* shortString */);
assertThat(info.isOverheated).isTrue();
- assertThat(info.chargeLabel).isEqualTo("50% - Battery limited temporarily");
+ assertThat(info.chargeLabel).isEqualTo("50% - Optimizing for battery health");
}
// Make our battery stats return a sequence of battery events.
diff --git a/tests/robotests/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceControllerTest.java
index 498c17b..80c10d0 100644
--- a/tests/robotests/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/EmergencyGestureNumberOverridePreferenceControllerTest.java
@@ -90,7 +90,7 @@
mController.updateState(preference);
- assertThat(preference.getSummary()).isEqualTo(
+ assertThat(preference.getSummary().toString()).isEqualTo(
mContext.getString(R.string.emergency_gesture_call_for_help_summary, "123"));
}
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java
index db51dff..a1c0c8f 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeBottomToNotificationPreferenceControllerTest.java
@@ -58,7 +58,7 @@
mController.setChecked(true);
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
- SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 0)).isEqualTo(1);
+ SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 1)).isEqualTo(1);
}
@Test
@@ -66,7 +66,7 @@
mController.setChecked(false);
assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
- SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 0)).isEqualTo(0);
+ SWIPE_BOTTOM_TO_NOTIFICATION_ENABLED, 1)).isEqualTo(0);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
index e139469..cbd4390 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/BluetoothDevicesSliceTest.java
@@ -97,7 +97,8 @@
// Mock the icon and detail intent of Bluetooth.
mIcon = IconCompat.createWithResource(mContext,
com.android.internal.R.drawable.ic_settings_bluetooth);
- mDetailIntent = PendingIntent.getActivity(mContext, 0, new Intent("test action"), 0);
+ mDetailIntent = PendingIntent.getActivity(mContext, 0, new Intent("test action"),
+ PendingIntent.FLAG_IMMUTABLE);
doReturn(mIcon).when(mBluetoothDevicesSlice).getBluetoothDeviceIcon(any());
doReturn(mDetailIntent).when(mBluetoothDevicesSlice).getBluetoothDetailIntent(any());
diff --git a/tests/robotests/src/com/android/settings/location/LocationIndicatorsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationIndicatorsPreferenceControllerTest.java
new file mode 100644
index 0000000..e1182fd
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/location/LocationIndicatorsPreferenceControllerTest.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.location;
+
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.provider.DeviceConfig;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.Utils;
+import com.android.settings.testutils.shadow.ShadowDeviceConfig;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+/**
+ * Unit tests for {@link LocationIndicatorsPreferenceController}.
+ */
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowDeviceConfig.class})
+public class LocationIndicatorsPreferenceControllerTest {
+ @Mock
+ PackageManager mPackageManager;
+ private Context mContext;
+ private LocationIndicatorsPreferenceController mController;
+
+ @Before
+ public void setUp() {
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mController = new LocationIndicatorsPreferenceController(mContext, "key");
+
+ MockitoAnnotations.initMocks(this);
+ when(mContext.getPackageManager()).thenReturn(mPackageManager);
+ }
+
+ @After
+ public void tearDown() {
+ ShadowDeviceConfig.reset();
+ }
+
+ /**
+ * Verify the location indicator settings are visible when location feature is supported
+ * on the device.
+ */
+ @Test
+ public void getAvailabilityStatus_locationSupported_shouldReturnAVAILABLE() {
+ when(mPackageManager.hasSystemFeature(eq(PackageManager.FEATURE_LOCATION))).thenReturn(
+ true);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+ }
+
+ /**
+ * Verify the location indicator settings are not visible when location feature is not supported
+ * on the device.
+ */
+ @Test
+ public void getAvailabilityStatus_locationNotSupported_shouldReturnUNSUPPORTED() {
+ when(mPackageManager.hasSystemFeature(eq(PackageManager.FEATURE_LOCATION))).thenReturn(
+ false);
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
+ }
+
+ /**
+ * Verify the location indicator preference is checked when the feature is enabled.
+ */
+ @Test
+ public void isChecked_featureEnabled_shouldReturnTrue() {
+ final boolean enabled = true;
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
+ Utils.PROPERTY_LOCATION_INDICATORS_ENABLED, Boolean.toString(enabled), true);
+ assertThat(mController.isChecked()).isTrue();
+ }
+
+ /**
+ * Verify the location indicator preference is unchecked when the feature is not enabled.
+ */
+ @Test
+ public void isChecked_featureNotEnabled_shouldReturnFalse() {
+ final boolean enabled = false;
+ DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
+ Utils.PROPERTY_LOCATION_INDICATORS_ENABLED, Boolean.toString(enabled), true);
+ assertThat(mController.isChecked()).isFalse();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputGroupSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputGroupSliceTest.java
deleted file mode 100644
index bb0478c..0000000
--- a/tests/robotests/src/com/android/settings/media/MediaOutputGroupSliceTest.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.media;
-
-import static android.app.slice.Slice.EXTRA_RANGE_VALUE;
-import static android.app.slice.Slice.HINT_LIST_ITEM;
-import static android.app.slice.SliceItem.FORMAT_SLICE;
-
-import static com.android.settings.media.MediaOutputGroupSlice.ACTION_MEDIA_SESSION_OPERATION;
-import static com.android.settings.media.MediaOutputGroupSlice.ACTION_VOLUME_ADJUSTMENT;
-import static com.android.settings.media.MediaOutputGroupSlice.CUSTOMIZED_ACTION;
-import static com.android.settings.media.MediaOutputGroupSlice.GROUP_DEVICES;
-import static com.android.settings.media.MediaOutputGroupSlice.MEDIA_DEVICE_ID;
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_GROUP_SLICE_URI;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.drawable.Drawable;
-import android.net.Uri;
-
-import androidx.slice.Slice;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceProvider;
-import androidx.slice.core.SliceAction;
-import androidx.slice.core.SliceQuery;
-import androidx.slice.widget.SliceLiveData;
-
-import com.android.settings.R;
-import com.android.settings.slices.SliceBackgroundWorker;
-import com.android.settingslib.media.LocalMediaManager;
-import com.android.settingslib.media.MediaDevice;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = MediaOutputGroupSliceTest.ShadowSliceBackgroundWorker.class)
-public class MediaOutputGroupSliceTest {
-
- private static final String TEST_PACKAGE_NAME = "com.test.music";
- private static final String TEST_PACKAGE_NAME2 = "com.test.music2";
- private static final String TEST_DEVICE_1_ID = "test_device_1_id";
- private static final String TEST_DEVICE_1_NAME = "test_device_1_name";
- private static final String TEST_DEVICE_2_ID = "test_device_2_id";
- private static final String TEST_DEVICE_2_NAME = "test_device_2_name";
- private static final int TEST_VOLUME = 3;
-
- private static MediaDeviceUpdateWorker sMediaDeviceUpdateWorker;
-
- @Mock
- private LocalMediaManager mLocalMediaManager;
- @Mock
- private MediaDevice mDevice1;
- @Mock
- private MediaDevice mDevice2;
-
- private final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- private final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- private final List<MediaDevice> mDeselectableDevices = new ArrayList<>();
-
- private Context mContext;
- private MediaOutputGroupSlice mMediaOutputGroupSlice;
- private Drawable mDrawable;
-
- @Before
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
-
- // Set-up specs for SliceMetadata.
- SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
-
- mMediaOutputGroupSlice = new MediaOutputGroupSlice(mContext);
- sMediaDeviceUpdateWorker = spy(new MediaDeviceUpdateWorker(mContext,
- MEDIA_OUTPUT_GROUP_SLICE_URI));
- sMediaDeviceUpdateWorker.mLocalMediaManager = mLocalMediaManager;
- when(sMediaDeviceUpdateWorker.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
- mDrawable = mContext.getDrawable(R.drawable.ic_check_box_blue_24dp);
- when(sMediaDeviceUpdateWorker.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- doReturn(false).when(sMediaDeviceUpdateWorker).hasAdjustVolumeUserRestriction();
- when(mDevice1.getId()).thenReturn(TEST_DEVICE_1_ID);
- when(mDevice1.getIcon()).thenReturn(mDrawable);
- when(mDevice1.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(mDevice1.getMaxVolume()).thenReturn(100);
- when(mDevice1.getCurrentVolume()).thenReturn(10);
- when(mDevice1.getClientPackageName()).thenReturn(TEST_PACKAGE_NAME);
- when(mDevice2.getId()).thenReturn(TEST_DEVICE_2_ID);
- when(mDevice2.getIcon()).thenReturn(mDrawable);
- when(mDevice2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(mDevice2.getMaxVolume()).thenReturn(100);
- when(mDevice2.getCurrentVolume()).thenReturn(20);
- }
-
- @Test
- public void getSlice_noMatchedDevice_doNothing() {
- mSelectableDevices.add(mDevice1);
- mSelectedDevices.add(mDevice1);
- when(mLocalMediaManager.getMediaDeviceById(mSelectableDevices, TEST_DEVICE_1_ID))
- .thenReturn(mDevice1);
- sMediaDeviceUpdateWorker.onDeviceListUpdate(mSelectableDevices);
- when(sMediaDeviceUpdateWorker.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- final Intent intent = new Intent();
- intent.putExtra(EXTRA_RANGE_VALUE, TEST_VOLUME);
- intent.putExtra(MEDIA_DEVICE_ID, TEST_DEVICE_2_ID);
- intent.putExtra(CUSTOMIZED_ACTION, ACTION_VOLUME_ADJUSTMENT);
-
- mMediaOutputGroupSlice.onNotifyChange(intent);
-
- verify(sMediaDeviceUpdateWorker, never()).adjustSessionVolume(anyInt());
- verify(mDevice1, never()).requestSetVolume(TEST_VOLUME);
- }
-
- @Test
- public void getSlice_withOneSelectableDevice_checkRowNumber() {
- mSelectableDevices.add(mDevice1);
- mSelectedDevices.add(mDevice2);
- when(sMediaDeviceUpdateWorker.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(sMediaDeviceUpdateWorker.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- final Slice slice = mMediaOutputGroupSlice.getSlice();
- final int rows = SliceQuery.findAll(slice, FORMAT_SLICE, HINT_LIST_ITEM, null).size();
-
- // Group item and 2 * InputRange
- assertThat(rows).isEqualTo(3);
- }
-
- @Test
- public void getSlice_nullWorker_noException() {
- sMediaDeviceUpdateWorker = null;
- mMediaOutputGroupSlice.getSlice();
- }
-
- @Test
- public void getSlice_withOneSelectableDevice_checkTitle() {
- mSelectableDevices.add(mDevice1);
- mSelectedDevices.add(mDevice1);
- sMediaDeviceUpdateWorker.onDeviceListUpdate(mSelectableDevices);
- when(sMediaDeviceUpdateWorker.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- final Slice slice = mMediaOutputGroupSlice.getSlice();
- final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
- final SliceAction primaryAction = metadata.getPrimaryAction();
-
- assertThat(primaryAction.getTitle().toString()).isEqualTo(GROUP_DEVICES);
- }
-
- @Test
- public void onNotifyChange_verifyAdjustDeviceVolume() {
- mSelectableDevices.add(mDevice1);
- mSelectedDevices.add(mDevice1);
- when(mLocalMediaManager.getMediaDeviceById(mSelectableDevices, TEST_DEVICE_1_ID))
- .thenReturn(mDevice1);
- sMediaDeviceUpdateWorker.onDeviceListUpdate(mSelectableDevices);
- when(sMediaDeviceUpdateWorker.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- final Intent intent = new Intent();
- intent.putExtra(EXTRA_RANGE_VALUE, TEST_VOLUME);
- intent.putExtra(MEDIA_DEVICE_ID, TEST_DEVICE_1_ID);
- intent.putExtra(CUSTOMIZED_ACTION, ACTION_VOLUME_ADJUSTMENT);
-
- mMediaOutputGroupSlice.onNotifyChange(intent);
-
- verify(mDevice1).requestSetVolume(TEST_VOLUME);
- }
-
- @Test
- public void onNotifyChange_verifyAdjustGroupVolume() {
- mSelectableDevices.add(mDevice1);
- mSelectedDevices.add(mDevice1);
- when(mLocalMediaManager.getMediaDeviceById(mSelectableDevices, TEST_DEVICE_1_ID))
- .thenReturn(mDevice1);
- sMediaDeviceUpdateWorker.onDeviceListUpdate(mSelectableDevices);
- when(sMediaDeviceUpdateWorker.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- final Intent intent = new Intent();
- intent.putExtra(EXTRA_RANGE_VALUE, TEST_VOLUME);
- intent.putExtra(MEDIA_DEVICE_ID, GROUP_DEVICES);
- intent.putExtra(CUSTOMIZED_ACTION, ACTION_VOLUME_ADJUSTMENT);
-
- mMediaOutputGroupSlice.onNotifyChange(intent);
-
- verify(sMediaDeviceUpdateWorker).adjustSessionVolume(TEST_VOLUME);
- }
-
- @Test
- public void onNotifyChange_sendSelectableDevice_verifyAddSession() {
- mSelectableDevices.add(mDevice2);
- mSelectedDevices.add(mDevice1);
- when(mLocalMediaManager.getMediaDeviceById(mSelectableDevices, TEST_DEVICE_2_ID))
- .thenReturn(mDevice2);
- sMediaDeviceUpdateWorker.onDeviceListUpdate(mSelectableDevices);
- when(sMediaDeviceUpdateWorker.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- final Intent intent = new Intent();
- intent.putExtra(MEDIA_DEVICE_ID, TEST_DEVICE_2_ID);
- intent.putExtra(CUSTOMIZED_ACTION, ACTION_MEDIA_SESSION_OPERATION);
-
- mMediaOutputGroupSlice.onNotifyChange(intent);
-
- verify(sMediaDeviceUpdateWorker).addDeviceToPlayMedia(mDevice2);
- }
-
- @Test
- public void onNotifyChange_sendDeselectableDevice_verifyRemoveSession() {
- mSelectedDevices.add(mDevice1);
- mSelectedDevices.add(mDevice2);
- mDeselectableDevices.add(mDevice1);
- mDeselectableDevices.add(mDevice2);
- when(mLocalMediaManager.getMediaDeviceById(mSelectedDevices, TEST_DEVICE_2_ID))
- .thenReturn(mDevice2);
- sMediaDeviceUpdateWorker.onDeviceListUpdate(mSelectedDevices);
- when(sMediaDeviceUpdateWorker.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(sMediaDeviceUpdateWorker.getDeselectableMediaDevice()).thenReturn(
- mDeselectableDevices);
- final Intent intent = new Intent();
- intent.putExtra(MEDIA_DEVICE_ID, TEST_DEVICE_2_ID);
- intent.putExtra(CUSTOMIZED_ACTION, ACTION_MEDIA_SESSION_OPERATION);
-
- mMediaOutputGroupSlice.onNotifyChange(intent);
-
- verify(sMediaDeviceUpdateWorker).removeDeviceFromPlayMedia(mDevice2);
- }
-
- @Test
- public void onNotifyChange_sendNonDeselectableDevice_notRemoveSession() {
- mSelectedDevices.add(mDevice1);
- mSelectedDevices.add(mDevice2);
- mDeselectableDevices.add(mDevice1);
- when(mLocalMediaManager.getMediaDeviceById(mSelectedDevices, TEST_DEVICE_2_ID))
- .thenReturn(mDevice2);
- sMediaDeviceUpdateWorker.onDeviceListUpdate(mSelectedDevices);
- when(sMediaDeviceUpdateWorker.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(sMediaDeviceUpdateWorker.getDeselectableMediaDevice()).thenReturn(
- mDeselectableDevices);
- final Intent intent = new Intent();
- intent.putExtra(MEDIA_DEVICE_ID, TEST_DEVICE_2_ID);
- intent.putExtra(CUSTOMIZED_ACTION, ACTION_MEDIA_SESSION_OPERATION);
-
- mMediaOutputGroupSlice.onNotifyChange(intent);
-
- verify(sMediaDeviceUpdateWorker, never()).removeDeviceFromPlayMedia(mDevice2);
- }
-
- @Test
- public void onNotifyChange_noId_doNothing() {
- mSelectableDevices.add(mDevice1);
- mSelectedDevices.add(mDevice1);
- when(mLocalMediaManager.getMediaDeviceById(mSelectableDevices, TEST_DEVICE_1_ID))
- .thenReturn(mDevice1);
- sMediaDeviceUpdateWorker.onDeviceListUpdate(mSelectableDevices);
- when(sMediaDeviceUpdateWorker.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- final Intent intent = new Intent();
- intent.putExtra(EXTRA_RANGE_VALUE, TEST_VOLUME);
- intent.putExtra(CUSTOMIZED_ACTION, ACTION_VOLUME_ADJUSTMENT);
-
- mMediaOutputGroupSlice.onNotifyChange(intent);
-
- verify(sMediaDeviceUpdateWorker, never()).adjustSessionVolume(anyInt());
- verify(mDevice1, never()).requestSetVolume(TEST_VOLUME);
- }
-
- @Implements(SliceBackgroundWorker.class)
- public static class ShadowSliceBackgroundWorker {
-
- @Implementation
- public static SliceBackgroundWorker getInstance(Uri uri) {
- return sMediaDeviceUpdateWorker;
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java b/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
deleted file mode 100644
index 0a8ffa7..0000000
--- a/tests/robotests/src/com/android/settings/media/MediaOutputSliceTest.java
+++ /dev/null
@@ -1,607 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package com.android.settings.media;
-
-import static android.app.slice.Slice.EXTRA_RANGE_VALUE;
-import static android.app.slice.Slice.HINT_LIST_ITEM;
-import static android.app.slice.SliceItem.FORMAT_SLICE;
-
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.bluetooth.BluetoothAdapter;
-import android.content.Context;
-import android.content.Intent;
-import android.graphics.drawable.Drawable;
-import android.media.AudioManager;
-import android.text.TextUtils;
-
-import androidx.slice.Slice;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceProvider;
-import androidx.slice.core.SliceAction;
-import androidx.slice.core.SliceQuery;
-import androidx.slice.widget.SliceLiveData;
-
-import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
-import com.android.settingslib.media.LocalMediaManager;
-import com.android.settingslib.media.MediaDevice;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadow.api.Shadow;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowBluetoothAdapter.class})
-public class MediaOutputSliceTest {
-
- private static final String TEST_DEVICE_1_ID = "test_device_1_id";
- private static final String TEST_DEVICE_2_ID = "test_device_2_id";
- private static final String TEST_DEVICE_1_NAME = "test_device_1_name";
- private static final String TEST_DEVICE_2_NAME = "test_device_2_name";
- private static final int TEST_DEVICE_1_ICON =
- com.android.internal.R.drawable.ic_bt_headphones_a2dp;
-
- @Mock
- private LocalMediaManager mLocalMediaManager;
- @Mock
- private Drawable mTestDrawable;
-
- private final List<MediaDevice> mDevices = new ArrayList<>();
-
- private Context mContext;
- private MediaOutputSlice mMediaOutputSlice;
- private MediaDeviceUpdateWorker mMediaDeviceUpdateWorker;
- private ShadowBluetoothAdapter mShadowBluetoothAdapter;
- private AudioManager mAudioManager;
-
- @Before
- public void setUp() throws Exception {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
- mAudioManager.setMode(AudioManager.MODE_NORMAL);
-
- // Set-up specs for SliceMetadata.
- SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
- // Setup BluetoothAdapter
- mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
- mShadowBluetoothAdapter.setEnabled(true);
-
- mMediaOutputSlice = new MediaOutputSlice(mContext);
- mMediaDeviceUpdateWorker = spy(new MediaDeviceUpdateWorker(mContext,
- MEDIA_OUTPUT_SLICE_URI));
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
- mMediaDeviceUpdateWorker.mLocalMediaManager = mLocalMediaManager;
- doReturn(false).when(mMediaDeviceUpdateWorker).hasAdjustVolumeUserRestriction();
- mMediaOutputSlice.init(mMediaDeviceUpdateWorker);
- }
-
- @Test
- public void getSlice_workerIsNull_shouldReturnZeroRow() {
- mMediaOutputSlice.init(null);
-
- final Slice slice = mMediaOutputSlice.getSlice();
-
- final int rows = SliceQuery.findAll(slice, FORMAT_SLICE, HINT_LIST_ITEM,
- null /* nonHints */).size();
-
- assertThat(rows).isEqualTo(0);
- }
-
- @Test
- public void getSlice_bluetoothIsDisable_shouldReturnZeroRow() {
- mShadowBluetoothAdapter.setEnabled(false);
-
- final Slice slice = mMediaOutputSlice.getSlice();
-
- final int rows = SliceQuery.findAll(slice, FORMAT_SLICE, HINT_LIST_ITEM,
- null /* nonHints */).size();
-
- assertThat(rows).isEqualTo(0);
- }
-
- @Test
- public void getSlice_audioModeIsOngoingCall_shouldReturnZeroRow() {
- mAudioManager.setMode(AudioManager.MODE_IN_CALL);
-
- final Slice slice = mMediaOutputSlice.getSlice();
-
- final int rows = SliceQuery.findAll(slice, FORMAT_SLICE, HINT_LIST_ITEM,
- null /* nonHints */).size();
-
- assertThat(rows).isEqualTo(0);
- }
-
- @Test
- public void getSlice_shouldHaveActiveDeviceName() {
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(false);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mDevices.add(device);
- mDevices.add(device2);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
- final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
-
- final SliceAction primaryAction = metadata.getPrimaryAction();
- assertThat(primaryAction.getTitle().toString()).isEqualTo(TEST_DEVICE_1_NAME);
- }
-
- @Test
- public void getSlice_disconnectedBluetooth_verifyTitle() {
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(false);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(false);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mDevices.add(device);
- mDevices.add(device2);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
- final SliceMetadata metadata = SliceMetadata.from(mContext, mediaSlice);
-
- final SliceAction primaryAction = metadata.getPrimaryAction();
- assertThat(primaryAction.getTitle().toString()).isEqualTo(mContext.getString(
- R.string.media_output_disconnected_status, TEST_DEVICE_1_NAME));
- }
-
- @Test
- public void getSlice_inGroupState_checkSliceSize() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(true);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mSelectedDevices.add(device);
- mSelectedDevices.add(device2);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- mDevices.add(device2);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- when(mMediaDeviceUpdateWorker.getSessionVolumeMax()).thenReturn(100);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
-
- assertThat(SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM, null).size())
- .isEqualTo(mDevices.size() + 1);
- }
-
- @Test
- public void getSlice_notInGroupState_checkSliceSize() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(true);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mSelectedDevices.add(device);
- mSelectableDevices.add(device2);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- mDevices.add(device2);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
-
- assertThat(SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM, null).size())
- .isEqualTo(mDevices.size());
- }
-
- @Test
- public void getSlice_singleCastDevice_notContainGroupIconText() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(null);
- mSelectedDevices.add(device);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
-
- final String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
- null).toString();
-
- assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(R.string.add))).isEqualTo(-1);
- }
-
- @Test
- public void getSlice_multipleCastDevices_containGroupIconText() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(true);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mSelectedDevices.add(device);
- mSelectableDevices.add(device2);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- mDevices.add(device2);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
- String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
- null).toString();
-
- assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(R.string.add))).isNotEqualTo(-1);
- }
-
- @Test
- public void getSlice_onTransferring_containTransferringSubtitle() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(false);
- when(device2.getState()).thenReturn(LocalMediaManager.MediaDeviceState.STATE_CONNECTING);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mSelectedDevices.add(device);
- mSelectableDevices.add(device2);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- mDevices.add(device2);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
- final String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
- null).toString();
-
- assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(R.string.media_output_switching)))
- .isNotEqualTo(-1);
- }
-
- @Test
- public void getSlice_onTransferringFailed_containFailedSubtitle() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(false);
- when(device2.getState()).thenReturn(LocalMediaManager.MediaDeviceState
- .STATE_CONNECTING_FAILED);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mSelectedDevices.add(device);
- mSelectableDevices.add(device2);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- mDevices.add(device2);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
- final String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
- null).toString();
-
- assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(
- R.string.media_output_switch_error_text))).isNotEqualTo(-1);
- }
-
- @Test
- public void getSlice_zeroState_containPairingText() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_PHONE_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- mSelectedDevices.add(device);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
- String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
- null).toString();
-
- assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(
- R.string.bluetooth_pairing_pref_title))).isNotEqualTo(-1);
- }
-
- @Test
- public void getSlice_twoConnectedDevices_notContainPairingText() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(true);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_CAST_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mSelectedDevices.add(device);
- mSelectableDevices.add(device2);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- mDevices.add(device2);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
- String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
- null).toString();
-
- assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(
- R.string.bluetooth_pairing_pref_title))).isEqualTo(-1);
- }
-
- @Test
- public void getSlice_disconnectedBtOnTransferring_containTransferringSubtitle() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(false);
- when(device2.getState()).thenReturn(LocalMediaManager.MediaDeviceState.STATE_CONNECTING);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mSelectedDevices.add(device);
- mSelectableDevices.add(device2);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- mDevices.add(device2);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
- final String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
- null).toString();
-
- assertThat(TextUtils.indexOf(sliceInfo, mContext.getText(R.string.media_output_switching)))
- .isNotEqualTo(-1);
- }
-
- @Test
- public void getSlice_disconnectedBtOnTransferringFailed_containTransferringFailedSubtitle() {
- final List<MediaDevice> mSelectedDevices = new ArrayList<>();
- final List<MediaDevice> mSelectableDevices = new ArrayList<>();
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getName()).thenReturn(TEST_DEVICE_1_NAME);
- when(device.getIcon()).thenReturn(mTestDrawable);
- when(device.getMaxVolume()).thenReturn(100);
- when(device.isConnected()).thenReturn(true);
- when(device.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- final MediaDevice device2 = mock(MediaDevice.class);
- when(device2.getName()).thenReturn(TEST_DEVICE_2_NAME);
- when(device2.getIcon()).thenReturn(mTestDrawable);
- when(device2.getMaxVolume()).thenReturn(100);
- when(device2.isConnected()).thenReturn(false);
- when(device2.getState()).thenReturn(
- LocalMediaManager.MediaDeviceState.STATE_CONNECTING_FAILED);
- when(device2.getDeviceType()).thenReturn(MediaDevice.MediaDeviceType.TYPE_BLUETOOTH_DEVICE);
- when(device2.getId()).thenReturn(TEST_DEVICE_2_ID);
- mSelectedDevices.add(device);
- mSelectableDevices.add(device2);
- when(mLocalMediaManager.getCurrentConnectedDevice()).thenReturn(device);
- mDevices.add(device);
- mDevices.add(device2);
- when(mLocalMediaManager.getSelectedMediaDevice()).thenReturn(mSelectedDevices);
- when(mLocalMediaManager.getSelectableMediaDevice()).thenReturn(mSelectableDevices);
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Slice mediaSlice = mMediaOutputSlice.getSlice();
- final String sliceInfo = SliceQuery.findAll(mediaSlice, FORMAT_SLICE, HINT_LIST_ITEM,
- null).toString();
-
- assertThat(TextUtils.indexOf(sliceInfo,
- mContext.getText(R.string.bluetooth_connect_failed))).isNotEqualTo(-1);
- }
-
- @Test
- public void onNotifyChange_foundMediaDevice_connect() {
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- when(mLocalMediaManager.getMediaDeviceById(mDevices, TEST_DEVICE_1_ID)).thenReturn(device);
- mDevices.add(device);
-
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Intent intent = new Intent();
- intent.putExtra("media_device_id", TEST_DEVICE_1_ID);
-
- mMediaOutputSlice.onNotifyChange(intent);
-
- verify(mLocalMediaManager).connectDevice(device);
- }
-
- @Test
- public void onNotifyChange_notFoundMediaDevice_doNothing() {
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- when(mLocalMediaManager.getMediaDeviceById(mDevices, TEST_DEVICE_1_ID)).thenReturn(device);
- mDevices.add(device);
-
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Intent intent = new Intent();
- intent.putExtra("media_device_id", "fake_123");
-
- mMediaOutputSlice.onNotifyChange(intent);
-
- verify(mLocalMediaManager, never()).connectDevice(device);
- }
-
- @Test
- public void onNotifyChange_adjustVolume() {
- mDevices.clear();
- final MediaDevice device = mock(MediaDevice.class);
- when(device.getId()).thenReturn(TEST_DEVICE_1_ID);
- when(mLocalMediaManager.getMediaDeviceById(mDevices, TEST_DEVICE_1_ID)).thenReturn(device);
- mDevices.add(device);
-
- mMediaDeviceUpdateWorker.onDeviceListUpdate(mDevices);
-
- final Intent intent = new Intent();
- intent.putExtra("media_device_id", TEST_DEVICE_1_ID);
- intent.putExtra(EXTRA_RANGE_VALUE, 30);
-
- mMediaOutputSlice.onNotifyChange(intent);
-
- verify(device).requestSetVolume(30);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java
deleted file mode 100644
index cb68e2a..0000000
--- a/tests/robotests/src/com/android/settings/network/AirplaneModePreferenceControllerTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.provider.Settings;
-import android.provider.SettingsSlicesContract;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.AirplaneModeEnabler;
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settingslib.RestrictedSwitchPreference;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-public class AirplaneModePreferenceControllerTest {
-
- private static final int ON = 1;
- private static final int OFF = 0;
-
- @Mock
- private PackageManager mPackageManager;
- @Mock
- private AirplaneModeEnabler mAirplaneModeEnabler;
- private Context mContext;
- private ContentResolver mResolver;
- private PreferenceManager mPreferenceManager;
- private PreferenceScreen mScreen;
- private RestrictedSwitchPreference mPreference;
- private AirplaneModePreferenceController mController;
- private LifecycleOwner mLifecycleOwner;
- private Lifecycle mLifecycle;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- FakeFeatureFactory.setupForTest();
- mContext = spy(RuntimeEnvironment.application);
- mResolver = RuntimeEnvironment.application.getContentResolver();
- doReturn(mPackageManager).when(mContext).getPackageManager();
- mController = new AirplaneModePreferenceController(mContext,
- SettingsSlicesContract.KEY_AIRPLANE_MODE);
-
- mPreferenceManager = new PreferenceManager(mContext);
- mScreen = mPreferenceManager.createPreferenceScreen(mContext);
- mPreference = new RestrictedSwitchPreference(mContext);
- mPreference.setKey(SettingsSlicesContract.KEY_AIRPLANE_MODE);
- mScreen.addPreference(mPreference);
- mController.setFragment(null);
- mLifecycleOwner = () -> mLifecycle;
- mLifecycle = new Lifecycle(mLifecycleOwner);
- mLifecycle.addObserver(mController);
- }
-
- @Test
- public void getSliceUri_shouldUsePlatformAuthority() {
- assertThat(mController.getSliceUri().getAuthority())
- .isEqualTo(SettingsSlicesContract.AUTHORITY);
- }
-
- @Test
- @Config(qualifiers = "mcc999")
- public void airplaneModePreference_shouldNotBeAvailable_ifSetToNotVisible() {
- assertThat(mController.getAvailabilityStatus())
- .isNotEqualTo(BasePreferenceController.AVAILABLE);
-
- mController.displayPreference(mScreen);
-
- // This should not crash
- mController.onStart();
- mController.onStop();
- }
-
- @Test
- public void airplaneModePreference_shouldNotBeAvailable_ifHasLeanbackFeature() {
- when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK)).thenReturn(true);
- assertThat(mController.getAvailabilityStatus())
- .isNotEqualTo(BasePreferenceController.AVAILABLE);
-
- mController.displayPreference(mScreen);
-
- // This should not crash
- mController.onStart();
- mController.onStop();
- }
-
- @Test
- public void airplaneModePreference_shouldBeAvailable_ifNoLeanbackFeature() {
- when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK)).thenReturn(false);
- assertThat(mController.getAvailabilityStatus())
- .isEqualTo(BasePreferenceController.AVAILABLE);
- }
-
- @Test
- public void airplaneModePreference_testSetValue_updatesCorrectly() {
-
- // Set airplane mode ON by setChecked
- mController.setAirplaneModeEnabler(mAirplaneModeEnabler);
- assertThat(mController.setChecked(true)).isTrue();
-
- // Check return value if set same status.
- when(mAirplaneModeEnabler.isAirplaneModeOn()).thenReturn(true);
- assertThat(mController.setChecked(true)).isFalse();
-
- // Set to OFF
- assertThat(mController.setChecked(false)).isTrue();
- }
-
- @Test
- public void airplaneModePreference_testGetValue_correctValueReturned() {
- // Set airplane mode ON
- Settings.Global.putInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, ON);
-
- mController.displayPreference(mScreen);
- mController.onStart();
-
- assertThat(mController.isChecked()).isTrue();
-
- Settings.Global.putInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF);
- assertThat(mController.isChecked()).isFalse();
- }
-
- @Test
- public void airplaneModePreference_testPreferenceUI_updatesCorrectly() {
- // Airplane mode default off
- Settings.Global.putInt(mResolver, Settings.Global.AIRPLANE_MODE_ON, OFF);
-
- mController.displayPreference(mScreen);
- mController.onStop();
-
- assertThat(mPreference.isChecked()).isFalse();
-
- mController.onAirplaneModeChanged(true);
-
- assertThat(mPreference.isChecked()).isTrue();
- }
-
- @Test
- public void isSliceable_returnsTrue() {
- assertThat(mController.isSliceable()).isTrue();
- }
-
- @Test
- public void isPublicSlice_returnsTrue() {
- assertThat(mController.isPublicSlice()).isTrue();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/DataConnectivityListenerTest.java b/tests/robotests/src/com/android/settings/network/DataConnectivityListenerTest.java
deleted file mode 100644
index b45e28c..0000000
--- a/tests/robotests/src/com/android/settings/network/DataConnectivityListenerTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.settings.network;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.net.Network;
-import android.net.NetworkCapabilities;
-import android.net.NetworkRequest;
-import android.os.Handler;
-
-import com.android.settings.network.telephony.DataConnectivityListener;
-
-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 DataConnectivityListenerTest {
- @Mock
- private DataConnectivityListener.Client mClient;
- @Mock
- private ConnectivityManager mConnectivityManager;
- @Mock
- private Network mActiveNetwork;
-
- private Context mContext;
- private DataConnectivityListener mListener;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- when(mContext.getSystemService(ConnectivityManager.class)).thenReturn(mConnectivityManager);
- when(mConnectivityManager.getActiveNetwork()).thenReturn(mActiveNetwork);
- mListener = new DataConnectivityListener(mContext, mClient);
- }
-
- @Test
- public void noStart_doesNotRegister() {
- verify(mConnectivityManager, never()).registerNetworkCallback(any(NetworkRequest.class),
- any(ConnectivityManager.NetworkCallback.class), any(Handler.class));
- }
-
- @Test
- public void start_doesRegister() {
- mListener.start();
- verify(mConnectivityManager).registerNetworkCallback(any(NetworkRequest.class),
- eq(mListener), any(Handler.class));
- }
-
- @Test
- public void onCapabilitiesChanged_notActiveNetwork_noCallback() {
- Network changedNetwork = mock(Network.class);
- mListener.onCapabilitiesChanged(changedNetwork, mock(NetworkCapabilities.class));
- verify(mClient, never()).onDataConnectivityChange();
- }
-
- @Test
- public void onCapabilitiesChanged_activeNetwork_onDataConnectivityChangeFires() {
- mListener.onCapabilitiesChanged(mActiveNetwork, mock(NetworkCapabilities.class));
- verify(mClient).onDataConnectivityChange();
- }
-
- @Test
- public void onLosing_notActiveNetwork_onDataConnectivityChangeFires() {
- Network changedNetwork = mock(Network.class);
- mListener.onLosing(changedNetwork, 500);
- verify(mClient).onDataConnectivityChange();
- }
-
- @Test
- public void onLosing_activeNetwork_onDataConnectivityChangeFires() {
- mListener.onLosing(mActiveNetwork, 500);
- verify(mClient).onDataConnectivityChange();
- }
-
- @Test
- public void onLost_notActiveNetwork_onDataConnectivityChangeFires() {
- Network changedNetwork = mock(Network.class);
- mListener.onLost(changedNetwork);
- verify(mClient).onDataConnectivityChange();
- }
-
- @Test
- public void onLost_activeNetwork_onDataConnectivityChangeFires() {
- mListener.onLost(mActiveNetwork);
- verify(mClient).onDataConnectivityChange();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/GlobalSettingsChangeListenerTest.java b/tests/robotests/src/com/android/settings/network/GlobalSettingsChangeListenerTest.java
deleted file mode 100644
index e419071..0000000
--- a/tests/robotests/src/com/android/settings/network/GlobalSettingsChangeListenerTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import android.content.Context;
-import android.os.Looper;
-import android.provider.Settings;
-
-import androidx.lifecycle.Lifecycle;
-
-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 GlobalSettingsChangeListenerTest {
-
- @Mock
- private Lifecycle mLifecycle;
-
- private Context mContext;
- private GlobalSettingsChangeListener mListener;
-
- private static final String SETTINGS_FIELD = Settings.Global.AIRPLANE_MODE_ON;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- mListener = spy(new GlobalSettingsChangeListener(Looper.getMainLooper(),
- mContext, SETTINGS_FIELD) {
- public void onChanged(String field) {}
- });
-
- doNothing().when(mLifecycle).addObserver(mListener);
- doNothing().when(mLifecycle).removeObserver(mListener);
- }
-
- @Test
- public void whenChanged_onChangedBeenCalled() {
- mListener.onChange(false);
- verify(mListener, times(1)).onChanged(SETTINGS_FIELD);
- }
-
- @Test
- public void whenNotifyChangeBasedOnLifecycle_onStopEvent_onChangedNotCalled() {
- mListener.notifyChangeBasedOn(mLifecycle);
- mListener.onStart();
-
- mListener.onChange(false);
- verify(mListener, times(1)).onChanged(SETTINGS_FIELD);
-
- mListener.onStop();
-
- mListener.onChange(false);
- verify(mListener, times(1)).onChanged(SETTINGS_FIELD);
-
- mListener.onStart();
-
- mListener.onChange(false);
- verify(mListener, times(2)).onChanged(SETTINGS_FIELD);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
deleted file mode 100644
index 6d46f9c..0000000
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.settings.network;
-
-import static androidx.lifecycle.Lifecycle.Event.ON_START;
-import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.robolectric.shadow.api.Shadow.extract;
-
-import android.content.Context;
-import android.net.ConnectivityManager;
-import android.os.UserManager;
-import android.provider.Settings;
-import android.provider.Settings.Global;
-import android.telephony.PhoneStateListener;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.testutils.shadow.ShadowConnectivityManager;
-import com.android.settings.testutils.shadow.ShadowUserManager;
-import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-import com.android.settingslib.RestrictedPreference;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowConnectivityManager.class, ShadowUserManager.class})
-public class MobileNetworkPreferenceControllerTest {
-
- private Context mContext;
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private PreferenceScreen mScreen;
-
- private Lifecycle mLifecycle;
- private LifecycleOwner mLifecycleOwner;
- private MobileNetworkPreferenceController mController;
- private Preference mPreference;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- mLifecycleOwner = () -> mLifecycle;
- mLifecycle = new Lifecycle(mLifecycleOwner);
- when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
- when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
- mPreference = new Preference(mContext);
- mPreference.setKey(MobileNetworkPreferenceController.KEY_MOBILE_NETWORK_SETTINGS);
- }
-
- @Test
- public void secondaryUser_prefIsNotAvailable() {
- ShadowUserManager userManager = extract(mContext.getSystemService(UserManager.class));
- userManager.setIsAdminUser(false);
- ShadowConnectivityManager connectivityManager =
- extract(mContext.getSystemService(ConnectivityManager.class));
- connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, true);
-
- mController = new MobileNetworkPreferenceController(mContext);
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void wifiOnly_prefIsNotAvailable() {
- ShadowUserManager userManager = extract(mContext.getSystemService(UserManager.class));
- userManager.setIsAdminUser(true);
- ShadowConnectivityManager connectivityManager =
- extract(mContext.getSystemService(ConnectivityManager.class));
- connectivityManager.setNetworkSupported(ConnectivityManager.TYPE_MOBILE, false);
-
- mController = new MobileNetworkPreferenceController(mContext);
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void goThroughLifecycle_isAvailable_shouldListenToServiceChange() {
- mController = spy(new MobileNetworkPreferenceController(mContext));
- mLifecycle.addObserver(mController);
- doReturn(true).when(mController).isAvailable();
-
- mLifecycle.handleLifecycleEvent(ON_START);
- verify(mTelephonyManager).listen(mController.mPhoneStateListener,
- PhoneStateListener.LISTEN_SERVICE_STATE);
-
- mLifecycle.handleLifecycleEvent(ON_STOP);
- verify(mTelephonyManager).listen(mController.mPhoneStateListener,
- PhoneStateListener.LISTEN_NONE);
- }
-
- @Test
- public void serviceStateChange_shouldUpdatePrefSummary() {
- final String testCarrierName = "test";
- final Preference mPreference = mock(Preference.class);
- mController = spy(new MobileNetworkPreferenceController(mContext));
- mLifecycle.addObserver(mController);
-
- when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
- doReturn(true).when(mController).isAvailable();
-
- // Display pref and go through lifecycle to set up listener.
- mController.displayPreference(mScreen);
- mLifecycle.handleLifecycleEvent(ON_START);
- verify(mController).onStart();
- verify(mTelephonyManager).listen(mController.mPhoneStateListener,
- PhoneStateListener.LISTEN_SERVICE_STATE);
-
- doReturn(testCarrierName).when(mController).getSummary();
-
- mController.mPhoneStateListener.onServiceStateChanged(null);
-
- // Carrier name should be set.
- verify(mPreference).setSummary(testCarrierName);
- }
-
- @Test
- public void airplaneModeTurnedOn_shouldDisablePreference() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Global.AIRPLANE_MODE_ON, 1);
- mController = spy(new MobileNetworkPreferenceController(mContext));
- final RestrictedPreference mPreference = new RestrictedPreference(mContext);
- mController.updateState(mPreference);
- assertThat(mPreference.isEnabled()).isFalse();
- }
-
- @Test
- public void airplaneModeTurnedOffAndNoUserRestriction_shouldEnablePreference() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Global.AIRPLANE_MODE_ON, 0);
- mController = spy(new MobileNetworkPreferenceController(mContext));
- final RestrictedPreference mPreference = new RestrictedPreference(mContext);
- mPreference.setDisabledByAdmin(null);
- mController.updateState(mPreference);
- assertThat(mPreference.isEnabled()).isTrue();
- }
-
- @Test
- public void airplaneModeTurnedOffAndHasUserRestriction_shouldDisablePreference() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Global.AIRPLANE_MODE_ON, 0);
- mController = spy(new MobileNetworkPreferenceController(mContext));
- final RestrictedPreference mPreference = new RestrictedPreference(mContext);
- mPreference.setDisabledByAdmin(EnforcedAdmin.MULTIPLE_ENFORCED_ADMIN);
- mController.updateState(mPreference);
- assertThat(mPreference.isEnabled()).isFalse();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
index 6cf5896..a32f981 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkSummaryControllerTest.java
@@ -45,7 +45,6 @@
import androidx.lifecycle.Lifecycle;
import androidx.preference.PreferenceScreen;
-import com.android.settings.core.FeatureFlags;
import com.android.settings.network.telephony.MobileNetworkActivity;
import com.android.settings.widget.AddPreference;
import com.android.settingslib.RestrictedLockUtils;
@@ -171,6 +170,7 @@
}
@Test
+ @Ignore
public void getSummary_oneInactivePSim_cannotDisablePsim_correctSummaryAndClickHandler() {
final SubscriptionInfo sub1 = mock(SubscriptionInfo.class);
when(sub1.getSubscriptionId()).thenReturn(1);
diff --git a/tests/robotests/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java
deleted file mode 100644
index ab34087..0000000
--- a/tests/robotests/src/com/android/settings/network/MobilePlanPreferenceControllerTest.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import com.android.settings.R;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class MobilePlanPreferenceControllerTest {
-
- @Test
- public void testNoProvisionStringFormattedCorrectly() {
- final String operator = "test_operator";
- final Context context = RuntimeEnvironment.application;
- assertThat(context.getString(R.string.mobile_no_provisioning_url, operator, operator))
- .contains(operator);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/MultiNetworkHeaderControllerTest.java b/tests/robotests/src/com/android/settings/network/MultiNetworkHeaderControllerTest.java
deleted file mode 100644
index 47935d0..0000000
--- a/tests/robotests/src/com/android/settings/network/MultiNetworkHeaderControllerTest.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.telephony.SubscriptionManager;
-
-import com.android.settings.wifi.WifiConnectionPreferenceController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.List;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceScreen;
-
-@RunWith(RobolectricTestRunner.class)
-public class MultiNetworkHeaderControllerTest {
- private static final String KEY_HEADER = "multi_network_header";
- private static final int EXPANDED_CHILDREN_COUNT = 5;
-
- @Mock
- private PreferenceScreen mPreferenceScreen;
- @Mock
- private PreferenceCategory mPreferenceCategory;
- @Mock
- private WifiConnectionPreferenceController mWifiController;
- @Mock
- private SubscriptionsPreferenceController mSubscriptionsController;
- @Mock
- private SubscriptionManager mSubscriptionManager;
-
- private Context mContext;
- private LifecycleOwner mLifecycleOwner;
- private Lifecycle mLifecycle;
- private MultiNetworkHeaderController mHeaderController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- mLifecycleOwner = () -> mLifecycle;
- mLifecycle = new Lifecycle(mLifecycleOwner);
- when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
- when(mPreferenceScreen.findPreference(eq(KEY_HEADER))).thenReturn(mPreferenceCategory);
- when(mPreferenceCategory.getPreferenceCount()).thenReturn(3);
- when(mPreferenceScreen.getInitialExpandedChildrenCount()).thenReturn(
- EXPANDED_CHILDREN_COUNT);
-
- mHeaderController = spy(new MultiNetworkHeaderController(mContext, KEY_HEADER));
- doReturn(mWifiController).when(mHeaderController).createWifiController(mLifecycle);
- doReturn(mSubscriptionsController).when(mHeaderController).createSubscriptionsController(
- mLifecycle);
- }
-
- @Test
- public void isAvailable_beforeInitIsCalled_notAvailable() {
- assertThat(mHeaderController.isAvailable()).isFalse();
- }
-
- // When calling displayPreference, the header itself should only be visible if the
- // subscriptions controller says it is available. This is a helper for test cases of this logic.
- private void displayPreferenceTest(boolean wifiAvailable, boolean subscriptionsAvailable,
- boolean setVisibleExpectedValue) {
- when(mWifiController.isAvailable()).thenReturn(wifiAvailable);
- when(mSubscriptionsController.isAvailable()).thenReturn(subscriptionsAvailable);
-
- mHeaderController.init(mLifecycle);
- mHeaderController.displayPreference(mPreferenceScreen);
- verify(mPreferenceCategory, never()).setVisible(eq(!setVisibleExpectedValue));
- verify(mPreferenceCategory, atLeastOnce()).setVisible(eq(setVisibleExpectedValue));
- }
-
- @Test
- public void displayPreference_bothNotAvailable_categoryIsNotVisible() {
- displayPreferenceTest(false, false, false);
- }
-
- @Test
- public void displayPreference_wifiAvailableButNotSubscriptions_categoryIsNotVisible() {
- displayPreferenceTest(true, false, false);
- }
-
- @Test
- public void displayPreference_subscriptionsAvailableButNotWifi_categoryIsVisible() {
- displayPreferenceTest(false, true, true);
- }
-
- @Test
- public void displayPreference_bothAvailable_categoryIsVisible() {
- displayPreferenceTest(true, true, true);
- }
-
- @Test
- public void onChildUpdated_subscriptionsBecameAvailable_categoryIsVisible() {
- when(mSubscriptionsController.isAvailable()).thenReturn(false);
- mHeaderController.init(mLifecycle);
- mHeaderController.displayPreference(mPreferenceScreen);
-
- when(mSubscriptionsController.isAvailable()).thenReturn(true);
- mHeaderController.onChildrenUpdated();
- ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
-
- verify(mPreferenceCategory, atLeastOnce()).setVisible(captor.capture());
- List<Boolean> values = captor.getAllValues();
- assertThat(values.get(values.size()-1)).isEqualTo(Boolean.TRUE);
-
- ArgumentCaptor<Integer> expandedCountCaptor = ArgumentCaptor.forClass(Integer.class);
- verify(mPreferenceScreen).setInitialExpandedChildrenCount(expandedCountCaptor.capture());
- assertThat(expandedCountCaptor.getValue()).isEqualTo(
- EXPANDED_CHILDREN_COUNT + mPreferenceCategory.getPreferenceCount());
- }
-
- @Test
- public void onChildUpdated_subscriptionsBecameUnavailable_categoryIsNotVisible() {
- when(mSubscriptionsController.isAvailable()).thenReturn(true);
- mHeaderController.init(mLifecycle);
- mHeaderController.displayPreference(mPreferenceScreen);
-
- when(mSubscriptionsController.isAvailable()).thenReturn(false);
- mHeaderController.onChildrenUpdated();
- ArgumentCaptor<Boolean> captor = ArgumentCaptor.forClass(Boolean.class);
-
- verify(mPreferenceCategory, atLeastOnce()).setVisible(captor.capture());
- List<Boolean> values = captor.getAllValues();
- assertThat(values.get(values.size()-1)).isEqualTo(Boolean.FALSE);
-
- ArgumentCaptor<Integer> expandedCountCaptor = ArgumentCaptor.forClass(Integer.class);
- verify(mPreferenceScreen).setInitialExpandedChildrenCount(expandedCountCaptor.capture());
- assertThat(expandedCountCaptor.getValue()).isEqualTo(EXPANDED_CHILDREN_COUNT);
- }
-
- @Test
- public void onChildUpdated_noExpandedChildCountAndAvailable_doesNotSetExpandedCount() {
- when(mPreferenceScreen.getInitialExpandedChildrenCount()).thenReturn(Integer.MAX_VALUE);
-
- when(mSubscriptionsController.isAvailable()).thenReturn(false);
- mHeaderController.init(mLifecycle);
- mHeaderController.displayPreference(mPreferenceScreen);
-
- when(mSubscriptionsController.isAvailable()).thenReturn(true);
- mHeaderController.onChildrenUpdated();
-
- verify(mPreferenceScreen, never()).setInitialExpandedChildrenCount(anyInt());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
deleted file mode 100644
index e84d286..0000000
--- a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.provider.SearchIndexableResource;
-
-import com.android.settingslib.drawer.CategoryKey;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class NetworkDashboardFragmentTest {
-
- private Context mContext;
-
- private NetworkDashboardFragment mFragment;
-
- @Before
- public void setUp() {
- mContext = RuntimeEnvironment.application;
- mFragment = new NetworkDashboardFragment();
- }
-
- @Test
- public void getCategoryKey_isNetwork() {
- assertThat(mFragment.getCategoryKey()).isEqualTo(CategoryKey.CATEGORY_NETWORK);
- }
-
- @Test
- public void getXmlResourcesToIndex_shouldIncludeFragmentXml() {
- final List<SearchIndexableResource> indexRes =
- NetworkDashboardFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
- mContext,
- true /* enabled */);
-
- assertThat(indexRes).hasSize(1);
- assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkScorerPickerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/NetworkScorerPickerPreferenceControllerTest.java
deleted file mode 100644
index 3593cf7..0000000
--- a/tests/robotests/src/com/android/settings/network/NetworkScorerPickerPreferenceControllerTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.net.NetworkScoreManager;
-import android.net.NetworkScorerAppData;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
-
-import java.util.Collections;
-
-@RunWith(RobolectricTestRunner.class)
-public class NetworkScorerPickerPreferenceControllerTest {
-
- private static final String TEST_SCORER_PACKAGE = "Test Package";
- private static final String TEST_SCORER_CLASS = "Test Class";
- private static final String TEST_SCORER_LABEL = "Test Label";
-
- private Context mContext;
- @Mock
- private NetworkScoreManager mNetworkScorer;
- private NetworkScorerPickerPreferenceController mController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
- mController = new NetworkScorerPickerPreferenceController(mContext, "test_key");
- ReflectionHelpers.setField(mController, "mNetworkScoreManager", mNetworkScorer);
- }
-
- @Test
- public void testIsAvailable_shouldAlwaysReturnTrue() {
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- public void updateState_preferenceSetSummaryAsActiveScorerLabel() {
- ComponentName scorer = new ComponentName(TEST_SCORER_PACKAGE, TEST_SCORER_CLASS);
- NetworkScorerAppData scorerAppData = new NetworkScorerAppData(
- 0, scorer, TEST_SCORER_LABEL, null /* enableUseOpenWifiActivity */,
- null /* networkAvailableNotificationChannelId */);
- when(mNetworkScorer.getAllValidScorers())
- .thenReturn(Collections.singletonList(scorerAppData));
- when(mNetworkScorer.getActiveScorer()).thenReturn(scorerAppData);
- Preference preference = mock(Preference.class);
-
- mController.updateState(preference);
-
- verify(preference).setSummary(TEST_SCORER_LABEL);
- }
-
- @Test
- public void updateState_scorersAvailable_noActiveScorer_preferenceSetSummaryToNone() {
- ComponentName scorer = new ComponentName(TEST_SCORER_PACKAGE, TEST_SCORER_CLASS);
- NetworkScorerAppData scorerAppData = new NetworkScorerAppData(
- 0, scorer, TEST_SCORER_LABEL, null /* enableUseOpenWifiActivity */,
- null /* networkAvailableNotificationChannelId */);
- when(mNetworkScorer.getAllValidScorers())
- .thenReturn(Collections.singletonList(scorerAppData));
- when(mNetworkScorer.getActiveScorer()).thenReturn(null);
- Preference preference = mock(Preference.class);
-
- mController.updateState(preference);
-
- verify(preference).setSummary(mContext.getString(
- R.string.network_scorer_picker_none_preference));
- }
-
- @Test
- public void updateState_scorersAvailable_preferenceEnabled() {
- ComponentName scorer = new ComponentName(TEST_SCORER_PACKAGE, TEST_SCORER_CLASS);
- NetworkScorerAppData scorerAppData = new NetworkScorerAppData(
- 0, scorer, TEST_SCORER_LABEL, null /* enableUseOpenWifiActivity */,
- null /* networkAvailableNotificationChannelId */);
- when(mNetworkScorer.getAllValidScorers())
- .thenReturn(Collections.singletonList(scorerAppData));
-
- Preference preference = mock(Preference.class);
-
- mController.updateState(preference);
-
- verify(preference).setEnabled(true);
- }
-
- @Test
- public void updateState_noScorersAvailable_preferenceDisabled() {
- when(mNetworkScorer.getAllValidScorers())
- .thenReturn(Collections.emptyList());
- Preference preference = mock(Preference.class);
-
- mController.updateState(preference);
-
- verify(preference).setEnabled(false);
- verify(preference).setSummary(null);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/SubscriptionUtilTest.java b/tests/robotests/src/com/android/settings/network/SubscriptionUtilTest.java
deleted file mode 100644
index 4ae829f..0000000
--- a/tests/robotests/src/com/android/settings/network/SubscriptionUtilTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-
-import java.util.Arrays;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class SubscriptionUtilTest {
- @Mock
- private Context mContext;
- @Mock
- private SubscriptionManager mSubMgr;
- @Mock
- private TelephonyManager mTelMgr;
-
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- doReturn(mSubMgr).when(mContext).getSystemService(SubscriptionManager.class);
- doReturn(mTelMgr).when(mContext).getSystemService(TelephonyManager.class);
- when(mTelMgr.getUiccSlotsInfo()).thenReturn(null);
- }
-
- @Test
- public void getAvailableSubscriptions_nullInfoFromSubscriptionManager_nonNullResult() {
- when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(null);
- final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
- assertThat(subs).isNotNull();
- assertThat(subs).isEmpty();
- }
-
- @Test
- public void getAvailableSubscriptions_oneSubscription_oneResult() {
- final SubscriptionInfo info = mock(SubscriptionInfo.class);
- when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info));
- final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
- assertThat(subs).isNotNull();
- assertThat(subs).hasSize(1);
- }
-
- @Test
- public void getAvailableSubscriptions_twoSubscriptions_twoResults() {
- final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
- final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
- when(mSubMgr.getAvailableSubscriptionInfoList()).thenReturn(Arrays.asList(info1, info2));
- final List<SubscriptionInfo> subs = SubscriptionUtil.getAvailableSubscriptions(mContext);
- assertThat(subs).isNotNull();
- assertThat(subs).hasSize(2);
- }
-
- @Test
- public void getActiveSubscriptions_nullInfoFromSubscriptionManager_nonNullResult() {
- when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(null);
- final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mSubMgr);
- assertThat(subs).isNotNull();
- assertThat(subs).isEmpty();
- }
-
- @Test
- public void getActiveSubscriptions_oneSubscription_oneResult() {
- final SubscriptionInfo info = mock(SubscriptionInfo.class);
- when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(Arrays.asList(info));
- final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mSubMgr);
- assertThat(subs).isNotNull();
- assertThat(subs).hasSize(1);
- }
-
- @Test
- public void getActiveSubscriptions_twoSubscriptions_twoResults() {
- final SubscriptionInfo info1 = mock(SubscriptionInfo.class);
- final SubscriptionInfo info2 = mock(SubscriptionInfo.class);
- when(mSubMgr.getActiveSubscriptionInfoList()).thenReturn(
- Arrays.asList(info1, info2));
- final List<SubscriptionInfo> subs = SubscriptionUtil.getActiveSubscriptions(mSubMgr);
- assertThat(subs).isNotNull();
- assertThat(subs).hasSize(2);
- }
-
- @Test
- public void isInactiveInsertedPSim_nullSubInfo_doesNotCrash() {
- assertThat(SubscriptionUtil.isInactiveInsertedPSim(null)).isFalse();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java
index ea2212c..57b2e2f 100644
--- a/tests/robotests/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java
@@ -122,7 +122,7 @@
mController = spy(
new SubscriptionsPreferenceController(mContext, mLifecycle, mUpdateListener,
KEY, 5));
- doReturn(true).when(mController).isSubscriptionCanBeDisplayed(any(), anyInt());
+ doReturn(true).when(mController).canSubscriptionBeDisplayed(any(), anyInt());
doReturn(mSignalStrengthIcon).when(mController).getIcon(anyInt(), anyInt(), anyBoolean());
}
@@ -458,7 +458,7 @@
@Test
public void displayPreference_subscriptionsWithSameGroupUUID_onlyOneWillBeSeen() {
- doReturn(false).when(mController).isSubscriptionCanBeDisplayed(any(), eq(3));
+ doReturn(false).when(mController).canSubscriptionBeDisplayed(any(), eq(3));
final List<SubscriptionInfo> subs = setupMockSubscriptions(3);
SubscriptionUtil.setActiveSubscriptionsForTesting(subs.subList(0, 3));
diff --git a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java
deleted file mode 100644
index 566ea8b..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/ApnPreferenceControllerTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.PersistableBundle;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import com.android.settings.network.apn.ApnSettings;
-import com.android.settingslib.RestrictedPreference;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class ApnPreferenceControllerTest {
- private static final int SUB_ID = 2;
-
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private TelephonyManager mInvalidTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private CarrierConfigManager mCarrierConfigManager;
-
- private ApnPreferenceController mController;
- private RestrictedPreference mPreference;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
- doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
-
- mPreference = new RestrictedPreference(mContext);
- mController = new ApnPreferenceController(mContext, "mobile_data");
- mController.init(SUB_ID);
- mController.setPreference(mPreference);
- mController.mCarrierConfigManager = mCarrierConfigManager;
- mPreference.setKey(mController.getPreferenceKey());
- }
-
- @Test
- public void getAvailabilityStatus_apnSettingsNotSupported_returnUnavailable() {
- doReturn(TelephonyManager.PHONE_TYPE_CDMA).when(mTelephonyManager).getPhoneType();
- final PersistableBundle bundle = new PersistableBundle();
- bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, false);
- doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_apnSettingsSupportedWithCDMA_returnAvailable() {
- doReturn(TelephonyManager.PHONE_TYPE_CDMA).when(mTelephonyManager).getPhoneType();
- final PersistableBundle bundle = new PersistableBundle();
- bundle.putBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL, true);
- doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_apnSettingsSupportedWithGsm_returnAvailable() {
- doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
- final PersistableBundle bundle = new PersistableBundle();
- bundle.putBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL, true);
- doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_carrierConfigNull_returnUnavailable() {
- doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
- when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(null);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
-
- @Test
- public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
- doReturn(TelephonyManager.PHONE_TYPE_GSM).when(mTelephonyManager).getPhoneType();
- final PersistableBundle bundle = new PersistableBundle();
- bundle.putBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL, true);
- bundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, true);
- doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void handPreferenceTreeClick_fireIntent() {
- ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- doNothing().when(mContext).startActivity(captor.capture());
-
- mController.handlePreferenceTreeClick(mPreference);
-
- final Intent intent = captor.getValue();
- assertThat(intent.getAction()).isEqualTo(Settings.ACTION_APN_SETTINGS);
- assertThat(intent.getIntExtra(ApnSettings.SUB_ID, 0)).isEqualTo(SUB_ID);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceControllerTest.java
deleted file mode 100644
index c8ce6c1..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/CarrierSettingsVersionPreferenceControllerTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowCarrierConfigManager;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowCarrierConfigManager.class)
-public class CarrierSettingsVersionPreferenceControllerTest {
-
- private ShadowCarrierConfigManager mCarrierConfigManager;
- private CarrierSettingsVersionPreferenceController mController;
- private int mSubscriptionId = 1234;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- final Context context = RuntimeEnvironment.application;
- mController = new CarrierSettingsVersionPreferenceController(context, "mock_key");
- mController.init(mSubscriptionId);
- mCarrierConfigManager = Shadows.shadowOf(
- context.getSystemService(CarrierConfigManager.class));
- }
-
- @Test
- public void getSummary_nullConfig_noCrash() {
- mCarrierConfigManager.setConfigForSubId(mSubscriptionId, null);
- assertThat(mController.getSummary()).isNull();
- }
-
- @Test
- public void getSummary_nullVersionString_noCrash() {
- mCarrierConfigManager.setConfigForSubId(mSubscriptionId, new PersistableBundle());
- assertThat(mController.getSummary()).isNull();
- }
-
- @Test
- public void getSummary_hasVersionString_correctSummary() {
- final PersistableBundle bundle = new PersistableBundle();
- bundle.putString(CarrierConfigManager.KEY_CARRIER_CONFIG_VERSION_STRING,
- "test_version_123");
- mCarrierConfigManager.setConfigForSubId(mSubscriptionId, bundle);
- assertThat(mController.getSummary()).isEqualTo("test_version_123");
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java
deleted file mode 100644
index 3eb3caf..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/DataServiceSetupPreferenceControllerTest.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.PersistableBundle;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
-
-import androidx.preference.Preference;
-
-import com.android.settingslib.RestrictedPreference;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class DataServiceSetupPreferenceControllerTest {
- private static final int SUB_ID = 2;
-
- private static final String SETUP_URL = "url://tmp_url:^1";
-
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private TelephonyManager mInvalidTelephonyManager;
- @Mock
- private CarrierConfigManager mCarrierConfigManager;
-
- private PersistableBundle mCarrierConfig;
- private DataServiceSetupPreferenceController mController;
- private Preference mPreference;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
- doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
- Settings.Global.putString(mContext.getContentResolver(),
- Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL, SETUP_URL);
-
- mCarrierConfig = new PersistableBundle();
- doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
- mPreference = new RestrictedPreference(mContext);
- mController = new DataServiceSetupPreferenceController(mContext, "data_service_setup");
- mController.init(SUB_ID);
- mPreference.setKey(mController.getPreferenceKey());
- }
-
- @Test
- public void getAvailabilityStatus_allConfigOn_returnAvailable() {
- doReturn(true).when(mTelephonyManager).isLteCdmaEvdoGsmWcdmaEnabled();
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- false);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_missUrl_returnUnavailable() {
- Settings.Global.putString(mContext.getContentResolver(),
- Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL, "");
- doReturn(true).when(mTelephonyManager).isLteCdmaEvdoGsmWcdmaEnabled();
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- false);
-
- mController = new DataServiceSetupPreferenceController(mContext, "data_service_setup");
- mController.init(SUB_ID);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_notCdma_returnUnavailable() {
- doReturn(false).when(mTelephonyManager).isLteCdmaEvdoGsmWcdmaEnabled();
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- false);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void handlePreferenceTreeClick_startActivity() {
- ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- doNothing().when(mContext).startActivity(captor.capture());
-
- mController.handlePreferenceTreeClick(mPreference);
-
- final Intent intent = captor.getValue();
- assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW);
- assertThat(intent.getData()).isEqualTo(
- Uri.parse(TextUtils.expandTemplate(SETUP_URL, "").toString()));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/DisableSimFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/DisableSimFooterPreferenceControllerTest.java
deleted file mode 100644
index fa48ba5..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/DisableSimFooterPreferenceControllerTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-
-import com.android.settings.network.SubscriptionUtil;
-
-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.Arrays;
-
-@RunWith(RobolectricTestRunner.class)
-public class DisableSimFooterPreferenceControllerTest {
- private static final String PREF_KEY = "pref_key";
- private static final int SUB_ID = 111;
-
- @Mock
- private SubscriptionInfo mInfo;
-
- private Context mContext;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- private DisableSimFooterPreferenceController mController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
- when(mInfo.getSubscriptionId()).thenReturn(SUB_ID);
- SubscriptionUtil.setAvailableSubscriptionsForTesting(Arrays.asList(mInfo));
- mController = new DisableSimFooterPreferenceController(mContext, PREF_KEY);
- }
-
- @Test
- public void isAvailable_noInit_notAvailable() {
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void isAvailable_eSIM_notAvailable() {
- when(mInfo.isEmbedded()).thenReturn(true);
- mController.init(SUB_ID);
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void isAvailable_pSIM_available_cannot_disable_pSIM() {
- when(mInfo.isEmbedded()).thenReturn(false);
- mController.init(SUB_ID);
- doReturn(false).when(mSubscriptionManager).canDisablePhysicalSubscription();
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- public void isAvailable_pSIM_available_can_disable_pSIM() {
- when(mInfo.isEmbedded()).thenReturn(false);
- mController.init(SUB_ID);
- doReturn(true).when(mSubscriptionManager).canDisablePhysicalSubscription();
- assertThat(mController.isAvailable()).isFalse();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java b/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
deleted file mode 100644
index 416e2f0..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
-import static android.app.slice.Slice.HINT_TITLE;
-import static android.app.slice.SliceItem.FORMAT_TEXT;
-
-import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
-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.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.ims.ProvisioningManager;
-
-import androidx.slice.Slice;
-import androidx.slice.SliceItem;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceProvider;
-import androidx.slice.core.SliceAction;
-import androidx.slice.core.SliceQuery;
-import androidx.slice.widget.SliceLiveData;
-
-import com.android.settings.R;
-import com.android.settings.network.ims.MockVolteQueryImsState;
-import com.android.settings.slices.CustomSliceRegistry;
-import com.android.settings.slices.SettingsSliceProvider;
-import com.android.settings.slices.SliceBroadcastReceiver;
-import com.android.settings.slices.SlicesFeatureProvider;
-import com.android.settings.testutils.FakeFeatureFactory;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowSubscriptionManager;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class Enhanced4gLteSliceHelperTest {
- private static final int SUB_ID = 1;
-
- @Mock
- private CarrierConfigManager mMockCarrierConfigManager;
-
- @Mock
- private ProvisioningManager mProvisioningManager;
-
- private ShadowSubscriptionManager mShadowSubscriptionManager;
- private MockVolteQueryImsState mQueryImsState;
-
- private Context mContext;
- private FakeEnhanced4gLteSliceHelper mEnhanced4gLteSliceHelper;
- private SettingsSliceProvider mProvider;
- private SliceBroadcastReceiver mReceiver;
- private FakeFeatureFactory mFeatureFactory;
- private SlicesFeatureProvider mSlicesFeatureProvider;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
-
- mShadowSubscriptionManager = Shadow.extract(mContext.getSystemService(
- SubscriptionManager.class));
- mShadowSubscriptionManager.setDefaultVoiceSubscriptionId(SUB_ID);
-
- mFeatureFactory = FakeFeatureFactory.setupForTest();
- mSlicesFeatureProvider = mFeatureFactory.getSlicesFeatureProvider();
-
- //setup for SettingsSliceProvider tests
- mProvider = spy(new SettingsSliceProvider());
- doReturn(mContext).when(mProvider).getContext();
- mProvider.onCreateSliceProvider();
-
- //setup for SliceBroadcastReceiver test
- mReceiver = spy(new SliceBroadcastReceiver());
-
- mQueryImsState = spy(new MockVolteQueryImsState(mContext, SUB_ID));
- mQueryImsState.setEnabledByPlatform(true);
- mQueryImsState.setIsProvisionedOnDevice(true);
- mQueryImsState.setIsTtyOnVolteEnabled(true);
- mQueryImsState.setServiceStateReady(true);
- mQueryImsState.setIsEnabledByUser(true);
-
- mEnhanced4gLteSliceHelper = spy(new FakeEnhanced4gLteSliceHelper(mContext));
- doReturn(mQueryImsState).when(mEnhanced4gLteSliceHelper).queryImsState(anyInt());
-
- // Set-up specs for SliceMetadata.
- SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
- }
-
- @Test
- public void test_CreateEnhanced4gLteSlice_invalidSubId() {
- mQueryImsState.setEnabledByPlatform(false);
- mQueryImsState.setIsProvisionedOnDevice(false);
- mQueryImsState.setIsEnabledByUser(false);
- mShadowSubscriptionManager.setDefaultVoiceSubscriptionId(-1);
-
- final Slice slice = mEnhanced4gLteSliceHelper.createEnhanced4gLteSlice(
- CustomSliceRegistry.ENHANCED_4G_SLICE_URI);
-
- assertThat(slice).isNull();
- }
-
- @Test
- public void test_CreateEnhanced4gLteSlice_enhanced4gLteNotSupported() {
- mQueryImsState.setEnabledByPlatform(false);
-
- final Slice slice = mEnhanced4gLteSliceHelper.createEnhanced4gLteSlice(
- CustomSliceRegistry.ENHANCED_4G_SLICE_URI);
-
- assertThat(mEnhanced4gLteSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
- assertThat(slice).isNull();
- }
-
- @Test
- public void test_CreateEnhanced4gLteSlice_success() {
- mQueryImsState.setEnabledByPlatform(true);
- mQueryImsState.setIsProvisionedOnDevice(true);
- when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
-
- final Slice slice = mEnhanced4gLteSliceHelper.createEnhanced4gLteSlice(
- CustomSliceRegistry.ENHANCED_4G_SLICE_URI);
-
- assertThat(mEnhanced4gLteSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
- testEnhanced4gLteSettingsToggleSlice(slice);
- }
-
- @Test
- public void test_SettingSliceProvider_getsRightSliceEnhanced4gLte() {
- mQueryImsState.setEnabledByPlatform(true);
- mQueryImsState.setIsProvisionedOnDevice(true);
- when(mMockCarrierConfigManager.getConfigForSubId(1)).thenReturn(null);
- when(mSlicesFeatureProvider.getNewEnhanced4gLteSliceHelper(mContext))
- .thenReturn(mEnhanced4gLteSliceHelper);
-
- final Slice slice = mProvider.onBindSlice(CustomSliceRegistry.ENHANCED_4G_SLICE_URI);
-
- assertThat(mEnhanced4gLteSliceHelper.getDefaultVoiceSubId()).isEqualTo(1);
- testEnhanced4gLteSettingsToggleSlice(slice);
- }
-
- @Test
- @Ignore
- public void test_SliceBroadcastReceiver_toggleOffEnhanced4gLte() {
- mQueryImsState.setEnabledByPlatform(true);
- mQueryImsState.setIsProvisionedOnDevice(true);
- mQueryImsState.setIsEnabledByUser(false);
- when(mSlicesFeatureProvider.getNewEnhanced4gLteSliceHelper(mContext))
- .thenReturn(mEnhanced4gLteSliceHelper);
-
- final ArgumentCaptor<Boolean> mEnhanced4gLteSettingCaptor = ArgumentCaptor.forClass(
- Boolean.class);
-
- // turn on Enhanced4gLte setting
- final Intent intent = new Intent(Enhanced4gLteSliceHelper.ACTION_ENHANCED_4G_LTE_CHANGED);
- intent.putExtra(EXTRA_TOGGLE_STATE, true);
-
- // change the setting
- mReceiver.onReceive(mContext, intent);
-
- verify(mEnhanced4gLteSliceHelper).setEnhanced4gLteModeSetting(anyInt(),
- mEnhanced4gLteSettingCaptor.capture());
-
- // assert the change
- assertThat(mEnhanced4gLteSettingCaptor.getValue()).isTrue();
- }
-
- private void testEnhanced4gLteSettingsUnavailableSlice(Slice slice,
- PendingIntent expectedPrimaryAction) {
- final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-
- //Check there is no toggle action
- final List<SliceAction> toggles = metadata.getToggles();
- assertThat(toggles).isEmpty();
-
- // Check whether the primary action is to open Enhanced4gLte settings activity
- final PendingIntent primaryPendingIntent =
- metadata.getPrimaryAction().getAction();
- assertThat(primaryPendingIntent).isEqualTo(expectedPrimaryAction);
-
- // Check the title
- final List<SliceItem> sliceItems = slice.getItems();
- assertTitle(sliceItems, mContext.getString(R.string.enhanced_4g_lte_mode_title));
- }
-
- private void testEnhanced4gLteSettingsToggleSlice(Slice slice) {
- final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
-
- final List<SliceAction> toggles = metadata.getToggles();
- assertThat(toggles).hasSize(1);
-
- final SliceAction mainToggleAction = toggles.get(0);
-
- // Check intent in Toggle Action
- final PendingIntent togglePendingIntent = mainToggleAction.getAction();
- final PendingIntent expectedToggleIntent = getBroadcastIntent(
- Enhanced4gLteSliceHelper.ACTION_ENHANCED_4G_LTE_CHANGED);
- assertThat(togglePendingIntent).isEqualTo(expectedToggleIntent);
-
- // Check primary intent
- final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction();
- final PendingIntent expectedPendingIntent =
- getActivityIntent(Enhanced4gLteSliceHelper.ACTION_MOBILE_NETWORK_SETTINGS_ACTIVITY);
- assertThat(primaryPendingIntent).isEqualTo(expectedPendingIntent);
-
- // Check the title
- final List<SliceItem> sliceItems = slice.getItems();
- assertTitle(sliceItems, mContext.getString(R.string.enhanced_4g_lte_mode_title));
- }
-
- private PendingIntent getBroadcastIntent(String action) {
- final Intent intent = new Intent(action);
- intent.setClass(mContext, SliceBroadcastReceiver.class);
- return PendingIntent.getBroadcast(mContext, 0 /* requestCode */, intent,
- PendingIntent.FLAG_CANCEL_CURRENT);
- }
-
- private PendingIntent getActivityIntent(String action) {
- final Intent intent = new Intent(action);
- intent.setPackage(SETTINGS_PACKAGE_NAME);
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */);
- }
-
- private void assertTitle(List<SliceItem> sliceItems, String title) {
- boolean hasTitle = false;
- for (SliceItem item : sliceItems) {
- final List<SliceItem> titleItems = SliceQuery.findAll(item, FORMAT_TEXT, HINT_TITLE,
- null /* non-hints */);
- if (titleItems == null) {
- continue;
- }
-
- hasTitle = true;
- for (SliceItem subTitleItem : titleItems) {
- assertThat(subTitleItem.getText()).isEqualTo(title);
- }
- }
- assertThat(hasTitle).isTrue();
- }
-
- private class FakeEnhanced4gLteSliceHelper extends Enhanced4gLteSliceHelper {
- int mSubId = SUB_ID;
-
- FakeEnhanced4gLteSliceHelper(Context context) {
- super(context);
- }
-
- @Override
- protected CarrierConfigManager getCarrierConfigManager() {
- return mMockCarrierConfigManager;
- }
-
- protected int getDefaultVoiceSubId() {
- return mSubId;
- }
-
- private void setDefaultVoiceSubId(int id) {
- mSubId = id;
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java
deleted file mode 100644
index bb60fd6..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/EuiccPreferenceControllerTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.spy;
-import static org.robolectric.Shadows.shadowOf;
-
-import android.content.Context;
-import android.content.Intent;
-import android.telephony.TelephonyManager;
-import android.telephony.euicc.EuiccManager;
-
-import androidx.preference.Preference;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadows.ShadowTelephonyManager;
-
-@RunWith(AndroidJUnit4.class)
-public class EuiccPreferenceControllerTest {
- private static final int SUB_ID = 2;
-
- private TelephonyManager mTelephonyManager;
- private ShadowTelephonyManager mShadowTelephonyManager;
-
- private EuiccPreferenceController mController;
- private Preference mPreference;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application.getBaseContext());
-
- mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
- mShadowTelephonyManager = shadowOf(mTelephonyManager);
- mShadowTelephonyManager.setTelephonyManagerForSubscriptionId(SUB_ID, mTelephonyManager);
-
- mPreference = new Preference(mContext);
- mController = new EuiccPreferenceController(mContext, "euicc");
- mController.init(SUB_ID);
- mPreference.setKey(mController.getPreferenceKey());
- }
-
- @Test
- public void handlePreferenceTreeClick_startActivity() {
- ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
- doNothing().when(mContext).startActivity(captor.capture());
-
- mController.handlePreferenceTreeClick(mPreference);
-
- assertThat(captor.getValue().getAction()).isEqualTo(
- EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java
deleted file mode 100644
index c28c28c..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.telephony.data.ApnSetting;
-
-import androidx.preference.SwitchPreference;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowSubscriptionManager;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowSubscriptionManager.class)
-public class MmsMessagePreferenceControllerTest {
- private static final int SUB_ID = 2;
-
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
-
- private MmsMessagePreferenceController mController;
- private SwitchPreference mPreference;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
- when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
- when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
- when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
-
- mPreference = new SwitchPreference(mContext);
- mController = new MmsMessagePreferenceController(mContext, "mms_message");
- ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID);
- mController.init(SUB_ID);
- mPreference.setKey(mController.getPreferenceKey());
- }
-
- @Test
- public void getAvailabilityStatus_invalidSubscription_returnUnavailable() {
- mController.init(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_mobileDataOn_returnUnavailable() {
- when(mTelephonyManager.isDataEnabled()).thenReturn(true);
-
- assertThat(mController.getAvailabilityStatus(SUB_ID)).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_meteredOff_returnUnavailable() {
- when(mTelephonyManager.isApnMetered(ApnSetting.TYPE_MMS)).thenReturn(false);
-
- assertThat(mController.getAvailabilityStatus(SUB_ID)).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_mobileDataOffWithValidSubId_returnAvailable() {
- mController.init(SUB_ID);
- when(mTelephonyManager.isDataEnabled()).thenReturn(false);
- when(mTelephonyManager.isApnMetered(ApnSetting.TYPE_MMS)).thenReturn(true);
-
- assertThat(mController.getAvailabilityStatus(SUB_ID)).isEqualTo(AVAILABLE);
- }
-
- @Test
- public void isChecked_returnDataFromTelephonyManager() {
- when(mTelephonyManager.isDataEnabledForApn(ApnSetting.TYPE_MMS)).thenReturn(false);
- assertThat(mController.isChecked()).isFalse();
-
- when(mTelephonyManager.isDataEnabledForApn(ApnSetting.TYPE_MMS)).thenReturn(true);
- assertThat(mController.isChecked()).isTrue();
- }
-
- @Test
- public void setChecked_setDataIntoSubscriptionManager() {
- mController.setChecked(true);
- verify(mTelephonyManager).setMobileDataPolicyEnabledStatus(
- TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, true);
-
- mController.setChecked(false);
- verify(mTelephonyManager).setMobileDataPolicyEnabledStatus(
- TelephonyManager.MOBILE_DATA_POLICY_MMS_ALWAYS_ALLOWED, false);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
deleted file mode 100644
index 29f0f25..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
-
-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 android.content.Context;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.R;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowSubscriptionManager;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowSubscriptionManager.class)
-public class MobileDataPreferenceControllerTest {
- private static final int SUB_ID = 2;
- private static final int SUB_ID_OTHER = 3;
-
- @Mock
- private FragmentManager mFragmentManager;
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private TelephonyManager mInvalidTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private SubscriptionInfo mSubscriptionInfo;
- @Mock
- private FragmentTransaction mFragmentTransaction;
-
- private MobileDataPreferenceController mController;
- private SwitchPreference mPreference;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
- doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- doReturn(mFragmentTransaction).when(mFragmentManager).beginTransaction();
-
- mPreference = new SwitchPreference(mContext);
- mController = new MobileDataPreferenceController(mContext, "mobile_data");
- ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID);
- mController.init(mFragmentManager, SUB_ID);
- mPreference.setKey(mController.getPreferenceKey());
- }
-
- @Test
- public void getAvailabilityStatus_invalidSubscription_returnAvailableUnsearchable() {
- mController.init(mFragmentManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
- }
-
- @Test
- public void isDialogNeeded_disableSingleSim_returnFalse() {
- doReturn(true).when(mTelephonyManager).isDataEnabled();
- doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
- doReturn(1).when(mTelephonyManager).getActiveModemCount();
-
- assertThat(mController.isDialogNeeded()).isFalse();
- }
-
- @Test
- public void isDialogNeeded_enableNonDefaultSimInMultiSimMode_returnTrue() {
- doReturn(false).when(mTelephonyManager).isDataEnabled();
- doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
- doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(SUB_ID_OTHER);
- ShadowSubscriptionManager.setDefaultDataSubscriptionId(SUB_ID_OTHER);
- doReturn(2).when(mTelephonyManager).getActiveModemCount();
-
- assertThat(mController.isDialogNeeded()).isTrue();
- assertThat(mController.mDialogType).isEqualTo(
- MobileDataDialogFragment.TYPE_MULTI_SIM_DIALOG);
- }
-
- @Test
- public void handlePreferenceTreeClick_needDialog_showDialog() {
- mController.mNeedDialog = true;
-
- mController.handlePreferenceTreeClick(mPreference);
-
- verify(mFragmentManager).beginTransaction();
- }
-
- @Test
- public void onPreferenceChange_singleSim_On_shouldEnableData() {
- doReturn(true).when(mTelephonyManager).isDataEnabled();
- doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
- doReturn(1).when(mTelephonyManager).getActiveModemCount();
-
- mController.onPreferenceChange(mPreference, true);
-
- verify(mTelephonyManager).setDataEnabled(true);
- }
-
- @Test
- public void onPreferenceChange_multiSim_On_shouldEnableData() {
- doReturn(true).when(mTelephonyManager).isDataEnabled();
- doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
- doReturn(2).when(mTelephonyManager).getActiveModemCount();
-
- mController.onPreferenceChange(mPreference, true);
-
- verify(mTelephonyManager).setDataEnabled(true);
- }
-
- @Test
- public void isChecked_returnUserDataEnabled() {
- mController.init(mFragmentManager, SUB_ID);
- assertThat(mController.isChecked()).isFalse();
-
- doReturn(true).when(mTelephonyManager).isDataEnabled();
- assertThat(mController.isChecked()).isTrue();
- }
-
- @Test
- public void updateState_opportunistic_disabled() {
- doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
- mController.init(mFragmentManager, SUB_ID);
- doReturn(true).when(mSubscriptionInfo).isOpportunistic();
- mController.updateState(mPreference);
-
- assertThat(mPreference.isEnabled()).isFalse();
- assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.mobile_data_settings_summary_auto_switch));
- }
-
- @Test
- public void updateState_notOpportunistic_enabled() {
- doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID);
- mController.init(mFragmentManager, SUB_ID);
- doReturn(false).when(mSubscriptionInfo).isOpportunistic();
- mController.updateState(mPreference);
-
- assertThat(mPreference.isEnabled()).isTrue();
- assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getString(R.string.mobile_data_settings_summary));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
index c69f2ed..459d77e 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
+++ b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkActivityTest.java
@@ -44,6 +44,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -135,6 +136,7 @@
}
@Test
+ @Ignore
public void updateBottomNavigationView_oneSubscription_shouldNotCrash() {
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1);
@@ -144,6 +146,7 @@
}
@Test
+ @Ignore
public void updateBottomNavigationView_twoSubscription_shouldNotCrash() {
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
@@ -153,6 +156,7 @@
}
@Test
+ @Ignore
public void switchFragment_switchBetweenTwoSubscriptions() {
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
@@ -169,6 +173,7 @@
}
@Test
+ @Ignore
public void switchFragment_subscriptionsUpdate_notifyByIntent() {
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
@@ -197,6 +202,7 @@
}
@Test
+ @Ignore
public void onSaveInstanceState_saveCurrentSubId() {
mSubscriptionManager.setActiveSubscriptionInfos(mSubscriptionInfo1, mSubscriptionInfo2);
diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
deleted file mode 100644
index bbb8aac..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
+++ /dev/null
@@ -1,335 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.os.PersistableBundle;
-import android.provider.Settings;
-import android.telecom.PhoneAccountHandle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
-
-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.Arrays;
-
-@RunWith(RobolectricTestRunner.class)
-public class MobileNetworkUtilsTest {
- private static final String PACKAGE_NAME = "com.android.app";
- private static final int SUB_ID_1 = 1;
- private static final int SUB_ID_2 = 2;
- private static final int SUB_ID_INVALID = -1;
- private static final String PLMN_FROM_TELEPHONY_MANAGER_API = "testPlmn";
- private static final String PLMN_FROM_SUB_ID_1 = "testPlmnSub1";
- private static final String PLMN_FROM_SUB_ID_2 = "testPlmnSub2";
-
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private TelephonyManager mTelephonyManager2;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private SubscriptionInfo mSubscriptionInfo1;
- @Mock
- private SubscriptionInfo mSubscriptionInfo2;
- @Mock
- private PackageManager mPackageManager;
- @Mock
- private PhoneAccountHandle mPhoneAccountHandle;
- @Mock
- private ComponentName mComponentName;
- @Mock
- private ResolveInfo mResolveInfo;
- @Mock
- private CarrierConfigManager mCarrierConfigManager;
-
- private Context mContext;
- private PersistableBundle mCarrierConfig;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
- when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
- when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
- when(mTelephonyManager.createForSubscriptionId(SUB_ID_1)).thenReturn(mTelephonyManager);
- when(mTelephonyManager.createForSubscriptionId(SUB_ID_2)).thenReturn(mTelephonyManager2);
- when(mContext.getPackageManager()).thenReturn(mPackageManager);
- when(mPhoneAccountHandle.getComponentName()).thenReturn(mComponentName);
- when(mComponentName.getPackageName()).thenReturn(PACKAGE_NAME);
- when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(
- mCarrierConfigManager);
-
- mCarrierConfig = new PersistableBundle();
- when(mCarrierConfigManager.getConfigForSubId(SUB_ID_1)).thenReturn(mCarrierConfig);
-
- when(mSubscriptionInfo1.getSubscriptionId()).thenReturn(SUB_ID_1);
- when(mSubscriptionInfo1.getCarrierName()).thenReturn(PLMN_FROM_SUB_ID_1);
- when(mSubscriptionInfo2.getSubscriptionId()).thenReturn(SUB_ID_2);
- when(mSubscriptionInfo2.getCarrierName()).thenReturn(PLMN_FROM_SUB_ID_2);
-
- when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
- Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
- when(mSubscriptionManager.getAccessibleSubscriptionInfoList()).thenReturn(
- Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2));
-
- when(mTelephonyManager.getNetworkOperatorName()).thenReturn(
- PLMN_FROM_TELEPHONY_MANAGER_API);
- }
-
- @Test
- public void setMobileDataEnabled_setEnabled_enabled() {
- MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, false);
-
- verify(mTelephonyManager).setDataEnabled(true);
- verify(mTelephonyManager2, never()).setDataEnabled(anyBoolean());
- }
-
- @Test
- public void setMobileDataEnabled_setDisabled_disabled() {
- MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_2, true, false);
-
- verify(mTelephonyManager2).setDataEnabled(true);
- verify(mTelephonyManager, never()).setDataEnabled(anyBoolean());
- }
-
- @Test
- public void setMobileDataEnabled_disableOtherSubscriptions() {
- MobileNetworkUtils.setMobileDataEnabled(mContext, SUB_ID_1, true, true);
-
- verify(mTelephonyManager).setDataEnabled(true);
- verify(mTelephonyManager2).setDataEnabled(false);
- }
-
- @Test
- public void buildConfigureIntent_nullHandle_returnNull() {
- assertThat(MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext, null)).isNull();
- }
-
- @Test
- public void buildConfigureIntent_noActivityHandleIntent_returnNull() {
- when(mPackageManager.queryIntentActivities(nullable(Intent.class), anyInt()))
- .thenReturn(new ArrayList<>());
-
- assertThat(MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
- mPhoneAccountHandle)).isNull();
- }
-
- @Test
- public void buildConfigureIntent_hasActivityHandleIntent_returnIntent() {
- when(mPackageManager.queryIntentActivities(nullable(Intent.class), anyInt()))
- .thenReturn(Arrays.asList(mResolveInfo));
-
- assertThat(MobileNetworkUtils.buildPhoneAccountConfigureIntent(mContext,
- mPhoneAccountHandle)).isNotNull();
- }
-
- @Test
- public void isCdmaOptions_phoneTypeCdma_returnTrue() {
- when(mTelephonyManager.getPhoneType()).thenReturn(TelephonyManager.PHONE_TYPE_CDMA);
-
- assertThat(MobileNetworkUtils.isCdmaOptions(mContext, SUB_ID_1)).isTrue();
- }
-
- @Test
- public void isCdmaOptions_worldModeWithGsmWcdma_returnTrue() {
- when(mTelephonyManager.getPhoneType()).thenReturn(TelephonyManager.PHONE_TYPE_GSM);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
-
- Settings.Global.putInt(mContext.getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID_1,
- TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
-
- assertThat(MobileNetworkUtils.isCdmaOptions(mContext, SUB_ID_1)).isTrue();
- }
-
- @Test
- public void isCdmaOptions_carrierWorldModeWithoutHideCarrier_returnTrue() {
- when(mTelephonyManager.getPhoneType()).thenReturn(TelephonyManager.PHONE_TYPE_GSM);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- false);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
-
- assertThat(MobileNetworkUtils.isCdmaOptions(mContext, SUB_ID_1)).isTrue();
- }
-
- @Test
- public void getSearchableSubscriptionId_oneActive_returnValid() {
- when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
- Arrays.asList(mSubscriptionInfo1));
- assertThat(MobileNetworkUtils.getSearchableSubscriptionId(mContext)).isEqualTo(SUB_ID_1);
- }
-
- @Test
- public void getSearchableSubscriptionId_nonActive_returnInvalid() {
- when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>());
-
- assertThat(MobileNetworkUtils.getSearchableSubscriptionId(mContext))
- .isEqualTo(SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- }
-
- @Test
- public void shouldDisplayNetworkSelectOptions_HideCarrierNetwork_returnFalse() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- true);
-
- assertThat(MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, SUB_ID_1))
- .isFalse();
- }
-
- @Test
- public void shouldDisplayNetworkSelectOptions_allCheckPass_returnTrue() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- false);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL, true);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL, false);
- when(mTelephonyManager.getPhoneType()).thenReturn(TelephonyManager.PHONE_TYPE_GSM);
-
- assertThat(MobileNetworkUtils.shouldDisplayNetworkSelectOptions(mContext, SUB_ID_1))
- .isTrue();
- }
-
- @Test
- public void shouldSpeciallyUpdateGsmCdma_notWorldMode_returnFalse() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, false);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, false);
-
- assertThat(MobileNetworkUtils.shouldSpeciallyUpdateGsmCdma(mContext, SUB_ID_1)).isFalse();
- }
-
- @Test
- public void shouldSpeciallyUpdateGsmCdma_supportTdscdma_returnFalse() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, true);
-
- assertThat(MobileNetworkUtils.shouldSpeciallyUpdateGsmCdma(mContext, SUB_ID_1)).isFalse();
- }
-
- @Test
- public void shouldSpeciallyUpdateGsmCdma_ModeLteTdscdmaGsm_returnTrue() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, false);
-
- Settings.Global.putInt(mContext.getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID_1,
- TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM);
- assertThat(MobileNetworkUtils.shouldSpeciallyUpdateGsmCdma(mContext, SUB_ID_1)).isTrue();
- }
-
- @Test
- public void shouldSpeciallyUpdateGsmCdma_ModeLteTdscdmaGsmWcdma_returnTrue() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, false);
-
- Settings.Global.putInt(mContext.getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID_1,
- TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA);
- assertThat(MobileNetworkUtils.shouldSpeciallyUpdateGsmCdma(mContext, SUB_ID_1)).isTrue();
- }
-
- @Test
- public void shouldSpeciallyUpdateGsmCdma_ModeLteTdscdma_returnTrue() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, false);
-
- Settings.Global.putInt(mContext.getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID_1,
- TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA);
- assertThat(MobileNetworkUtils.shouldSpeciallyUpdateGsmCdma(mContext, SUB_ID_1)).isTrue();
- }
-
- @Test
- public void shouldSpeciallyUpdateGsmCdma_ModeLteTdscdmaWcdma_returnTrue() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, false);
-
- Settings.Global.putInt(mContext.getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID_1,
- TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA);
- assertThat(MobileNetworkUtils.shouldSpeciallyUpdateGsmCdma(mContext, SUB_ID_1)).isTrue();
- }
-
- @Test
- public void shouldSpeciallyUpdateGsmCdma_ModeLteTdscdmaCdmaEvdoGsmWcdma_returnTrue() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, false);
-
- Settings.Global.putInt(mContext.getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID_1,
- TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA);
- assertThat(MobileNetworkUtils.shouldSpeciallyUpdateGsmCdma(mContext, SUB_ID_1)).isTrue();
- }
-
- @Test
- public void shouldSpeciallyUpdateGsmCdma_ModeLteCdmaEvdoGsmWcdma_returnTrue() {
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_WORLD_MODE_ENABLED_BOOL, true);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_SUPPORT_TDSCDMA_BOOL, false);
-
- Settings.Global.putInt(mContext.getContentResolver(),
- android.provider.Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID_1,
- TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA);
- assertThat(MobileNetworkUtils.shouldSpeciallyUpdateGsmCdma(mContext, SUB_ID_1)).isTrue();
- }
-
- @Test
- public void getCurrentCarrierNameForDisplay_withoutValidSubId_returnNetworkOperatorName() {
- assertThat(MobileNetworkUtils.getCurrentCarrierNameForDisplay(
- mContext, SUB_ID_INVALID)).isEqualTo(PLMN_FROM_TELEPHONY_MANAGER_API);
- }
-
- @Test
- public void getCurrentCarrierNameForDisplay_withValidSubId_returnCurrentCarrierName() {
- assertThat(MobileNetworkUtils.getCurrentCarrierNameForDisplay(
- mContext, SUB_ID_1)).isEqualTo(PLMN_FROM_SUB_ID_1);
- assertThat(MobileNetworkUtils.getCurrentCarrierNameForDisplay(
- mContext, SUB_ID_2)).isEqualTo(PLMN_FROM_SUB_ID_2);
- }
-
- @Test
- public void getCurrentCarrierNameForDisplay_withoutSubId_returnNotNull() {
- assertThat(MobileNetworkUtils.getCurrentCarrierNameForDisplay(
- mContext)).isNotNull();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceControllerTest.java
deleted file mode 100644
index b4e8a25..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceControllerTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class NrDisabledInDsdsFooterPreferenceControllerTest {
- private static final String PREF_KEY = "pref_key";
- private static final int SUB_ID = 111;
-
- private Context mContext;
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- private NrDisabledInDsdsFooterPreferenceController mController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mSubscriptionManager).when(mContext).getSystemService(
- Context.TELEPHONY_SUBSCRIPTION_SERVICE);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
- mController = new NrDisabledInDsdsFooterPreferenceController(mContext, PREF_KEY);
- }
-
- @Test
- public void isAvailable_noInit_notAvailable() {
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- @Ignore
- public void isAvailable_dataOnAndDsdsAnd5GSupported_Available() {
- when(mTelephonyManager.getSupportedRadioAccessFamily())
- .thenReturn(TelephonyManager.NETWORK_TYPE_BITMASK_NR);
- when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[] {1, 2});
- when(mTelephonyManager.isDataEnabled()).thenReturn(true);
- mController.init(SUB_ID);
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- public void isAvailable_5gNotSupported_notAvailable() {
- when(mTelephonyManager.getSupportedRadioAccessFamily())
- .thenReturn(TelephonyManager.NETWORK_TYPE_BITMASK_LTE);
- when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[] {1, 2});
- when(mTelephonyManager.isDataEnabled()).thenReturn(true);
- mController.init(SUB_ID);
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void isAvailable_mobileDataOff_notAvailable() {
- when(mTelephonyManager.getSupportedRadioAccessFamily())
- .thenReturn(TelephonyManager.NETWORK_TYPE_BITMASK_NR);
- when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[] {1, 2});
- when(mTelephonyManager.isDataEnabled()).thenReturn(false);
- mController.init(SUB_ID);
- assertThat(mController.isAvailable()).isFalse();
- }
-
- @Test
- public void isAvailable_singleSimMode_notAvailable() {
- when(mTelephonyManager.getSupportedRadioAccessFamily())
- .thenReturn(TelephonyManager.NETWORK_TYPE_BITMASK_NR);
- when(mSubscriptionManager.getActiveSubscriptionIdList()).thenReturn(new int[] {1});
- when(mTelephonyManager.isDataEnabled()).thenReturn(true);
- mController.init(SUB_ID);
- assertThat(mController.isAvailable()).isFalse();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
deleted file mode 100644
index 1feb08b..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
-import static com.android.settings.network.telephony.MobileNetworkUtils.getRafFromNetworkType;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.preference.ListPreference;
-
-import com.android.settings.R;
-import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
-
-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 PreferredNetworkModePreferenceControllerTest {
- private static final int SUB_ID = 2;
-
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private TelephonyManager mInvalidTelephonyManager;
- @Mock
- private CarrierConfigManager mCarrierConfigManager;
- @Mock
- private ServiceState mServiceState;
-
- private PersistableBundle mPersistableBundle;
- private PreferredNetworkModePreferenceController mController;
- private ListPreference mPreference;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
- doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
- doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- doReturn(mServiceState).when(mTelephonyManager).getServiceState();
- mPersistableBundle = new PersistableBundle();
- doReturn(mPersistableBundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
-
- mPreference = new ListPreference(mContext);
- mPreference.setEntries(R.array.preferred_network_mode_choices);
- mPreference.setEntryValues(R.array.preferred_network_mode_values);
- mController = new PreferredNetworkModePreferenceController(mContext, "mobile_data");
- mController.init(SUB_ID);
- mPreference.setKey(mController.getPreferenceKey());
- }
-
- @Test
- public void getAvailabilityStatus_hideCarrierNetworkSettings_returnUnavailable() {
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- true);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_worldPhone_returnAvailable() {
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
- false);
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_WORLD_PHONE_BOOL, true);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_hidePreferredNetworkType_returnUnavailable() {
- mPersistableBundle.putBoolean(CarrierConfigManager.KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL,
- true);
-
- when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
- when(mServiceState.getDataRegistrationState()).thenReturn(
- ServiceState.STATE_OUT_OF_SERVICE);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
- when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
- when(mServiceState.getDataRegistrationState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
- when(mServiceState.getRoaming()).thenReturn(false);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
-
- when(mServiceState.getRoaming()).thenReturn(true);
- assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
- }
-
- @Test
- public void updateState_updateByNetworkMode() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
- TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.getValue()).isEqualTo(
- String.valueOf(TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
- assertThat(mPreference.getSummary()).isEqualTo(
- mContext.getString(R.string.preferred_network_mode_tdscdma_gsm_wcdma_summary));
- }
-
- @Test
- public void onPreferenceChange_updateSuccess() {
- doReturn(true).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
- getRafFromNetworkType(TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA));
-
- mController.onPreferenceChange(mPreference,
- String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA));
-
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID, 0)).isEqualTo(
- TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA);
- }
-
- @Test
- public void onPreferenceChange_updateFail() {
- doReturn(false).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
- getRafFromNetworkType(TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA));
-
- mController.onPreferenceChange(mPreference,
- String.valueOf(TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA));
-
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID, 0)).isNotEqualTo(
- TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java
deleted file mode 100644
index 092b9b7..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/RoamingPreferenceControllerTest.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentTransaction;
-
-import com.android.settings.core.BasePreferenceController;
-import com.android.settingslib.RestrictedSwitchPreference;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class RoamingPreferenceControllerTest {
- private static final int SUB_ID = 2;
-
- @Mock
- private FragmentManager mFragmentManager;
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private TelephonyManager mInvalidTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private FragmentTransaction mFragmentTransaction;
- @Mock
- private CarrierConfigManager mCarrierConfigManager;
-
- private RoamingPreferenceController mController;
- private RestrictedSwitchPreference mPreference;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
- doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
- doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- doReturn(mFragmentTransaction).when(mFragmentManager).beginTransaction();
-
- mPreference = spy(new RestrictedSwitchPreference(mContext));
- mController = spy(new RoamingPreferenceController(mContext, "roaming"));
- mController.init(mFragmentManager, SUB_ID);
- mPreference.setKey(mController.getPreferenceKey());
- }
-
- @Test
- public void getAvailabilityStatus_validSubId_returnAvailable() {
- assertThat(mController.getAvailabilityStatus()).isEqualTo(
- BasePreferenceController.AVAILABLE);
- }
-
- @Test
- public void getAvailabilityStatus_invalidSubId_returnUnsearchable() {
- mController.init(mFragmentManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-
- assertThat(mController.getAvailabilityStatus()).isEqualTo(
- BasePreferenceController.AVAILABLE_UNSEARCHABLE);
- }
-
- @Test
- public void isDialogNeeded_roamingDisabledWithoutFlag_returnTrue() {
- final PersistableBundle bundle = new PersistableBundle();
- bundle.putBoolean(CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL, false);
- doReturn(bundle).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
- doReturn(false).when(mTelephonyManager).isDataRoamingEnabled();
-
- assertThat(mController.isDialogNeeded()).isTrue();
- }
-
- @Test
- public void isDialogNeeded_roamingEnabled_returnFalse() {
- doReturn(true).when(mTelephonyManager).isDataRoamingEnabled();
-
- assertThat(mController.isDialogNeeded()).isFalse();
- }
-
- @Test
- public void setChecked_needDialog_showDialog() {
- doReturn(true).when(mController).isDialogNeeded();
-
- mController.setChecked(true);
-
- verify(mFragmentManager).beginTransaction();
- }
-
- @Test
- public void updateState_invalidSubId_disabled() {
- mController.init(mFragmentManager, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isEnabled()).isFalse();
- }
-
- @Test
- public void updateState_validSubId_enabled() {
- doReturn(true).when(mTelephonyManager).isDataRoamingEnabled();
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isEnabled()).isTrue();
- assertThat(mPreference.isChecked()).isTrue();
- }
-
- @Test
- public void updateState_isNotDisabledByAdmin_shouldInvokeSetEnabled() {
- when(mPreference.isDisabledByAdmin()).thenReturn(false);
-
- mController.updateState(mPreference);
-
- verify(mPreference).setEnabled(anyBoolean());
- }
-
- @Test
- public void updateState_isDisabledByAdmin_shouldNotInvokeSetEnabled() {
- when(mPreference.isDisabledByAdmin()).thenReturn(true);
-
- mController.updateState(mPreference);
-
- verify(mPreference, never()).setEnabled(anyBoolean());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java
deleted file mode 100644
index 6ba2ffa..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2019 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import 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.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-
-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.Arrays;
-
-@RunWith(RobolectricTestRunner.class)
-public class TelephonyBasePreferenceControllerTest {
- private static final int VALID_SUB_ID = 1;
-
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private SubscriptionInfo mSubscriptionInfo;
-
- private TestPreferenceController mPreferenceController;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- when(mContext.getSystemService(SubscriptionManager.class))
- .thenReturn(mSubscriptionManager);
- when(mSubscriptionInfo.getSubscriptionId()).thenReturn(VALID_SUB_ID);
- mPreferenceController = new TestPreferenceController(mContext, "prefKey");
- }
-
- @Test
- public void isAvailable_validSubIdSet_returnTrue() {
- mPreferenceController.init(VALID_SUB_ID);
-
- assertThat(mPreferenceController.isAvailable()).isTrue();
- }
-
- @Test
- public void isAvailable_noIdSetHoweverHasDefaultOne_returnTrue() {
- when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
- Arrays.asList(mSubscriptionInfo));
-
- assertThat(mPreferenceController.isAvailable()).isTrue();
- }
-
- @Test
- public void isAvailable_noDefaultAndNoSet_returnFalse() {
- assertThat(mPreferenceController.isAvailable()).isFalse();
- }
-
- /**
- * Test preference controller for {@link TelephonyBasePreferenceController}
- */
- public class TestPreferenceController extends TelephonyBasePreferenceController {
- public TestPreferenceController(Context context, String prefKey) {
- super(context, prefKey);
- }
-
- public void init(int subId) {
- mSubId = subId;
- }
-
- @Override
- public int getAvailabilityStatus(int subId) {
- return subId == VALID_SUB_ID ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/TelephonyTogglePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/TelephonyTogglePreferenceControllerTest.java
deleted file mode 100644
index 7542512..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/TelephonyTogglePreferenceControllerTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class TelephonyTogglePreferenceControllerTest {
-
- private Context mContext;
- private FakeTelephonyToggle mFakeTelephonyToggle;
-
- @Before
- public void setUp() {
- mContext = RuntimeEnvironment.application;
- mFakeTelephonyToggle = new FakeTelephonyToggle(mContext, "key");
- }
-
- @Test
- public void isSliceable_byDefault_shouldReturnFalse() {
- assertThat(mFakeTelephonyToggle.isSliceable()).isFalse();
- }
-
- private static class FakeTelephonyToggle extends TelephonyTogglePreferenceController {
-
- private FakeTelephonyToggle(Context context, String preferenceKey) {
- super(context, preferenceKey);
- }
-
- @Override
- public boolean isChecked() {
- return false;
- }
-
- @Override
- public boolean setChecked(boolean isChecked) {
- return false;
- }
-
- @Override
- public int getAvailabilityStatus(int subId) {
- return 0;
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaListPreferenceTest.java b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaListPreferenceTest.java
deleted file mode 100644
index 40329a5..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaListPreferenceTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony.cdma;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-
-import android.content.Context;
-import android.telephony.TelephonyManager;
-
-import androidx.preference.PreferenceManager;
-
-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 CdmaListPreferenceTest {
- private static final int SUB_ID = 2;
-
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private PreferenceManager mPreferenceManager;
-
- private CdmaListPreference mPreference;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
-
- mPreference = spy(new CdmaListPreference(mContext, null));
- mPreference.setSubId(SUB_ID);
- }
-
- @Test
- public void onClick_inEcm_doNothing() {
- doReturn(true).when(mTelephonyManager).getEmergencyCallbackMode();
-
- mPreference.onClick();
-
- verify(mPreferenceManager, never()).showDialog(mPreference);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java
deleted file mode 100644
index c6d3868..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSubscriptionPreferenceControllerTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony.cdma;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.os.SystemProperties;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.preference.ListPreference;
-import androidx.preference.PreferenceManager;
-
-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 CdmaSubscriptionPreferenceControllerTest {
- private static final int SUB_ID = 2;
-
- @Mock
- private PreferenceManager mPreferenceManager;
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private TelephonyManager mInvalidTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private CarrierConfigManager mCarrierConfigManager;
-
- private CdmaSubscriptionPreferenceController mController;
- private ListPreference mPreference;
- private PersistableBundle mCarrierConfig;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
- doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
-
- mCarrierConfig = new PersistableBundle();
- when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
-
- mPreference = new ListPreference(mContext);
- mController = new CdmaSubscriptionPreferenceController(mContext, "mobile_data");
- mController.init(mPreferenceManager, SUB_ID);
- mController.mPreference = mPreference;
- mPreference.setKey(mController.getPreferenceKey());
- }
-
- @Test
- public void onPreferenceChange_selectNV_returnNVMode() {
- mController.onPreferenceChange(mPreference, Integer.toString(
- TelephonyManager.CDMA_SUBSCRIPTION_NV));
-
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.CDMA_SUBSCRIPTION_MODE,
- TelephonyManager.CDMA_SUBSCRIPTION_RUIM_SIM)).isEqualTo(
- TelephonyManager.CDMA_SUBSCRIPTION_NV);
- }
-
- @Test
- public void updateState_stateRUIM_displayRUIM() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.CDMA_SUBSCRIPTION_MODE, TelephonyManager.CDMA_SUBSCRIPTION_NV);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.getValue()).isEqualTo(Integer.toString(
- TelephonyManager.CDMA_SUBSCRIPTION_NV));
- }
-
- @Test
- public void updateState_stateUnknown_doNothing() {
- mPreference.setValue(Integer.toString(TelephonyManager.CDMA_SUBSCRIPTION_NV));
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.CDMA_SUBSCRIPTION_MODE, TelephonyManager.CDMA_SUBSCRIPTION_UNKNOWN);
-
- mController.updateState(mPreference);
-
- // Still NV mode
- assertThat(mPreference.getValue()).isEqualTo(Integer.toString(
- TelephonyManager.CDMA_SUBSCRIPTION_NV));
- }
-
- @Test
- public void deviceSupportsNvAndRuim() {
- SystemProperties.set("ril.subscription.types", "NV,RUIM");
- assertThat(mController.deviceSupportsNvAndRuim()).isTrue();
-
- SystemProperties.set("ril.subscription.types", "");
-
- assertThat(mController.deviceSupportsNvAndRuim()).isFalse();
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java
deleted file mode 100644
index 2352b0f..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceControllerTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony.cdma;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.provider.Settings;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.preference.ListPreference;
-import androidx.preference.PreferenceManager;
-
-import com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants;
-
-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 CdmaSystemSelectPreferenceControllerTest {
- private static final int SUB_ID = 2;
-
- @Mock
- private PreferenceManager mPreferenceManager;
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private TelephonyManager mInvalidTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private CarrierConfigManager mCarrierConfigManager;
-
- private CdmaSystemSelectPreferenceController mController;
- private ListPreference mPreference;
- private PersistableBundle mCarrierConfig;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(Context.TELEPHONY_SERVICE);
- doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
- doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
- doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-
- doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
-
- mCarrierConfig = new PersistableBundle();
- when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
-
-
- mPreference = new ListPreference(mContext);
- mController = new CdmaSystemSelectPreferenceController(mContext, "mobile_data");
- mController.init(mPreferenceManager, SUB_ID);
- mController.mPreference = mPreference;
- mPreference.setKey(mController.getPreferenceKey());
- }
-
- @Test
- public void onPreferenceChange_selectHome_returnHomeMode() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_ANY);
-
- mController.onPreferenceChange(mPreference,
- Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_HOME));
-
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_ANY)).isEqualTo(
- TelephonyManager.CDMA_ROAMING_MODE_HOME);
- }
-
- @Test
- public void updateState_stateHome_displayHome() {
- doReturn(TelephonyManager.CDMA_ROAMING_MODE_HOME).when(
- mTelephonyManager).getCdmaRoamingMode();
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.getValue()).isEqualTo(
- Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_HOME));
- }
-
- @Test
- public void updateState_LteGSMWcdma_disabled() {
- doReturn(TelephonyManager.CDMA_ROAMING_MODE_HOME).when(
- mTelephonyManager).getCdmaRoamingMode();
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID,
- TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isEnabled()).isFalse();
- }
-
- @Test
- public void updateState_stateOther_resetToDefault() {
- Settings.Global.putInt(mContext.getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_HOME);
- doReturn(TelephonyManager.CDMA_ROAMING_MODE_AFFILIATED).when(
- mTelephonyManager).getCdmaRoamingMode();
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.getValue()).isEqualTo(
- Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_ANY));
- assertThat(Settings.Global.getInt(mContext.getContentResolver(),
- Settings.Global.CDMA_ROAMING_MODE,
- TelephonyManager.CDMA_ROAMING_MODE_HOME)).isEqualTo(
- TelephonyManager.CDMA_ROAMING_MODE_ANY);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.java
deleted file mode 100644
index d1a794d..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceControllerTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony.gsm;
-
-import static 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.ProgressDialog;
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.R;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.Robolectric;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class AutoSelectPreferenceControllerTest {
- private static final int SUB_ID = 2;
- private static final String OPERATOR_NAME = "T-mobile";
-
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private TelephonyManager mTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private CarrierConfigManager mCarrierConfigManager;
- @Mock
- private ProgressDialog mProgressDialog;
-
- private PersistableBundle mCarrierConfig;
- private AutoSelectPreferenceController mController;
- private SwitchPreference mSwitchPreference;
- private Context mContext;
- private LifecycleOwner mLifecycleOwner;
- private Lifecycle mLifecycle;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- mLifecycleOwner = () -> mLifecycle;
- mLifecycle = new Lifecycle(mLifecycleOwner);
- when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
- when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
- when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(
- mCarrierConfigManager);
- when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
-
- mCarrierConfig = new PersistableBundle();
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL,
- true);
- when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
-
- mSwitchPreference = new SwitchPreference(mContext);
- mController = new AutoSelectPreferenceController(mContext, "auto_select");
- mController.mProgressDialog = mProgressDialog;
- mController.mSwitchPreference = mSwitchPreference;
- mController.init(mLifecycle, SUB_ID);
- }
-
- @Test
- public void setChecked_isChecked_showProgressDialog() {
- when(mTelephonyManager.getNetworkSelectionMode()).thenReturn(
- TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
-
- assertThat(mController.setChecked(true)).isFalse();
- Robolectric.flushBackgroundThreadScheduler();
-
- verify(mProgressDialog).show();
- verify(mTelephonyManager).setNetworkSelectionModeAutomatic();
- }
-
- @Test
- public void updateState_isRoaming_enabled() {
- when(mTelephonyManager.getServiceState().getRoaming()).thenReturn(true);
-
- mController.updateState(mSwitchPreference);
-
- assertThat(mSwitchPreference.isEnabled()).isTrue();
- }
-
- @Test
- public void updateState_notRoamingWithAutoSelectOn_disabled() {
- when(mTelephonyManager.getServiceState().getRoaming()).thenReturn(false);
- doReturn(OPERATOR_NAME).when(mTelephonyManager).getSimOperatorName();
-
- mController.updateState(mSwitchPreference);
-
- assertThat(mSwitchPreference.isEnabled()).isFalse();
- assertThat(mSwitchPreference.getSummary()).isEqualTo(
- mContext.getString(R.string.manual_mode_disallowed_summary,
- mTelephonyManager.getSimOperatorName()));
- }
-
- @Test
- public void init_carrierConfigNull_shouldNotCrash() {
- when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(null);
-
- // Should not crash
- mController.init(mLifecycle, SUB_ID);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.java
deleted file mode 100644
index 60de5aa..0000000
--- a/tests/robotests/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.telephony.gsm;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.os.PersistableBundle;
-import android.telephony.CarrierConfigManager;
-import android.telephony.ServiceState;
-import android.telephony.SubscriptionInfo;
-import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.Arrays;
-
-@RunWith(RobolectricTestRunner.class)
-public class OpenNetworkSelectPagePreferenceControllerTest {
- private static final int SUB_ID = 2;
- private static final String OPERATOR_NAME = "T-mobile";
-
- @Mock
- private TelephonyManager mTelephonyManager;
- @Mock
- private SubscriptionManager mSubscriptionManager;
- @Mock
- private CarrierConfigManager mCarrierConfigManager;
- @Mock
- private ServiceState mServiceState;
- @Mock
- private SubscriptionInfo mSubscriptionInfo;
-
- private PersistableBundle mCarrierConfig;
- private OpenNetworkSelectPagePreferenceController mController;
- private Preference mPreference;
- private Context mContext;
- private LifecycleOwner mLifecycleOwner;
- private Lifecycle mLifecycle;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- mLifecycleOwner = () -> mLifecycle;
- mLifecycle = new Lifecycle(mLifecycleOwner);
- when(mContext.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);
- when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
- when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(
- mCarrierConfigManager);
- when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager);
- when(mTelephonyManager.getServiceState()).thenReturn(mServiceState);
-
- mCarrierConfig = new PersistableBundle();
- when(mCarrierConfigManager.getConfigForSubId(SUB_ID)).thenReturn(mCarrierConfig);
-
- when(mSubscriptionInfo.getSubscriptionId()).thenReturn(SUB_ID);
- when(mSubscriptionInfo.getCarrierName()).thenReturn(OPERATOR_NAME);
-
- when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(
- Arrays.asList(mSubscriptionInfo));
- when(mSubscriptionManager.getAccessibleSubscriptionInfoList()).thenReturn(
- Arrays.asList(mSubscriptionInfo));
-
- when(mTelephonyManager.getNetworkOperatorName()).thenReturn(OPERATOR_NAME);
-
- mPreference = new Preference(mContext);
- mController = new OpenNetworkSelectPagePreferenceController(mContext,
- "open_network_select");
- mController.init(mLifecycle, SUB_ID);
- }
-
- @Test
- public void updateState_modeAuto_disabled() {
- when(mTelephonyManager.getNetworkSelectionMode()).thenReturn(
- TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.isEnabled()).isFalse();
- }
-
- @Test
- public void getSummary_inService_returnOperatorName() {
- when(mServiceState.getState()).thenReturn(ServiceState.STATE_IN_SERVICE);
-
- assertThat(mController.getSummary()).isEqualTo(OPERATOR_NAME);
- }
-
- @Test
- public void getSummary_notInService_returnDisconnect() {
- when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
-
- assertThat(mController.getSummary()).isEqualTo(
- mContext.getString(R.string.network_disconnected));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/panel/FakeSettingsPanelActivity.java b/tests/robotests/src/com/android/settings/panel/FakeSettingsPanelActivity.java
index 2a62b54..ba763ce 100644
--- a/tests/robotests/src/com/android/settings/panel/FakeSettingsPanelActivity.java
+++ b/tests/robotests/src/com/android/settings/panel/FakeSettingsPanelActivity.java
@@ -30,4 +30,4 @@
final Intent intent = new Intent(FakePanelContent.FAKE_ACTION);
return intent;
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/panel/MediaOutputGroupPanelTest.java b/tests/robotests/src/com/android/settings/panel/MediaOutputGroupPanelTest.java
deleted file mode 100644
index 003fda7..0000000
--- a/tests/robotests/src/com/android/settings/panel/MediaOutputGroupPanelTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.panel;
-
-import static com.android.settings.media.MediaOutputSlice.MEDIA_PACKAGE_NAME;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.Uri;
-
-import com.android.settings.slices.CustomSliceRegistry;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class MediaOutputGroupPanelTest {
-
- private static final String TEST_PACKAGENAME = "com.test.packagename";
-
- private MediaOutputGroupPanel mPanel;
- private Context mContext;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = spy(RuntimeEnvironment.application);
- when(mContext.getApplicationContext()).thenReturn(mContext);
- mPanel = MediaOutputGroupPanel.create(mContext, TEST_PACKAGENAME);
- }
-
- @Test
- public void getSlices_containsNecessarySlices() {
- final List<Uri> uris = mPanel.getSlices();
-
- assertThat(uris).containsExactly(CustomSliceRegistry.MEDIA_OUTPUT_GROUP_SLICE_URI);
- }
-
- @Test
- public void getSlices_verifyPackageName_isEqual() {
- final List<Uri> uris = mPanel.getSlices();
-
- assertThat(uris.get(0).getQueryParameter(MEDIA_PACKAGE_NAME)).isEqualTo(TEST_PACKAGENAME);
- }
-
- @Test
- public void getSeeMoreIntent_isNull() {
- assertThat(mPanel.getSeeMoreIntent()).isNull();
- }
-
- @Test
- public void getViewType_checkType() {
- assertThat(mPanel.getViewType()).isEqualTo(PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
index 405e4c3..41935c4 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelFragmentTest.java
@@ -18,7 +18,6 @@
package com.android.settings.panel;
import static com.android.settings.panel.PanelContent.VIEW_TYPE_SLIDER;
-import static com.android.settings.panel.PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON;
import static com.google.common.truth.Truth.assertThat;
@@ -213,22 +212,6 @@
}
@Test
- public void sliderLargeIconPanelType_displayFooterDivider() {
- mFakePanelContent.setViewType(VIEW_TYPE_SLIDER_LARGE_ICON);
- final ActivityController<FakeSettingsPanelActivity> activityController =
- Robolectric.buildActivity(FakeSettingsPanelActivity.class);
- activityController.setup();
- final PanelFragment panelFragment = (PanelFragment)
- Objects.requireNonNull(activityController
- .get()
- .getSupportFragmentManager()
- .findFragmentById(R.id.main_content));
- final View footerDivider = panelFragment.mLayoutView.findViewById(R.id.footer_divider);
- // Check visibility
- assertThat(footerDivider.getVisibility()).isEqualTo(View.VISIBLE);
- }
-
- @Test
public void sliderPanelType_notDisplayFooterDivider() {
mFakePanelContent.setViewType(VIEW_TYPE_SLIDER);
final ActivityController<FakeSettingsPanelActivity> activityController =
diff --git a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
index f8c2f84..ac74fe5 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/panel/PanelSlicesAdapterTest.java
@@ -17,11 +17,8 @@
package com.android.settings.panel;
import static com.android.settings.panel.PanelContent.VIEW_TYPE_SLIDER;
-import static com.android.settings.panel.PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON;
import static com.android.settings.panel.PanelSlicesAdapter.MAX_NUM_OF_SLICES;
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_GROUP_SLICE_URI;
import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_INDICATOR_SLICE_URI;
-import static com.android.settings.slices.CustomSliceRegistry.MEDIA_OUTPUT_SLICE_URI;
import static com.android.settings.slices.CustomSliceRegistry.VOLUME_MEDIA_URI;
import static com.google.common.truth.Truth.assertThat;
@@ -144,22 +141,6 @@
}
@Test
- public void sliderLargeIconPanel_shouldNotAllowDividerBelow() {
- addTestLiveData(MEDIA_OUTPUT_SLICE_URI);
- mFakePanelContent.setViewType(PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
-
- final PanelSlicesAdapter adapter =
- new PanelSlicesAdapter(mPanelFragment, mData, 0 /* metrics category */);
- final int position = 0;
- final ViewGroup view = new FrameLayout(mContext);
- final SliceRowViewHolder viewHolder =
- adapter.onCreateViewHolder(view, PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
- adapter.onBindViewHolder(viewHolder, position);
-
- assertThat(viewHolder.isDividerAllowedBelow()).isFalse();
- }
-
- @Test
public void sliderPanelType_shouldAllowDividerBelow() {
addTestLiveData(VOLUME_MEDIA_URI);
mFakePanelContent.setViewType(PanelContent.VIEW_TYPE_SLIDER);
@@ -191,42 +172,6 @@
}
@Test
- public void outputSwitcherSlice_shouldAddFirstItemPadding() {
- addTestLiveData(MEDIA_OUTPUT_SLICE_URI);
-
- final PanelSlicesAdapter adapter =
- new PanelSlicesAdapter(mPanelFragment, mData, 0 /* metrics category */);
- final int position = 0;
- final ViewGroup view = new FrameLayout(mContext);
- final SliceRowViewHolder viewHolder =
- adapter.onCreateViewHolder(view, PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
-
- adapter.onBindViewHolder(viewHolder, position);
-
- assertThat(viewHolder.mSliceSliderLayout.getPaddingTop()).isEqualTo(
- mPanelFragment.getResources().getDimensionPixelSize(
- R.dimen.output_switcher_slice_padding_top));
- }
-
- @Test
- public void outputSwitcherGroupSlice_shouldAddFirstItemPadding() {
- addTestLiveData(MEDIA_OUTPUT_GROUP_SLICE_URI);
-
- final PanelSlicesAdapter adapter =
- new PanelSlicesAdapter(mPanelFragment, mData, 0 /* metrics category */);
- final int position = 0;
- final ViewGroup view = new FrameLayout(mContext);
- final SliceRowViewHolder viewHolder =
- adapter.onCreateViewHolder(view, PanelContent.VIEW_TYPE_SLIDER_LARGE_ICON);
-
- adapter.onBindViewHolder(viewHolder, position);
-
- assertThat(viewHolder.mSliceSliderLayout.getPaddingTop()).isEqualTo(
- mPanelFragment.getResources().getDimensionPixelSize(
- R.dimen.output_switcher_slice_padding_top));
- }
-
- @Test
public void mediaOutputIndicatorSlice_notSliderPanel_noSliderLayout() {
addTestLiveData(MEDIA_OUTPUT_INDICATOR_SLICE_URI);
@@ -256,19 +201,6 @@
}
@Test
- public void onCreateViewHolder_viewTypeSliderLargeIcon_verifyLayout() {
- final PanelSlicesAdapter adapter = new PanelSlicesAdapter(mPanelFragment, mData, 0);
- final ViewGroup view = new FrameLayout(mContext);
- final ArgumentCaptor<Integer> intArgumentCaptor = ArgumentCaptor.forClass(Integer.class);
-
- adapter.onCreateViewHolder(view, VIEW_TYPE_SLIDER_LARGE_ICON);
-
- verify(sLayoutInflater).inflate(intArgumentCaptor.capture(), eq(view), eq(false));
- assertThat(intArgumentCaptor.getValue()).isEqualTo(
- R.layout.panel_slice_slider_row_large_icon);
- }
-
- @Test
public void onCreateViewHolder_viewTypeDefault_verifyLayout() {
final PanelSlicesAdapter adapter =
new PanelSlicesAdapter(mPanelFragment, mData, 0);
diff --git a/tests/robotests/src/com/android/settings/search/FakeSettingsFragment.java b/tests/robotests/src/com/android/settings/search/FakeSettingsFragment.java
index 19282dd..7a229f6 100644
--- a/tests/robotests/src/com/android/settings/search/FakeSettingsFragment.java
+++ b/tests/robotests/src/com/android/settings/search/FakeSettingsFragment.java
@@ -115,4 +115,4 @@
return keys;
}
};
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/security/CredentialManagementAppControllerTest.java b/tests/robotests/src/com/android/settings/security/CredentialManagementAppControllerTest.java
index 1e6f203..36f056c 100644
--- a/tests/robotests/src/com/android/settings/security/CredentialManagementAppControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/CredentialManagementAppControllerTest.java
@@ -26,6 +26,7 @@
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
@@ -55,6 +56,7 @@
}
@Test
+ @Ignore
public void updateState_noCredentialManagementApp_shouldDisablePreference() {
mController.updateState(mPreference);
diff --git a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
index 8f861eb..84e88cb 100644
--- a/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
+++ b/tests/robotests/src/com/android/settings/sim/SimSelectNotificationTest.java
@@ -21,11 +21,17 @@
import static android.provider.Settings.ENABLE_MMS_DATA_REQUEST_REASON_OUTGOING_MMS;
import static android.provider.Settings.EXTRA_ENABLE_MMS_DATA_REQUEST_REASON;
import static android.provider.Settings.EXTRA_SUB_ID;
+import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE;
+import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA;
+import static android.telephony.TelephonyManager.EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DISMISS;
import static android.telephony.TelephonyManager.EXTRA_SIM_COMBINATION_NAMES;
import static android.telephony.TelephonyManager.EXTRA_SIM_COMBINATION_WARNING_TYPE;
import static android.telephony.TelephonyManager.EXTRA_SIM_COMBINATION_WARNING_TYPE_DUAL_CDMA;
import static android.telephony.data.ApnSetting.TYPE_MMS;
+import static com.android.settings.sim.SimDialogActivity.DATA_PICK;
+import static com.android.settings.sim.SimDialogActivity.INVALID_PICK;
+import static com.android.settings.sim.SimDialogActivity.PICK_DISMISS;
import static com.android.settings.sim.SimSelectNotification.ENABLE_MMS_NOTIFICATION_CHANNEL;
import static com.android.settings.sim.SimSelectNotification.ENABLE_MMS_NOTIFICATION_ID;
import static com.android.settings.sim.SimSelectNotification.SIM_WARNING_NOTIFICATION_CHANNEL;
@@ -36,6 +42,7 @@
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -54,7 +61,6 @@
import android.telephony.TelephonyManager;
import com.android.settings.R;
-
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import org.junit.Before;
@@ -197,6 +203,50 @@
}
@Test
+ public void onReceivePrimarySubListChange_WithDataPickExtra_shouldStartActivity() {
+ Intent intent = new Intent(TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED);
+ intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE,
+ EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA);
+
+ mSimSelectNotification.onReceive(mContext, intent);
+
+ ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+ verify(mContext).startActivity(intentCaptor.capture());
+ Intent capturedIntent = intentCaptor.getValue();
+ assertThat(capturedIntent).isNotNull();
+ assertThat(capturedIntent.getComponent().getClassName()).isEqualTo(
+ SimDialogActivity.class.getName());
+ assertThat(capturedIntent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK)
+ .isNotEqualTo(0);
+ assertThat(capturedIntent.getIntExtra(SimDialogActivity.DIALOG_TYPE_KEY, INVALID_PICK))
+ .isEqualTo(DATA_PICK);
+ }
+
+ @Test
+ public void onReceivePrimarySubListChange_WithDismissExtra_shouldDismiss() {
+ Intent intent = new Intent(TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED);
+ intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE,
+ EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DATA);
+
+ mSimSelectNotification.onReceive(mContext, intent);
+ clearInvocations(mContext);
+
+ // Dismiss.
+ intent.putExtra(EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE,
+ EXTRA_DEFAULT_SUBSCRIPTION_SELECT_TYPE_DISMISS);
+ mSimSelectNotification.onReceive(mContext, intent);
+ ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+ verify(mContext).startActivity(intentCaptor.capture());
+ Intent capturedIntent = intentCaptor.getValue();
+ assertThat(capturedIntent).isNotNull();
+ assertThat(capturedIntent.getComponent().getClassName()).isEqualTo(
+ SimDialogActivity.class.getName());
+ assertThat(capturedIntent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK)
+ .isNotEqualTo(0);
+ assertThat(capturedIntent.getIntExtra(SimDialogActivity.DIALOG_TYPE_KEY, INVALID_PICK))
+ .isEqualTo(PICK_DISMISS);
+ }
+ @Test
public void onReceivePrimarySubListChange_DualCdmaWarning_notificationShouldSend() {
Intent intent = new Intent(TelephonyManager.ACTION_PRIMARY_SUBSCRIPTION_LIST_CHANGED);
diff --git a/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java b/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java
index 8bceb13..6812451 100644
--- a/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java
+++ b/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java
@@ -12,9 +12,7 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
*/
-
package com.android.settings.testutils;
import android.content.Context;
@@ -26,8 +24,6 @@
import com.android.settings.core.TogglePreferenceController;
import com.android.settings.slices.SliceBackgroundWorker;
-import java.io.IOException;
-
public class FakeToggleController extends TogglePreferenceController {
public static final String AVAILABILITY_KEY = "fake_toggle_availability_key";
diff --git a/tests/robotests/src/com/android/settings/testutils/SliceTester.java b/tests/robotests/src/com/android/settings/testutils/SliceTester.java
index f2cce3c..ede5fbd 100644
--- a/tests/robotests/src/com/android/settings/testutils/SliceTester.java
+++ b/tests/robotests/src/com/android/settings/testutils/SliceTester.java
@@ -322,4 +322,4 @@
expectedKeywords.add(data.getScreenTitle().toString());
assertThat(keywords).containsExactlyElementsIn(expectedKeywords);
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/widget/DonutViewTest.java b/tests/robotests/src/com/android/settings/widget/DonutViewTest.java
deleted file mode 100644
index cc41f92..0000000
--- a/tests/robotests/src/com/android/settings/widget/DonutViewTest.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.android.settings.widget;
-
-import android.content.Context;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class DonutViewTest {
- @Test
- public void getPercentageStringSpannable_doesntCrashForMissingPercentage() {
- Context context = RuntimeEnvironment.application;
-
- DonutView.getPercentageStringSpannable(context.getResources(), "50%", "h");
- }
-}
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java
index 0e1ca92..f601e36 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiDialogActivityTest.java
@@ -36,6 +36,7 @@
import org.junit.After;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -97,6 +98,7 @@
}
@Test
+ @Ignore
public void onSubmit2_whenConnectForCallerIsTrue_shouldConnectToNetwork() {
final Intent intent = new Intent("com.android.settings.WIFI_DIALOG");
intent.putExtra(WifiDialogActivity.KEY_CHOSEN_WIFIENTRY_KEY, "FAKE_KEY");
@@ -136,6 +138,7 @@
}
@Test
+ @Ignore
public void onSubmit2_whenConnectForCallerIsFalse_shouldNotConnectToNetwork() {
final Intent intent = new Intent("com.android.settings.WIFI_DIALOG");
intent.putExtra(WifiDialogActivity.KEY_CHOSEN_WIFIENTRY_KEY, "FAKE_KEY");
diff --git a/tests/unit/Android.bp b/tests/unit/Android.bp
index 7556cbe..b857a0a 100644
--- a/tests/unit/Android.bp
+++ b/tests/unit/Android.bp
@@ -18,6 +18,7 @@
"androidx.test.espresso.contrib-nodeps",
"androidx.test.espresso.intents-nodeps",
"androidx.test.ext.junit",
+ "androidx.preference_preference",
"mockito-target-minus-junit4",
"platform-test-annotations",
"truth-prebuilt",
diff --git a/tests/unit/OWNERS b/tests/unit/OWNERS
new file mode 100644
index 0000000..4123742
--- /dev/null
+++ b/tests/unit/OWNERS
@@ -0,0 +1,2 @@
+# Additional reviewers for this and subdirectories.
+goldmanj@google.com
diff --git a/tests/robotests/src/com/android/settings/LinkifyUtilsTest.java b/tests/unit/src/com/android/settings/LinkifyUtilsTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/LinkifyUtilsTest.java
rename to tests/unit/src/com/android/settings/LinkifyUtilsTest.java
index de06302..34586d5 100644
--- a/tests/robotests/src/com/android/settings/LinkifyUtilsTest.java
+++ b/tests/unit/src/com/android/settings/LinkifyUtilsTest.java
@@ -21,13 +21,14 @@
import android.text.style.ClickableSpan;
import android.widget.TextView;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class LinkifyUtilsTest {
private static final String TEST_STRING = "to LINK_BEGINscanning settingsLINK_END.";
private static final String WRONG_STRING = "to scanning settingsLINK_END.";
@@ -41,7 +42,7 @@
public void setUp() throws Exception {
mSpanStringBuilder = new StringBuilder(TEST_STRING);
mWrongSpanStringBuilder = new StringBuilder(WRONG_STRING);
- mTextView = new TextView(RuntimeEnvironment.application);
+ mTextView = new TextView(ApplicationProvider.getApplicationContext());
}
@Test
diff --git a/tests/unit/src/com/android/settings/TestUtils.java b/tests/unit/src/com/android/settings/TestUtils.java
new file mode 100644
index 0000000..d7b1ea4
--- /dev/null
+++ b/tests/unit/src/com/android/settings/TestUtils.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings;
+
+/**
+ * Convenience methods and constants for testing.
+ */
+public class TestUtils {
+ public static final long KILOBYTE = 1024L; // TODO: Change to 1000 in O Robolectric.
+ public static final long MEGABYTE = KILOBYTE * KILOBYTE;
+ public static final long GIGABYTE = KILOBYTE * MEGABYTE;
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceControllerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceControllerTest.java
index 53f6cc0..7d903ee 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/AccessibilityShortcutPreferenceControllerTest.java
@@ -19,6 +19,9 @@
import static com.android.settings.accessibility.AccessibilityUtil.State.OFF;
import static com.android.settings.accessibility.AccessibilityUtil.State.ON;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
@@ -30,10 +33,8 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class AccessibilityShortcutPreferenceControllerTest {
private Context mContext;
@@ -42,7 +43,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mPreference = new SwitchPreference(mContext);
mController = new AccessibilityShortcutPreferenceController(mContext,
"accessibility_shortcut_preference");
diff --git a/tests/robotests/src/com/android/settings/accessibility/DisableAnimationsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/DisableAnimationsPreferenceControllerTest.java
similarity index 92%
rename from tests/robotests/src/com/android/settings/accessibility/DisableAnimationsPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/accessibility/DisableAnimationsPreferenceControllerTest.java
index 245fb74..5706008 100644
--- a/tests/robotests/src/com/android/settings/accessibility/DisableAnimationsPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/DisableAnimationsPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -26,16 +26,16 @@
import android.provider.Settings;
import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class DisableAnimationsPreferenceControllerTest {
private Context mContext;
@@ -44,7 +44,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mPreference = new SwitchPreference(mContext);
mController = new DisableAnimationsPreferenceController(mContext, "disable_animation");
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java
index eb49edd..7f4048d 100644
--- a/tests/robotests/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/FontWeightAdjustmentPreferenceControllerTest.java
@@ -22,16 +22,16 @@
import android.provider.Settings;
import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class FontWeightAdjustmentPreferenceControllerTest {
private static final int ON = FontWeightAdjustmentPreferenceController.BOLD_TEXT_ADJUSTMENT;
private static final int OFF = 0;
@@ -42,7 +42,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mPreference = new SwitchPreference(mContext);
mController = new FontWeightAdjustmentPreferenceController(
mContext, "font_weight_adjustment");
diff --git a/tests/robotests/src/com/android/settings/accessibility/HighTextContrastPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/HighTextContrastPreferenceControllerTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/accessibility/HighTextContrastPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/accessibility/HighTextContrastPreferenceControllerTest.java
index 6eaf7a7..6250fef 100644
--- a/tests/robotests/src/com/android/settings/accessibility/HighTextContrastPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/HighTextContrastPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,16 +22,16 @@
import android.provider.Settings;
import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class HighTextContrastPreferenceControllerTest {
private static final int ON = 1;
@@ -44,7 +44,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mPreference = new SwitchPreference(mContext);
mController = new HighTextContrastPreferenceController(mContext, "text_contrast");
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/LargePointerIconPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/LargePointerIconPreferenceControllerTest.java
similarity index 92%
rename from tests/robotests/src/com/android/settings/accessibility/LargePointerIconPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/accessibility/LargePointerIconPreferenceControllerTest.java
index 1f7f5ad..db588e8 100644
--- a/tests/robotests/src/com/android/settings/accessibility/LargePointerIconPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/LargePointerIconPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,16 +25,16 @@
import android.provider.Settings;
import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class LargePointerIconPreferenceControllerTest {
private static final int UNKNOWN = -1;
@@ -45,7 +45,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mPreference = new SwitchPreference(mContext);
mController = new LargePointerIconPreferenceController(mContext, "large_pointer");
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/MagnificationPreferenceControllerTest.java
similarity index 83%
rename from tests/robotests/src/com/android/settings/accessibility/MagnificationPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/accessibility/MagnificationPreferenceControllerTest.java
index d462c2a..a81c3e4 100644
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/MagnificationPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,15 +20,16 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class MagnificationPreferenceControllerTest {
private Context mContext;
@@ -36,7 +37,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new MagnificationPreferenceController(mContext, "magnification");
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/PreferredShortcutTest.java b/tests/unit/src/com/android/settings/accessibility/PreferredShortcutTest.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/accessibility/PreferredShortcutTest.java
rename to tests/unit/src/com/android/settings/accessibility/PreferredShortcutTest.java
diff --git a/tests/robotests/src/com/android/settings/accessibility/PreferredShortcutsTest.java b/tests/unit/src/com/android/settings/accessibility/PreferredShortcutsTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/accessibility/PreferredShortcutsTest.java
rename to tests/unit/src/com/android/settings/accessibility/PreferredShortcutsTest.java
index a694aa3..95a0b83 100644
--- a/tests/robotests/src/com/android/settings/accessibility/PreferredShortcutsTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/PreferredShortcutsTest.java
@@ -22,13 +22,13 @@
import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
/** Tests for {@link PreferredShortcuts} */
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class PreferredShortcutsTest {
private static final String PACKAGE_NAME_1 = "com.test1.example";
diff --git a/tests/robotests/src/com/android/settings/accessibility/PrimaryMonoPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/PrimaryMonoPreferenceControllerTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/accessibility/PrimaryMonoPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/accessibility/PrimaryMonoPreferenceControllerTest.java
index fab1b95..8caeaff 100644
--- a/tests/robotests/src/com/android/settings/accessibility/PrimaryMonoPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/PrimaryMonoPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,16 +23,16 @@
import android.provider.Settings;
import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class PrimaryMonoPreferenceControllerTest {
private static final int ON = 1;
@@ -45,7 +45,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mPreference = new SwitchPreference(mContext);
mController = new PrimaryMonoPreferenceController(mContext, "test_key");
}
diff --git a/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java
new file mode 100644
index 0000000..dee8817
--- /dev/null
+++ b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.provider.Settings;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class ReduceBrightColorsIntensityPreferenceControllerTest {
+
+ private Context mContext;
+ private Resources mResources;
+ private ReduceBrightColorsIntensityPreferenceController mPreferenceController;
+
+ @Before
+ public void setUp() {
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mResources = spy(mContext.getResources());
+ when(mContext.getResources()).thenReturn(mResources);
+ mPreferenceController = new ReduceBrightColorsIntensityPreferenceController(mContext,
+ "rbc_intensity");
+ }
+
+ @Test
+ public void isAvailable_configuredRbcAvailable_enabledRbc_shouldReturnTrue() {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1);
+ doReturn(true).when(mResources).getBoolean(
+ com.android.internal.R.bool.config_setColorTransformAccelerated);
+ assertThat(mPreferenceController.isAvailable()).isTrue();
+ }
+ @Test
+ public void isAvailable_configuredRbcAvailable_disabledRbc_shouldReturnTrue() {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 0);
+ doReturn(true).when(mResources).getBoolean(
+ com.android.internal.R.bool.config_setColorTransformAccelerated);
+ assertThat(mPreferenceController.isAvailable()).isTrue();
+ }
+ @Test
+ public void isAvailable_configuredRbcUnavailable_enabledRbc_shouldReturnFalse() {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1);
+ doReturn(false).when(mResources).getBoolean(
+ com.android.internal.R.bool.config_setColorTransformAccelerated);
+ assertThat(mPreferenceController.isAvailable()).isFalse();
+ }
+
+ @Test
+ public void onPreferenceChange_changesTemperature() {
+ Settings.Secure.putInt(mContext.getContentResolver(),
+ Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1);
+ mPreferenceController.onPreferenceChange(/* preference= */ null, 20);
+ assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+ Settings.Secure.REDUCE_BRIGHT_COLORS_LEVEL, 0))
+ .isEqualTo(20);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceControllerTest.java
similarity index 100%
rename from tests/robotests/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceControllerTest.java
diff --git a/tests/robotests/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java
similarity index 90%
rename from tests/robotests/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java
index 1bdfb41..899fc09 100644
--- a/tests/robotests/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/accessibility/SelectLongPressTimeoutPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,15 +21,16 @@
import android.content.Context;
import android.provider.Settings;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class SelectLongPressTimeoutPreferenceControllerTest {
private static final int VALID_VALUE = 1500;
private static final int INVALID_VALUE = 0;
@@ -40,7 +41,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new SelectLongPressTimeoutPreferenceController(mContext, "press_timeout");
}
diff --git a/tests/robotests/src/com/android/settings/accounts/RemoveUserFragmentTest.java b/tests/unit/src/com/android/settings/accounts/RemoveUserFragmentTest.java
similarity index 87%
rename from tests/robotests/src/com/android/settings/accounts/RemoveUserFragmentTest.java
rename to tests/unit/src/com/android/settings/accounts/RemoveUserFragmentTest.java
index 4537eb9..e38f42d 100644
--- a/tests/robotests/src/com/android/settings/accounts/RemoveUserFragmentTest.java
+++ b/tests/unit/src/com/android/settings/accounts/RemoveUserFragmentTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,13 +18,14 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import java.lang.reflect.Modifier;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class RemoveUserFragmentTest {
@Test
diff --git a/tests/robotests/src/com/android/settings/accounts/SyncStateSwitchPreferenceTest.java b/tests/unit/src/com/android/settings/accounts/SyncStateSwitchPreferenceTest.java
similarity index 86%
rename from tests/robotests/src/com/android/settings/accounts/SyncStateSwitchPreferenceTest.java
rename to tests/unit/src/com/android/settings/accounts/SyncStateSwitchPreferenceTest.java
index 9c7b346..cda6373 100644
--- a/tests/robotests/src/com/android/settings/accounts/SyncStateSwitchPreferenceTest.java
+++ b/tests/unit/src/com/android/settings/accounts/SyncStateSwitchPreferenceTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,13 +22,14 @@
import android.content.Context;
import android.os.UserHandle;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class SyncStateSwitchPreferenceTest {
private Context mContext;
@@ -36,7 +37,7 @@
@Before
public void setup() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java b/tests/unit/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java
similarity index 85%
rename from tests/robotests/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java
rename to tests/unit/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java
index 277f63e..a3bfff9 100644
--- a/tests/robotests/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java
+++ b/tests/unit/src/com/android/settings/applications/AppStateInstallAppsBridgeTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,26 +11,26 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-
package com.android.settings.applications;
import static com.google.common.truth.Truth.assertThat;
import android.app.AppOpsManager;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class AppStateInstallAppsBridgeTest {
@Test
public void testInstallAppsStateCanInstallApps() {
AppStateInstallAppsBridge.InstallAppsState appState =
- new AppStateInstallAppsBridge.InstallAppsState();
+ new AppStateInstallAppsBridge.InstallAppsState();
assertThat(appState.canInstallApps()).isFalse();
appState.permissionRequested = true;
@@ -46,7 +46,7 @@
@Test
public void testInstallAppsStateIsPotentialAppSource() {
AppStateInstallAppsBridge.InstallAppsState appState =
- new AppStateInstallAppsBridge.InstallAppsState();
+ new AppStateInstallAppsBridge.InstallAppsState();
assertThat(appState.isPotentialAppSource()).isFalse();
appState.appOpMode = AppOpsManager.MODE_ERRORED;
diff --git a/tests/robotests/src/com/android/settings/applications/EnterpriseDefaultAppsTest.java b/tests/unit/src/com/android/settings/applications/EnterpriseDefaultAppsTest.java
similarity index 85%
rename from tests/robotests/src/com/android/settings/applications/EnterpriseDefaultAppsTest.java
rename to tests/unit/src/com/android/settings/applications/EnterpriseDefaultAppsTest.java
index 558334d..b956089 100644
--- a/tests/robotests/src/com/android/settings/applications/EnterpriseDefaultAppsTest.java
+++ b/tests/unit/src/com/android/settings/applications/EnterpriseDefaultAppsTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,24 +11,24 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-
package com.android.settings.applications;
import static org.junit.Assert.assertTrue;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.R;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class EnterpriseDefaultAppsTest {
@Test
public void testNumberOfIntentsCorrelateWithUI() {
- final int concatenation_templates[] =
+ final int[] concatenation_templates =
new int[]{0 /* no need for single app name */,
R.string.app_names_concatenation_template_2,
R.string.app_names_concatenation_template_3};
diff --git a/tests/robotests/src/com/android/settings/applications/assist/AssistSettingObserverTest.java b/tests/unit/src/com/android/settings/applications/assist/AssistSettingObserverTest.java
similarity index 88%
rename from tests/robotests/src/com/android/settings/applications/assist/AssistSettingObserverTest.java
rename to tests/unit/src/com/android/settings/applications/assist/AssistSettingObserverTest.java
index f930106..2bfdd0c 100644
--- a/tests/robotests/src/com/android/settings/applications/assist/AssistSettingObserverTest.java
+++ b/tests/unit/src/com/android/settings/applications/assist/AssistSettingObserverTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,13 +18,14 @@
import android.net.Uri;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import java.util.List;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class AssistSettingObserverTest {
@Test
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java b/tests/unit/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java
rename to tests/unit/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java
index 4c51ae7..ba7a0d2 100644
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java
+++ b/tests/unit/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -37,11 +37,12 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class AppFilterRegistryTest {
@Test
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceControllerTest.java b/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceControllerTest.java
similarity index 82%
rename from tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceControllerTest.java
index 6dd53a3..c46f84a 100644
--- a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,13 +20,14 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class FaceSettingsAttentionPreferenceControllerTest {
private Context mContext;
@@ -34,7 +35,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new FaceSettingsAttentionPreferenceController(mContext);
}
diff --git a/tests/unit/src/com/android/settings/core/BadPreferenceController.java b/tests/unit/src/com/android/settings/core/BadPreferenceController.java
new file mode 100644
index 0000000..68d3b53
--- /dev/null
+++ b/tests/unit/src/com/android/settings/core/BadPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core;
+
+import android.content.Context;
+
+public class BadPreferenceController extends BasePreferenceController {
+
+ public BadPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ throw new IllegalArgumentException("error");
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public boolean useDynamicSliceSummary() {
+ return true;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/core/BasePreferenceControllerSignatureInspector.java b/tests/unit/src/com/android/settings/core/BasePreferenceControllerSignatureInspector.java
new file mode 100644
index 0000000..d2f5346
--- /dev/null
+++ b/tests/unit/src/com/android/settings/core/BasePreferenceControllerSignatureInspector.java
@@ -0,0 +1,96 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import android.content.Context;
+
+import com.android.settings.core.codeinspection.CodeInspector;
+
+import java.lang.reflect.Constructor;
+import java.util.ArrayList;
+import java.util.List;
+
+public class BasePreferenceControllerSignatureInspector extends CodeInspector {
+
+ private final List<String> mExemptList;
+
+ public BasePreferenceControllerSignatureInspector(List<Class<?>> classes) {
+ super(classes);
+ mExemptList = new ArrayList<>();
+ initializeExemptList(mExemptList,
+ "exempt_invalid_base_preference_controller_constructor");
+ }
+
+ @Override
+ public void run() {
+ StringBuilder badClasses = new StringBuilder();
+
+ for (Class c : mClasses) {
+ if (!isConcreteSettingsClass(c)) {
+ // Not a Settings class, or is abstract, don't care.
+ continue;
+ }
+ if (!BasePreferenceController.class.isAssignableFrom(c)) {
+ // Not a BasePreferenceController, don't care.
+ continue;
+ }
+ final String className = c.getName();
+ if (mExemptList.remove(className)) {
+ continue;
+ }
+ final Constructor[] constructors = c.getDeclaredConstructors();
+ if (constructors == null || constructors.length == 0) {
+ badClasses.append(c.getName()).append(",");
+ }
+
+ boolean hasValidConstructor = false;
+ for (Constructor constructor : constructors) {
+ if (hasValidConstructorSignature(constructor)) {
+ hasValidConstructor = true;
+ break;
+ }
+ }
+ if (!hasValidConstructor) {
+ badClasses.append(className).append(",");
+ }
+ }
+
+ assertWithMessage("All BasePreferenceController (and subclasses) constructor must either"
+ + " only take Context, or (Context, String). No other types are allowed")
+ .that(badClasses.toString())
+ .isEmpty();
+
+ assertWithMessage("Something in the exempt list is no longer relevant. Please remove"
+ + "it from packages/apps/Settings/tests/robotests/assets/"
+ + "exempt_invalid_base_preference_controller_constructor")
+ .that(mExemptList)
+ .isEmpty();
+ }
+
+ private static boolean hasValidConstructorSignature(Constructor constructor) {
+ final Class[] parameterTypes = constructor.getParameterTypes();
+ if (parameterTypes.length == 1) {
+ return Context.class.isAssignableFrom(parameterTypes[0]);
+ } else if (parameterTypes.length == 2) {
+ return Context.class.isAssignableFrom(parameterTypes[0])
+ && String.class.isAssignableFrom(parameterTypes[1]);
+ }
+ return false;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/core/SettingsSliderPreferenceControllerTest.java b/tests/unit/src/com/android/settings/core/SettingsSliderPreferenceControllerTest.java
similarity index 73%
rename from tests/robotests/src/com/android/settings/core/SettingsSliderPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/core/SettingsSliderPreferenceControllerTest.java
index a04ec37..846ffd7 100644
--- a/tests/robotests/src/com/android/settings/core/SettingsSliderPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/core/SettingsSliderPreferenceControllerTest.java
@@ -1,33 +1,35 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
- * Unless required by applicable law or agreed to in writing, software distributed under the
- * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
-
package com.android.settings.core;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.slices.SliceData;
import com.android.settings.widget.SeekBarPreference;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class SettingsSliderPreferenceControllerTest {
private FakeSliderPreferenceController mSliderController;
@@ -36,9 +38,9 @@
@Before
public void setUp() {
- mPreference = new SeekBarPreference(RuntimeEnvironment.application);
- mSliderController = new FakeSliderPreferenceController(RuntimeEnvironment.application,
- "key");
+ mPreference = new SeekBarPreference(ApplicationProvider.getApplicationContext());
+ mSliderController = new FakeSliderPreferenceController(
+ ApplicationProvider.getApplicationContext(), "key");
mPreference.setContinuousUpdates(true);
mPreference.setMin(mSliderController.getMin());
@@ -71,7 +73,7 @@
private class FakeSliderPreferenceController extends SliderPreferenceController {
- private final int MAX_STEPS = 2112;
+ private static final int MAX_STEPS = 2112;
private int mPosition;
private FakeSliderPreferenceController(Context context, String key) {
diff --git a/tests/robotests/src/com/android/settings/core/TogglePreferenceControllerTest.java b/tests/unit/src/com/android/settings/core/TogglePreferenceControllerTest.java
similarity index 89%
rename from tests/robotests/src/com/android/settings/core/TogglePreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/core/TogglePreferenceControllerTest.java
index 541f0c4..8817a17 100644
--- a/tests/robotests/src/com/android/settings/core/TogglePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/core/TogglePreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,16 +20,16 @@
import android.content.Context;
import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.slices.SliceData;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class TogglePreferenceControllerTest {
private FakeToggle mToggleController;
@@ -39,7 +39,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mPreference = new SwitchPreference(mContext);
mToggleController = new FakeToggle(mContext, "key");
}
@@ -102,7 +102,7 @@
private static class FakeToggle extends TogglePreferenceController {
- private boolean checkedFlag;
+ private boolean mCheckedFlag;
private FakeToggle(Context context, String preferenceKey) {
super(context, preferenceKey);
@@ -110,12 +110,12 @@
@Override
public boolean isChecked() {
- return checkedFlag;
+ return mCheckedFlag;
}
@Override
public boolean setChecked(boolean isChecked) {
- checkedFlag = isChecked;
+ mCheckedFlag = isChecked;
return true;
}
diff --git a/tests/unit/src/com/android/settings/core/codeinspection/ClassScanner.java b/tests/unit/src/com/android/settings/core/codeinspection/ClassScanner.java
new file mode 100644
index 0000000..b129ecd
--- /dev/null
+++ b/tests/unit/src/com/android/settings/core/codeinspection/ClassScanner.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.codeinspection;
+
+import com.google.common.reflect.ClassPath;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Scans and builds all classes in current classloader.
+ */
+public class ClassScanner {
+
+ public List<Class<?>> getClassesForPackage(String packageName) throws ClassNotFoundException {
+ final List<Class<?>> classes = new ArrayList<>();
+
+ try {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ ClassPath classPath = ClassPath.from(classLoader);
+
+ // Some anonymous classes don't return true when calling isAnonymousClass(), but they
+ // always seem to be nested anonymous classes like com.android.settings.Foo$1$2. In
+ // general we don't want any anonymous classes so we just filter these out by searching
+ // for $[0-9] in the name.
+ Pattern anonymousClassPattern = Pattern.compile(".*\\$\\d+.*");
+ Matcher anonymousClassMatcher = anonymousClassPattern.matcher("");
+
+ for (ClassPath.ClassInfo info : classPath.getAllClasses()) {
+ if (info.getPackageName().startsWith(packageName)) {
+ try {
+ Class clazz = classLoader.loadClass(info.getName());
+ if (clazz.isAnonymousClass() || anonymousClassMatcher.reset(
+ clazz.getName()).matches()) {
+ continue;
+ }
+ classes.add(clazz);
+ } catch (NoClassDefFoundError e) {
+ // do nothing. this class hasn't been found by the
+ // loader, and we don't care.
+ }
+ }
+ }
+ } catch (final IOException e) {
+ throw new ClassNotFoundException("Error when parsing " + packageName, e);
+ }
+ return classes;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/core/codeinspection/CodeInspector.java b/tests/unit/src/com/android/settings/core/codeinspection/CodeInspector.java
new file mode 100644
index 0000000..fb8ad6e
--- /dev/null
+++ b/tests/unit/src/com/android/settings/core/codeinspection/CodeInspector.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.codeinspection;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Modifier;
+import java.util.List;
+
+/**
+ * Inspector takes a list of class objects and perform static code analysis in its {@link #run()}
+ * method.
+ */
+public abstract class CodeInspector {
+
+ protected static final String PACKAGE_NAME = "com.android.settings";
+
+ private static final String TEST_CLASS_SUFFIX = "Test";
+ private static final String TEST_INNER_CLASS_SIGNATURE = "Test$";
+
+ protected final List<Class<?>> mClasses;
+
+ public CodeInspector(List<Class<?>> classes) {
+ mClasses = classes;
+ }
+
+ /**
+ * Code inspection runner method.
+ */
+ public abstract void run();
+
+ protected void assertNoObsoleteInExemptList(String listName, List<String> list) {
+ final StringBuilder obsoleteExemptItems = new StringBuilder(listName).append(
+ " contains item that should not be exempted.\n");
+ for (String c : list) {
+ obsoleteExemptItems.append(c).append("\n");
+ }
+ assertWithMessage(obsoleteExemptItems.toString()).that(list).isEmpty();
+ }
+
+ protected boolean isConcreteSettingsClass(Class clazz) {
+ // Abstract classes
+ if (Modifier.isAbstract(clazz.getModifiers())) {
+ return false;
+ }
+ final String packageName = clazz.getPackage().getName();
+ // Classes that are not in Settings
+ if (!packageName.contains(PACKAGE_NAME + ".") && !packageName.endsWith(PACKAGE_NAME)) {
+ return false;
+ }
+ final String className = clazz.getName();
+ // Classes from tests
+ if (className.endsWith(TEST_CLASS_SUFFIX)) {
+ return false;
+ }
+ if (className.contains(TEST_INNER_CLASS_SIGNATURE)) {
+ return false;
+ }
+ return true;
+ }
+
+ public static void initializeExemptList(List<String> exemptList, String filename) {
+ try {
+ final InputStream in = ApplicationProvider.getApplicationContext()
+ .getAssets().open(filename);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+ String line;
+ while ((line = reader.readLine()) != null) {
+ exemptList.add(line);
+ }
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Error initializing exempt list " + filename, e);
+ }
+ }
+}
diff --git a/tests/unit/src/com/android/settings/core/codeinspection/LifecycleObserverCodeInspector.java b/tests/unit/src/com/android/settings/core/codeinspection/LifecycleObserverCodeInspector.java
new file mode 100644
index 0000000..f8b2a46
--- /dev/null
+++ b/tests/unit/src/com/android/settings/core/codeinspection/LifecycleObserverCodeInspector.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.codeinspection;
+
+import static org.junit.Assert.fail;
+
+import android.util.ArraySet;
+
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnAttach;
+import com.android.settingslib.core.lifecycle.events.OnCreate;
+import com.android.settingslib.core.lifecycle.events.OnCreateOptionsMenu;
+import com.android.settingslib.core.lifecycle.events.OnDestroy;
+import com.android.settingslib.core.lifecycle.events.OnOptionsItemSelected;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnPrepareOptionsMenu;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+import com.android.settingslib.core.lifecycle.events.SetPreferenceScreen;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+public class LifecycleObserverCodeInspector extends CodeInspector {
+
+ private static final List<Class> LIFECYCLE_EVENTS = Arrays.asList(
+ OnAttach.class,
+ OnCreate.class,
+ OnCreateOptionsMenu.class,
+ OnDestroy.class,
+ OnOptionsItemSelected.class,
+ OnPause.class,
+ OnPrepareOptionsMenu.class,
+ OnResume.class,
+ OnSaveInstanceState.class,
+ OnStart.class,
+ OnStop.class,
+ SetPreferenceScreen.class
+ );
+
+ public LifecycleObserverCodeInspector(List<Class<?>> classes) {
+ super(classes);
+ }
+
+ @Override
+ public void run() {
+ final Set<String> notImplementingLifecycleObserver = new ArraySet<>();
+ for (Class clazz : mClasses) {
+ if (!isConcreteSettingsClass(clazz)) {
+ continue;
+ }
+ boolean classObservesLifecycleEvent = false;
+ for (Class event : LIFECYCLE_EVENTS) {
+ if (event.isAssignableFrom(clazz)) {
+ classObservesLifecycleEvent = true;
+ break;
+ }
+ }
+ if (classObservesLifecycleEvent && !LifecycleObserver.class.isAssignableFrom(clazz)) {
+ // Observes LifecycleEvent but not implementing LifecycleObserver. Something is
+ // wrong.
+ notImplementingLifecycleObserver.add(clazz.getName());
+ }
+ }
+ if (!notImplementingLifecycleObserver.isEmpty()) {
+ final String errorTemplate =
+ "The following class(es) implements lifecycle.events.*, but don't "
+ + "implement LifecycleObserver. Something is wrong:\n";
+ final StringBuilder error = new StringBuilder(errorTemplate);
+ for (String name : notImplementingLifecycleObserver) {
+ error.append(name).append('\n');
+ }
+ fail(error.toString());
+ }
+ }
+}
diff --git a/tests/unit/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java b/tests/unit/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java
new file mode 100644
index 0000000..98958cf
--- /dev/null
+++ b/tests/unit/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.core.instrumentation;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import android.util.ArraySet;
+
+import androidx.fragment.app.Fragment;
+
+import com.android.settings.core.codeinspection.CodeInspector;
+import com.android.settingslib.core.instrumentation.Instrumentable;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * {@link CodeInspector} that verifies all fragments implements Instrumentable.
+ */
+public class InstrumentableFragmentCodeInspector extends CodeInspector {
+
+ private final List<String> mNotImplementingInstrumentableExemptList;
+
+ public InstrumentableFragmentCodeInspector(List<Class<?>> classes) {
+ super(classes);
+ mNotImplementingInstrumentableExemptList = new ArrayList<>();
+ initializeExemptList(mNotImplementingInstrumentableExemptList,
+ "exempt_not_implementing_instrumentable");
+ }
+
+ @Override
+ public void run() {
+ final Set<String> broken = new ArraySet<>();
+
+ for (Class clazz : mClasses) {
+ if (!isConcreteSettingsClass(clazz)) {
+ continue;
+ }
+ final String className = clazz.getName();
+ // If it's a fragment, it must also be instrumentable.
+ final boolean allowlisted =
+ mNotImplementingInstrumentableExemptList.remove(className);
+ if (Fragment.class.isAssignableFrom(clazz)
+ && !Instrumentable.class.isAssignableFrom(clazz)
+ && !allowlisted) {
+ broken.add(className);
+ }
+ }
+ final StringBuilder sb = new StringBuilder(
+ "All fragments should implement Instrumentable, but the following are not:\n");
+ for (String c : broken) {
+ sb.append(c).append("\n");
+ }
+ assertWithMessage(sb.toString()).that(broken.isEmpty()).isTrue();
+ assertNoObsoleteInExemptList("exempt_not_implementing_instrumentable",
+ mNotImplementingInstrumentableExemptList);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java b/tests/unit/src/com/android/settings/dashboard/CategoryManagerTest.java
similarity index 97%
rename from tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java
rename to tests/unit/src/com/android/settings/dashboard/CategoryManagerTest.java
index a0db866..98540f9 100644
--- a/tests/robotests/src/com/android/settings/dashboard/CategoryManagerTest.java
+++ b/tests/unit/src/com/android/settings/dashboard/CategoryManagerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,6 +29,9 @@
import android.os.Bundle;
import android.util.Pair;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settingslib.drawer.ActivityTile;
import com.android.settingslib.drawer.CategoryKey;
import com.android.settingslib.drawer.DashboardCategory;
@@ -38,13 +41,11 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import java.util.HashMap;
import java.util.Map;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class CategoryManagerTest {
private ActivityInfo mActivityInfo;
@@ -55,7 +56,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mActivityInfo = new ActivityInfo();
mActivityInfo.packageName = "pkg";
mActivityInfo.name = "class";
@@ -144,7 +145,8 @@
mCategoryByKeyMap.put(CATEGORY_HOMEPAGE, category);
// Sort their priorities
- mCategoryManager.sortCategories(RuntimeEnvironment.application, mCategoryByKeyMap);
+ mCategoryManager.sortCategories(ApplicationProvider.getApplicationContext(),
+ mCategoryByKeyMap);
// Verify they are now sorted.
assertThat(category.getTile(0)).isSameInstanceAs(tile3);
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java b/tests/unit/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java
rename to tests/unit/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java
index 10aaad8..435fe01 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java
+++ b/tests/unit/src/com/android/settings/dashboard/DashboardFragmentRegistryTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,14 +18,15 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.accounts.AccountDashboardFragment;
import com.android.settingslib.drawer.CategoryKey;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class DashboardFragmentRegistryTest {
@Test
public void pageAndKeyShouldHave1to1Mapping() {
diff --git a/tests/unit/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java b/tests/unit/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java
new file mode 100644
index 0000000..68a6788
--- /dev/null
+++ b/tests/unit/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.dashboard;
+
+import android.content.Context;
+
+import androidx.fragment.app.Fragment;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.PreferenceControllerListHelper;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.DatabaseIndexingUtils;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import java.util.List;
+
+public class DashboardFragmentSearchIndexProviderInspector {
+
+ public static boolean isSharingPreferenceControllers(Class clazz) {
+ final Context context = ApplicationProvider.getApplicationContext();
+ final Fragment fragment;
+ try {
+ fragment = Fragment.instantiate(context, clazz.getName());
+ } catch (Throwable e) {
+ // Can't do much with exception, assume the test passed.
+ return true;
+ }
+ if (!(fragment instanceof DashboardFragment)) {
+ return true;
+ }
+
+ final BaseSearchIndexProvider provider =
+ (BaseSearchIndexProvider) DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ if (provider == null) {
+ return true;
+ }
+ final List<AbstractPreferenceController> controllersFromSearchIndexProvider;
+ final List<AbstractPreferenceController> controllersFromFragment;
+ try {
+ controllersFromSearchIndexProvider = provider.getPreferenceControllers(context);
+ } catch (Throwable e) {
+ // Can't do much with exception, assume the test passed.
+ return true;
+ }
+ try {
+ controllersFromFragment =
+ ((DashboardFragment) fragment).createPreferenceControllers(context);
+ List<BasePreferenceController> controllersFromXml = PreferenceControllerListHelper
+ .getPreferenceControllersFromXml(context,
+ ((DashboardFragment) fragment).getPreferenceScreenResId());
+ final List<BasePreferenceController> uniqueControllerFromXml =
+ PreferenceControllerListHelper.filterControllers(
+ controllersFromXml, controllersFromFragment);
+ controllersFromFragment.addAll(uniqueControllerFromXml);
+
+ } catch (Throwable e) {
+ // Can't do much with exception, assume the test passed.
+ return true;
+ }
+
+ if (controllersFromFragment == controllersFromSearchIndexProvider) {
+ return true;
+ } else if (controllersFromFragment != null && controllersFromSearchIndexProvider != null) {
+ return controllersFromFragment.size() == controllersFromSearchIndexProvider.size();
+ } else {
+ return false;
+ }
+ }
+}
diff --git a/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
new file mode 100644
index 0000000..76deec6
--- /dev/null
+++ b/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -0,0 +1,571 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.graphics.Typeface;
+import android.net.ConnectivityManager;
+import android.net.NetworkTemplate;
+import android.os.Bundle;
+import android.telephony.SubscriptionManager;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.MeasureSpec;
+import android.widget.TextView;
+
+import androidx.preference.PreferenceViewHolder;
+import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.testutils.ResourcesUtils;
+import com.android.settingslib.Utils;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.MockitoAnnotations;
+
+import java.util.concurrent.TimeUnit;
+
+@RunWith(AndroidJUnit4.class)
+public class DataUsageSummaryPreferenceTest {
+
+ private static final long CYCLE_DURATION_MILLIS = 1000000000L;
+ private static final long UPDATE_LAG_MILLIS = 10000000L;
+ private static final String FAKE_CARRIER = "z-mobile";
+
+ private Context mContext;
+ private Resources mResources;
+ private PreferenceViewHolder mHolder;
+ private DataUsageSummaryPreference mSummaryPreference;
+
+ private long mCycleEnd;
+ private long mUpdateTime;
+
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ mResources = spy(mContext.getResources());
+ when(mContext.getResources()).thenReturn(mResources);
+ mSummaryPreference = spy(new DataUsageSummaryPreference(mContext, null /* attrs */));
+ LayoutInflater inflater = mContext.getSystemService(LayoutInflater.class);
+ View view = inflater.inflate(
+ mSummaryPreference.getLayoutResource(),
+ null /* root */, false /* attachToRoot */);
+
+ mHolder = spy(PreferenceViewHolder.createInstanceForTests(view));
+ assertThat(mSummaryPreference.getDataUsed(mHolder)).isNotNull();
+
+ final long now = System.currentTimeMillis();
+ mCycleEnd = now + CYCLE_DURATION_MILLIS;
+ mUpdateTime = now - UPDATE_LAG_MILLIS;
+ }
+
+ @UiThreadTest
+ @Test
+ public void testSetUsageInfo_withLaunchIntent_launchButtonShown() {
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getLaunchButton(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ }
+
+ @Test
+ public void testSetUsageInfo_withoutLaunchIntent_launchButtonNotShown() {
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ null /* launchIntent */);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getLaunchButton(mHolder).getVisibility())
+ .isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void testSetUsageInfo_withDataPlans_carrierInfoShown() {
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCarrierInfo(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ }
+
+ @Test
+ public void testSetUsageInfo_withNoDataPlans_carrierInfoNotShown() {
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCarrierInfo(mHolder).getVisibility())
+ .isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void testCarrierUpdateTime_shouldFormatDaysCorrectly() {
+ int baseUnit = 2;
+ int smudge = 6;
+ final long updateTime = System.currentTimeMillis()
+ - TimeUnit.DAYS.toMillis(baseUnit) - TimeUnit.HOURS.toMillis(smudge);
+ mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
+ .isEqualTo("Updated by " + FAKE_CARRIER + " " + baseUnit + " days ago");
+ }
+
+ @Test
+ public void testCarrierUpdateTime_shouldFormatHoursCorrectly() {
+ int baseUnit = 2;
+ int smudge = 6;
+ final long updateTime = System.currentTimeMillis()
+ - TimeUnit.HOURS.toMillis(baseUnit) - TimeUnit.MINUTES.toMillis(smudge);
+ mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
+ .isEqualTo("Updated by " + FAKE_CARRIER + " " + baseUnit + " hr ago");
+ }
+
+ @Test
+ public void testCarrierUpdateTime_shouldFormatMinutesCorrectly() {
+ int baseUnit = 2;
+ int smudge = 6;
+ final long updateTime = System.currentTimeMillis()
+ - TimeUnit.MINUTES.toMillis(baseUnit) - TimeUnit.SECONDS.toMillis(smudge);
+ mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
+ .isEqualTo("Updated by " + FAKE_CARRIER + " " + baseUnit + " min ago");
+ }
+
+ @Test
+ public void testCarrierUpdateTime_shouldFormatLessThanMinuteCorrectly() {
+ final long updateTime = System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(45);
+ mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
+ .isEqualTo("Updated by " + FAKE_CARRIER + " just now");
+ }
+
+ @Test
+ public void testCarrierUpdateTimeWithNoCarrier_shouldSayJustNow() {
+ final long updateTime = System.currentTimeMillis() - TimeUnit.SECONDS.toMillis(45);
+ mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, null /* carrier */,
+ 1 /* numPlans */, new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
+ .isEqualTo("Updated just now");
+ }
+
+ @Test
+ public void testCarrierUpdateTimeWithNoCarrier_shouldFormatTime() {
+ final long updateTime = System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(2);
+ mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, null /* carrier */,
+ 1 /* numPlans */, new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCarrierInfo(mHolder).getText().toString())
+ .isEqualTo("Updated 2 min ago");
+ }
+
+ @Test
+ public void setUsageInfo_withRecentCarrierUpdate_doesNotSetCarrierInfoWarningColorAndFont() {
+ final long updateTime = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(1);
+ mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ TextView carrierInfo = mSummaryPreference.getCarrierInfo(mHolder);
+ assertThat(carrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(carrierInfo.getCurrentTextColor()).isEqualTo(
+ Utils.getColorAttrDefaultColor(mContext, android.R.attr.textColorSecondary));
+ assertThat(carrierInfo.getTypeface()).isEqualTo(Typeface.SANS_SERIF);
+ }
+
+ @Test
+ public void testSetUsageInfo_withStaleCarrierUpdate_setsCarrierInfoWarningColorAndFont() {
+ final long updateTime = System.currentTimeMillis() - TimeUnit.HOURS.toMillis(7);
+ mSummaryPreference.setUsageInfo(mCycleEnd, updateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ TextView carrierInfo = mSummaryPreference.getCarrierInfo(mHolder);
+ assertThat(carrierInfo.getVisibility()).isEqualTo(View.VISIBLE);
+ assertThat(carrierInfo.getCurrentTextColor()).isEqualTo(
+ Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorError));
+ assertThat(carrierInfo.getTypeface()).isEqualTo(
+ DataUsageSummaryPreference.SANS_SERIF_MEDIUM);
+ }
+
+ @Test
+ public void testSetUsageInfo_withNoDataPlans_usageTitleNotShown() {
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getUsageTitle(mHolder).getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void testSetUsageInfo_withMultipleDataPlans_usageTitleShown() {
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 2 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getUsageTitle(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ }
+
+ @Test
+ public void testSetUsageInfo_cycleRemainingTimeIsLessOneDay() {
+ // just under one day
+ final long cycleEnd = System.currentTimeMillis() + TimeUnit.HOURS.toMillis(23);
+ mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(mSummaryPreference.getCycleTime(mHolder).getText()).isEqualTo(
+ ResourcesUtils.getResourcesString(
+ mContext, "billing_cycle_less_than_one_day_left"));
+ }
+
+ @Test
+ public void testSetUsageInfo_cycleRemainingTimeNegativeDaysLeft_shouldDisplayNoneLeft() {
+ final long cycleEnd = System.currentTimeMillis() - 1L;
+ mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(mSummaryPreference.getCycleTime(mHolder).getText()).isEqualTo(
+ ResourcesUtils.getResourcesString(mContext, "billing_cycle_none_left"));
+ }
+
+ @Test
+ public void testSetUsageInfo_cycleRemainingTimeDaysLeft_shouldUsePlurals() {
+ final int daysLeft = 3;
+ final long cycleEnd = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(daysLeft)
+ + TimeUnit.HOURS.toMillis(1);
+ mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ new Intent());
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(mSummaryPreference.getCycleTime(mHolder).getText())
+ .isEqualTo(daysLeft + " days left");
+ }
+
+ @Test
+ public void testSetLimitInfo_withLimitInfo_dataLimitsShown() {
+ final String limitText = "test limit text";
+ mSummaryPreference.setLimitInfo(limitText);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getDataLimits(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(mSummaryPreference.getDataLimits(mHolder).getText()).isEqualTo(limitText);
+ }
+
+ @Test
+ public void testSetLimitInfo_withNullLimitInfo_dataLimitsNotShown() {
+ mSummaryPreference.setLimitInfo(null);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getDataLimits(mHolder).getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void testSetLimitInfo_withEmptyLimitInfo_dataLimitsNotShown() {
+ final String emptyLimitText = "";
+ mSummaryPreference.setLimitInfo(emptyLimitText);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getDataLimits(mHolder).getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void testSetChartEnabledFalse_hidesLabelBar() {
+ setValidLabels();
+ mSummaryPreference.setChartEnabled(false);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getLabelBar(mHolder).getVisibility()).isEqualTo(View.GONE);
+ assertThat(mSummaryPreference.getProgressBar(mHolder).getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void testSetEmptyLabels_hidesLabelBar() {
+ mSummaryPreference.setLabels("", "");
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getLabelBar(mHolder).getVisibility()).isEqualTo(View.GONE);
+ assertThat(mSummaryPreference.getProgressBar(mHolder).getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void testLabelBar_isVisible_whenLabelsSet() {
+ setValidLabels();
+ //mChartEnabled defaults to true
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getLabelBar(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(mSummaryPreference.getProgressBar(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ }
+
+ @Test
+ public void testSetProgress_updatesProgressBar() {
+ setValidLabels();
+ mSummaryPreference.setProgress(.5f);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getProgressBar(mHolder).getProgress()).isEqualTo(50);
+ }
+
+ private void setValidLabels() {
+ mSummaryPreference.setLabels("0.0 GB", "5.0 GB");
+ }
+
+ @Test
+ public void testSetUsageAndRemainingInfo_withUsageInfo_dataUsageAndRemainingShown() {
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+ mSummaryPreference.setUsageNumbers(
+ BillingCycleSettings.MIB_IN_BYTES,
+ 10 * BillingCycleSettings.MIB_IN_BYTES,
+ true /* hasMobileData */);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getDataUsed(mHolder).getText().toString())
+ .isEqualTo("1.00 MB used");
+ assertThat(mSummaryPreference.getDataRemaining(mHolder).getText().toString())
+ .isEqualTo("9.00 MB left");
+ assertThat(mSummaryPreference.getDataRemaining(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ final int colorId = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorAccent);
+ assertThat(mSummaryPreference.getDataRemaining(mHolder).getCurrentTextColor())
+ .isEqualTo(colorId);
+ }
+
+ @Test
+ public void testSetUsageInfo_withDataOverusage() {
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+ mSummaryPreference.setUsageNumbers(
+ 11 * BillingCycleSettings.MIB_IN_BYTES,
+ 10 * BillingCycleSettings.MIB_IN_BYTES,
+ true /* hasMobileData */);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getDataUsed(mHolder).getText().toString())
+ .isEqualTo("11.00 MB used");
+ assertThat(mSummaryPreference.getDataRemaining(mHolder).getText().toString())
+ .isEqualTo("1.00 MB over");
+ final int colorId = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorError);
+ assertThat(mSummaryPreference.getDataRemaining(mHolder).getCurrentTextColor())
+ .isEqualTo(colorId);
+ }
+
+ @Test
+ public void testSetUsageInfo_withUsageInfo_dataUsageShown() {
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ new Intent());
+ mSummaryPreference.setUsageNumbers(
+ BillingCycleSettings.MIB_IN_BYTES, -1L, true /* hasMobileData */);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getDataUsed(mHolder).getText().toString())
+ .isEqualTo("1.00 MB used");
+ assertThat(mSummaryPreference.getDataRemaining(mHolder).getText()).isEqualTo("");
+ }
+
+ @Test
+ public void testSetAppIntent_toMdpApp_intentCorrect() {
+ final Intent intent = new Intent(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
+ intent.setPackage("test-owner.example.com");
+ intent.putExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, 42);
+
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ intent);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getLaunchButton(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(mSummaryPreference.getLaunchButton(mHolder).getText())
+ .isEqualTo(ResourcesUtils.getResourcesString(mContext, "launch_mdp_app_text"));
+
+ doNothing().when(mContext).startActivity(any(Intent.class));
+ mSummaryPreference.getLaunchButton(mHolder).callOnClick();
+ final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(
+ Intent.class);
+ verify(mContext).startActivity(intentCaptor.capture());
+ final Intent startedIntent = intentCaptor.getValue();
+
+ assertThat(startedIntent.getAction())
+ .isEqualTo(SubscriptionManager.ACTION_MANAGE_SUBSCRIPTION_PLANS);
+ assertThat(startedIntent.getPackage()).isEqualTo("test-owner.example.com");
+ assertThat(startedIntent.getIntExtra(SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX, -1))
+ .isEqualTo(42);
+ }
+
+ @Test
+ public void testSetUsageInfo_withOverflowStrings_dataRemainingNotShown() {
+ LayoutInflater inflater = LayoutInflater.from(mContext);
+ View view = inflater.inflate(mSummaryPreference.getLayoutResource(), null /* root */,
+ false /* attachToRoot */);
+
+ mSummaryPreference.setUsageInfo(mCycleEnd, mUpdateTime, FAKE_CARRIER, 1 /* numPlans */,
+ new Intent());
+ mSummaryPreference.setUsageNumbers(
+ BillingCycleSettings.MIB_IN_BYTES,
+ 10 * BillingCycleSettings.MIB_IN_BYTES,
+ true /* hasMobileData */);
+
+ int data_used_formatted_id = ResourcesUtils.getResourcesId(
+ mContext, "string", "data_used_formatted");
+ int data_remaining_id = ResourcesUtils.getResourcesId(
+ mContext, "string", "data_remaining");
+ CharSequence data_used_formatted_cs = "^1 ^2 used with long trailing text";
+ CharSequence data_remaining_cs = "^1 left";
+ doReturn(data_used_formatted_cs).when(mResources).getText(data_used_formatted_id);
+ doReturn(data_remaining_cs).when(mResources).getText(data_remaining_id);
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+
+ TextView dataUsed = mSummaryPreference.getDataUsed(mHolder);
+ TextView dataRemaining = mSummaryPreference.getDataRemaining(mHolder);
+ int width = MeasureSpec.makeMeasureSpec(500, MeasureSpec.EXACTLY);
+ dataUsed.measure(width, MeasureSpec.UNSPECIFIED);
+ dataRemaining.measure(width, MeasureSpec.UNSPECIFIED);
+
+ assertThat(dataRemaining.getVisibility()).isEqualTo(View.VISIBLE);
+
+ MeasurableLinearLayout layout = mSummaryPreference.getLayout(mHolder);
+ layout.measure(
+ MeasureSpec.makeMeasureSpec(800, View.MeasureSpec.EXACTLY),
+ MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY));
+
+ assertThat(dataUsed.getText().toString()).isEqualTo("1.00 MB used with long trailing text");
+ // TODO(b/175389659): re-enable this line once cuttlefish device specs are verified.
+ // assertThat(dataRemaining.getVisibility()).isEqualTo(View.GONE);
+ }
+
+ @Test
+ public void testSetWifiMode_withUsageInfo_dataUsageShown() {
+ final int daysLeft = 3;
+ final long cycleEnd = System.currentTimeMillis() + TimeUnit.DAYS.toMillis(daysLeft)
+ + TimeUnit.HOURS.toMillis(1);
+ mSummaryPreference.setUsageInfo(cycleEnd, mUpdateTime, FAKE_CARRIER, 0 /* numPlans */,
+ new Intent());
+ mSummaryPreference.setUsageNumbers(1000000L, -1L, true);
+ final String cycleText = "The quick fox";
+ mSummaryPreference.setWifiMode(true /* isWifiMode */, cycleText, false /* isSingleWifi */);
+ doReturn(200L).when(mSummaryPreference).getHistoricalUsageLevel();
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+ assertThat(mSummaryPreference.getUsageTitle(mHolder).getText().toString())
+ .isEqualTo(ResourcesUtils.getResourcesString(mContext, "data_usage_wifi_title"));
+ assertThat(mSummaryPreference.getUsageTitle(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(mSummaryPreference.getCycleTime(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(mSummaryPreference.getCycleTime(mHolder).getText()).isEqualTo(cycleText);
+ assertThat(mSummaryPreference.getCarrierInfo(mHolder).getVisibility()).isEqualTo(View.GONE);
+ assertThat(mSummaryPreference.getDataLimits(mHolder).getVisibility()).isEqualTo(View.GONE);
+ assertThat(mSummaryPreference.getLaunchButton(mHolder).getVisibility())
+ .isEqualTo(View.VISIBLE);
+ assertThat(mSummaryPreference.getLaunchButton(mHolder).getText())
+ .isEqualTo(ResourcesUtils.getResourcesString(mContext, "launch_wifi_text"));
+
+ doNothing().when(mContext).startActivity(any(Intent.class));
+ mSummaryPreference.getLaunchButton(mHolder).callOnClick();
+
+ final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(
+ Intent.class);
+ verify(mContext).startActivity(intentCaptor.capture());
+ final Intent startedIntent = intentCaptor.getValue();
+
+ final Bundle expect = new Bundle(1);
+ expect.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE,
+ NetworkTemplate.buildTemplateWifiWildcard());
+ final Bundle actual = startedIntent
+ .getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+ assertThat((NetworkTemplate) actual.getParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE))
+ .isEqualTo(NetworkTemplate.buildTemplateWifiWildcard());
+
+ assertThat(startedIntent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
+ .isEqualTo(ResourcesUtils.getResourcesId(mContext, "string", "wifi_data_usage"));
+ }
+
+ @UiThreadTest
+ @Test
+ public void testSetWifiMode_noUsageInfo_shouldDisableLaunchButton() {
+ mSummaryPreference.setWifiMode(true /* isWifiMode */, "Test cycle text",
+ false /* isSingleWifi */);
+ doReturn(0L).when(mSummaryPreference).getHistoricalUsageLevel();
+
+ mSummaryPreference.onBindViewHolder(mHolder);
+
+ assertThat(mSummaryPreference.getLaunchButton(mHolder).isEnabled()).isFalse();
+ }
+
+ @Test
+ public void launchWifiDataUsage_shouldSetWifiNetworkTypeInIntentExtra() {
+ doNothing().when(mContext).startActivity(any(Intent.class));
+ mSummaryPreference.launchWifiDataUsage(mContext);
+
+ final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(
+ Intent.class);
+ verify(mContext).startActivity(intentCaptor.capture());
+ final Intent launchIntent = intentCaptor.getValue();
+ final Bundle args =
+ launchIntent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
+
+ assertThat(args.getInt(DataUsageList.EXTRA_NETWORK_TYPE))
+ .isEqualTo(ConnectivityManager.TYPE_WIFI);
+ }
+}
diff --git a/tests/unit/src/com/android/settings/datausage/OWNERS b/tests/unit/src/com/android/settings/datausage/OWNERS
new file mode 100644
index 0000000..18806f4
--- /dev/null
+++ b/tests/unit/src/com/android/settings/datausage/OWNERS
@@ -0,0 +1 @@
+include /src/com/android/settings/datausage/OWNERS
diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/RegionZonePickerTest.java b/tests/unit/src/com/android/settings/datetime/timezone/RegionZonePickerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/datetime/timezone/RegionZonePickerTest.java
rename to tests/unit/src/com/android/settings/datetime/timezone/RegionZonePickerTest.java
index dd734bb..de607da 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/RegionZonePickerTest.java
+++ b/tests/unit/src/com/android/settings/datetime/timezone/RegionZonePickerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,6 +20,8 @@
import android.icu.text.Collator;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.datetime.timezone.RegionZonePicker.TimeZoneInfoComparator;
import com.android.settings.datetime.timezone.TimeZoneInfo.Formatter;
@@ -31,9 +33,8 @@
import java.util.Date;
import java.util.List;
import java.util.Locale;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class RegionZonePickerTest {
@Test
diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceControllerTest.java b/tests/unit/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceControllerTest.java
similarity index 89%
rename from tests/robotests/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceControllerTest.java
index 563bf8d..64d8abb 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,18 +23,19 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.datetime.timezone.TimeZoneInfo.Formatter;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import java.util.Date;
import java.util.Locale;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class TimeZoneInfoPreferenceControllerTest {
private TimeZoneInfo mTimeZoneInfo;
@@ -42,7 +43,7 @@
@Before
public void setUp() {
- final Context context = RuntimeEnvironment.application;
+ final Context context = ApplicationProvider.getApplicationContext();
final Date now = new Date(0L); // 00:00 1/1/1970
final Formatter formatter = new Formatter(Locale.US, now);
mTimeZoneInfo = formatter.format("America/Los_Angeles");
diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/TimeZoneInfoTest.java b/tests/unit/src/com/android/settings/datetime/timezone/TimeZoneInfoTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/datetime/timezone/TimeZoneInfoTest.java
rename to tests/unit/src/com/android/settings/datetime/timezone/TimeZoneInfoTest.java
index fd8b81f..f43cde3 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/TimeZoneInfoTest.java
+++ b/tests/unit/src/com/android/settings/datetime/timezone/TimeZoneInfoTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,6 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.datetime.timezone.TimeZoneInfo.Formatter;
import org.junit.Test;
@@ -25,9 +27,8 @@
import java.util.Date;
import java.util.Locale;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class TimeZoneInfoTest {
@Test
diff --git a/tests/robotests/src/com/android/settings/development/OverlaySettingsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/OverlaySettingsPreferenceControllerTest.java
similarity index 95%
rename from tests/robotests/src/com/android/settings/development/OverlaySettingsPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/development/OverlaySettingsPreferenceControllerTest.java
index 4f04c38..827f5a1 100644
--- a/tests/robotests/src/com/android/settings/development/OverlaySettingsPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/development/OverlaySettingsPreferenceControllerTest.java
@@ -22,14 +22,14 @@
import android.content.SharedPreferences;
import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class OverlaySettingsPreferenceControllerTest {
private Context mContext;
@@ -38,7 +38,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new OverlaySettingsPreferenceController(mContext);
mPreference = new SwitchPreference(mContext);
}
diff --git a/tests/unit/src/com/android/settings/development/autofill/AutofillTestingHelper.java b/tests/unit/src/com/android/settings/development/autofill/AutofillTestingHelper.java
new file mode 100644
index 0000000..c1ef2b5
--- /dev/null
+++ b/tests/unit/src/com/android/settings/development/autofill/AutofillTestingHelper.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development.autofill;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+import android.provider.Settings.SettingNotFoundException;
+
+final class AutofillTestingHelper {
+ private final ContentResolver mResolver;
+
+ AutofillTestingHelper(Context context) {
+ mResolver = context.getContentResolver();
+ }
+
+ public void setLoggingLevel(int max) {
+ setGlobal(Settings.Global.AUTOFILL_LOGGING_LEVEL, max);
+ }
+
+ public void setMaxPartitionsSize(int max) {
+ setGlobal(Settings.Global.AUTOFILL_MAX_PARTITIONS_SIZE, max);
+ }
+
+ public void setMaxVisibleDatasets(int level) {
+ setGlobal(Settings.Global.AUTOFILL_MAX_VISIBLE_DATASETS, level);
+ }
+
+ public int getLoggingLevel() throws SettingNotFoundException {
+ return getGlobal(Settings.Global.AUTOFILL_LOGGING_LEVEL);
+ }
+
+ public int getMaxPartitionsSize() throws SettingNotFoundException {
+ return getGlobal(Settings.Global.AUTOFILL_MAX_PARTITIONS_SIZE);
+ }
+
+ public int getMaxVisibleDatasets() throws SettingNotFoundException {
+ return getGlobal(Settings.Global.AUTOFILL_MAX_VISIBLE_DATASETS);
+ }
+
+ private void setGlobal(String key, int value) {
+ Settings.Global.putInt(mResolver, key, value);
+ }
+
+ private int getGlobal(String key) throws SettingNotFoundException {
+ return Settings.Global.getInt(mResolver, key);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPersistentTest.java b/tests/unit/src/com/android/settings/development/featureflags/FeatureFlagPersistentTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPersistentTest.java
rename to tests/unit/src/com/android/settings/development/featureflags/FeatureFlagPersistentTest.java
index 7d7e36b..9b978b0 100644
--- a/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPersistentTest.java
+++ b/tests/unit/src/com/android/settings/development/featureflags/FeatureFlagPersistentTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,14 +22,15 @@
import android.provider.Settings;
import android.util.FeatureFlagUtils;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class FeatureFlagPersistentTest {
private static final String TEST_FEATURE_NAME = "test_feature";
@@ -43,7 +44,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
FeatureFlagPersistent.getAllPersistentFlags().add(TEST_FEATURE_NAME);
FeatureFlagUtils.getAllFeatureFlags().put(TEST_FEATURE_NAME, "false");
@@ -137,7 +138,8 @@
FeatureFlagPersistent.setEnabled(mContext, TEST_FEATURE_NAME, true);
- assertThat(SystemProperties.get(FeatureFlagUtils.PERSIST_PREFIX + TEST_FEATURE_NAME)).isEqualTo("true");
+ assertThat(SystemProperties.get(FeatureFlagUtils.PERSIST_PREFIX + TEST_FEATURE_NAME))
+ .isEqualTo("true");
assertThat(FeatureFlagUtils.isEnabled(mContext, TEST_FEATURE_NAME)).isTrue();
}
@@ -150,7 +152,8 @@
FeatureFlagPersistent.setEnabled(mContext, TEST_FEATURE_NAME, false);
- assertThat(SystemProperties.get(FeatureFlagUtils.PERSIST_PREFIX + TEST_FEATURE_NAME)).isEqualTo("false");
+ assertThat(SystemProperties.get(FeatureFlagUtils.PERSIST_PREFIX + TEST_FEATURE_NAME))
+ .isEqualTo("false");
assertThat(FeatureFlagUtils.isEnabled(mContext, TEST_FEATURE_NAME)).isFalse();
}
}
diff --git a/tests/robotests/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceControllerTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceControllerTest.java
index 06e66a1..550613b 100644
--- a/tests/robotests/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/development/transcode/TranscodeDefaultOptionPreferenceControllerTest.java
@@ -22,15 +22,15 @@
import android.os.SystemProperties;
import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class TranscodeDefaultOptionPreferenceControllerTest {
private static final String TRANSCODE_DEFAULT_SYS_PROP_KEY =
"persist.sys.fuse.transcode_default";
diff --git a/tests/robotests/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceControllerTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceControllerTest.java
index aa2e672..7c0acd7 100644
--- a/tests/robotests/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/development/transcode/TranscodeGlobalTogglePreferenceControllerTest.java
@@ -22,13 +22,13 @@
import android.os.SystemProperties;
import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class TranscodeGlobalTogglePreferenceControllerTest {
private static final String TRANSCODE_ENABLED_PROP_KEY = "persist.sys.fuse.transcode_enabled";
diff --git a/tests/robotests/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceControllerTest.java b/tests/unit/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceControllerTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceControllerTest.java
index 8cba0c3..3caf8ae 100644
--- a/tests/robotests/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/development/transcode/TranscodeUserControlPreferenceControllerTest.java
@@ -22,15 +22,15 @@
import android.os.SystemProperties;
import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class TranscodeUserControlPreferenceControllerTest {
private static final String TRANSCODE_USER_CONTROL_SYS_PROP_KEY =
"persist.sys.fuse.transcode_user_control";
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
similarity index 85%
rename from tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
rename to tests/unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
index a854c04..e94c4e7 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java
@@ -28,13 +28,11 @@
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.NETWORK_PROVIDER_VALUE_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.OPERATOR_INFO_LABEL_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.OPERATOR_INFO_VALUE_ID;
-import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.PHONE_NUMBER_VALUE_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.ROAMING_INFO_VALUE_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.SERVICE_STATE_VALUE_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.SIGNAL_STRENGTH_LABEL_ID;
import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.SIGNAL_STRENGTH_VALUE_ID;
-
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
@@ -45,16 +43,11 @@
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import static org.robolectric.Shadows.shadowOf;
import android.content.Context;
-import android.content.pm.PackageInfo;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.CellSignalStrength;
-import android.telephony.CellSignalStrengthCdma;
-import android.telephony.CellSignalStrengthLte;
-import android.telephony.CellSignalStrengthWcdma;
import android.telephony.PhoneStateListener;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
@@ -65,34 +58,27 @@
import android.telephony.euicc.EuiccManager;
import androidx.lifecycle.LifecycleOwner;
+import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowDeviceInfoUtils;
-import com.android.settingslib.DeviceInfoUtils;
+import com.android.settings.testutils.ResourcesUtils;
import com.android.settingslib.core.lifecycle.Lifecycle;
-import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowPackageManager;
-import org.robolectric.shadows.ShadowTelephonyManager;
-import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {ShadowDeviceInfoUtils.class})
+@RunWith(AndroidJUnit4.class)
public class SimStatusDialogControllerTest {
@Mock
@@ -107,14 +93,13 @@
@Mock
private SignalStrength mSignalStrength;
@Mock
- private CellSignalStrengthCdma mCellSignalStrengthCdma;
+ private CellSignalStrength mCellSignalStrengthCdma;
@Mock
- private CellSignalStrengthLte mCellSignalStrengthLte;
+ private CellSignalStrength mCellSignalStrengthLte;
@Mock
- private CellSignalStrengthWcdma mCellSignalStrengthWcdma;
+ private CellSignalStrength mCellSignalStrengthWcdma;
@Mock
private CarrierConfigManager mCarrierConfigManager;
- @Mock
private PersistableBundle mPersistableBundle;
@Mock
private EuiccManager mEuiccManager;
@@ -122,6 +107,7 @@
private SimStatusDialogController mController;
private Context mContext;
+ @Mock
private LifecycleOwner mLifecycleOwner;
private Lifecycle mLifecycle;
@@ -131,27 +117,31 @@
private static final int MAX_PHONE_COUNT_DUAL_SIM = 2;
@Before
+ @UiThreadTest
public void setup() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = spy(ApplicationProvider.getApplicationContext());
when(mDialog.getContext()).thenReturn(mContext);
- mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
- mSubscriptionManager = spy(mContext.getSystemService(SubscriptionManager.class));
-
mTelephonyManager = spy(mContext.getSystemService(TelephonyManager.class));
- final ShadowTelephonyManager shadowTelephonyMgr = shadowOf(mTelephonyManager);
- shadowTelephonyMgr.setTelephonyManagerForSubscriptionId(
- SubscriptionManager.DEFAULT_SUBSCRIPTION_ID, mTelephonyManager);
+ mSubscriptionManager = spy(mContext.getSystemService(SubscriptionManager.class));
+ doReturn(mSubscriptionInfo).when(mSubscriptionManager)
+ .getActiveSubscriptionInfoForSimSlotIndex(anyInt());
+
+ when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
+ when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn(
+ mCarrierConfigManager);
+ when(mContext.getSystemService(EuiccManager.class)).thenReturn(mEuiccManager);
+ when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+
+ doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
+ SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
doReturn(2).when(mTelephonyManager).getCardIdForDefaultEuicc();
doReturn(TelephonyManager.NETWORK_TYPE_LTE).when(mTelephonyManager).getDataNetworkType();
- doReturn(mEuiccManager).when(mContext).getSystemService(EuiccManager.class);
-
mController = spy(new SimStatusDialogController(mDialog, mLifecycle, 0 /* phone id */));
- ShadowDeviceInfoUtils.setPhoneNumber("");
- //CellSignalStrength setup
+ // CellSignalStrength setup
doReturn(0).when(mCellSignalStrengthCdma).getDbm();
doReturn(0).when(mCellSignalStrengthCdma).getAsuLevel();
doReturn(0).when(mCellSignalStrengthLte).getDbm();
@@ -163,12 +153,6 @@
doReturn(mPhoneStateListener).when(mController).getPhoneStateListener();
doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt());
- ReflectionHelpers.setField(mController, "mTelephonyManager", mTelephonyManager);
- ReflectionHelpers.setField(mController, "mCarrierConfigManager", mCarrierConfigManager);
- ReflectionHelpers.setField(mController, "mSubscriptionInfo", mSubscriptionInfo);
- ReflectionHelpers.setField(mController, "mEuiccManager", mEuiccManager);
- ReflectionHelpers.setField(mController, "mSubscriptionManager", mSubscriptionManager);
-
when(mTelephonyManager.getActiveModemCount()).thenReturn(MAX_PHONE_COUNT_SINGLE_SIM);
doReturn(new ArrayList<UiccCardInfo>()).when(mTelephonyManager).getUiccCardsInfo();
doReturn(new HashMap<Integer, Integer>()).when(mTelephonyManager)
@@ -178,23 +162,13 @@
when(mEuiccManager.getEid()).thenReturn("");
when(mEuiccManager.createForCardId(anyInt())).thenReturn(mEuiccManager);
+ mPersistableBundle = new PersistableBundle();
when(mCarrierConfigManager.getConfigForSubId(anyInt())).thenReturn(mPersistableBundle);
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL))
- .thenReturn(true);
+
+ mPersistableBundle.putBoolean(
+ CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL, true);
doReturn(mServiceState).when(mTelephonyManager).getServiceState();
doReturn(mSignalStrength).when(mTelephonyManager).getSignalStrength();
-
- final ShadowPackageManager shadowPackageManager =
- Shadows.shadowOf(RuntimeEnvironment.application.getPackageManager());
- final PackageInfo sysUIPackageInfo = new PackageInfo();
- sysUIPackageInfo.packageName = "com.android.systemui";
- shadowPackageManager.addPackage(sysUIPackageInfo);
- }
-
- @After
- public void tearDown() {
- ShadowDeviceInfoUtils.reset();
}
@Test
@@ -208,15 +182,10 @@
}
@Test
- public void initialize_updatePhoneNumberWith1111111111_shouldUpdatePhoneNumber() {
- ShadowDeviceInfoUtils.setPhoneNumber("1111111111");
-
- final String phoneNumber = DeviceInfoUtils.getBidiFormattedPhoneNumber(mContext,
- mSubscriptionInfo);
-
+ public void initialize_shouldUpdatePhoneNumber() {
mController.initialize();
- verify(mDialog).setText(PHONE_NUMBER_VALUE_ID, phoneNumber);
+ verify(mController).updatePhoneNumber();
}
@Test
@@ -235,19 +204,19 @@
mController.initialize();
- final String inServiceText = mContext.getString(R.string.radioInfo_service_in);
+ final String inServiceText = ResourcesUtils.getResourcesString(
+ mContext, "radioInfo_service_in");
verify(mDialog).setText(SERVICE_STATE_VALUE_ID, inServiceText);
}
@Test
public void initialize_updateServiceStateWithPowerOff_shouldUpdateTextAndResetSignalStrength() {
when(mServiceState.getState()).thenReturn(ServiceState.STATE_POWER_OFF);
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
mController.initialize();
- final String offServiceText = mContext.getString(R.string.radioInfo_service_off);
+ final String offServiceText = ResourcesUtils.getResourcesString(
+ mContext, "radioInfo_service_off");
verify(mDialog).setText(SERVICE_STATE_VALUE_ID, offServiceText);
verify(mDialog).setText(SIGNAL_STRENGTH_VALUE_ID, "0");
}
@@ -257,12 +226,11 @@
when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
when(mServiceState.getDataRegistrationState()).thenReturn(
ServiceState.STATE_OUT_OF_SERVICE);
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
mController.initialize();
- final String offServiceText = mContext.getString(R.string.radioInfo_service_out);
+ final String offServiceText = ResourcesUtils.getResourcesString(
+ mContext, "radioInfo_service_out");
verify(mDialog).setText(SERVICE_STATE_VALUE_ID, offServiceText);
verify(mDialog).setText(SIGNAL_STRENGTH_VALUE_ID, "0");
}
@@ -271,12 +239,11 @@
public void initialize_updateVoiceOutOfServiceDataInService_shouldUpdateTextToBeInService() {
when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
when(mServiceState.getDataRegistrationState()).thenReturn(ServiceState.STATE_IN_SERVICE);
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
mController.initialize();
- final String inServiceText = mContext.getString(R.string.radioInfo_service_in);
+ final String inServiceText = ResourcesUtils.getResourcesString(
+ mContext, "radioInfo_service_in");
verify(mDialog).setText(SERVICE_STATE_VALUE_ID, inServiceText);
}
@@ -287,13 +254,11 @@
final int wcdmaDbm = 40;
final int wcdmaAsu = 40;
setupCellSignalStrength_lteWcdma(lteDbm, lteAsu, wcdmaDbm, wcdmaAsu);
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
mController.initialize();
- final String signalStrengthString =
- mContext.getString(R.string.sim_signal_strength, lteDbm, lteAsu);
+ final String signalStrengthString = ResourcesUtils.getResourcesString(
+ mContext, "sim_signal_strength", lteDbm, lteAsu);
verify(mDialog, times(2)).setText(SIGNAL_STRENGTH_VALUE_ID, signalStrengthString);
}
@@ -304,13 +269,11 @@
final int cdmaDbm = 30;
final int cdmaAsu = 30;
setupCellSignalStrength_lteCdma(lteDbm, lteAsu, cdmaDbm, cdmaAsu);
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
mController.initialize();
- final String signalStrengthString =
- mContext.getString(R.string.sim_signal_strength, lteDbm, lteAsu);
+ final String signalStrengthString = ResourcesUtils.getResourcesString(
+ mContext, "sim_signal_strength", lteDbm, lteAsu);
verify(mDialog, times(2)).setText(SIGNAL_STRENGTH_VALUE_ID, signalStrengthString);
}
@@ -318,19 +281,15 @@
public void initialize_updateVoiceOutOfServiceDataInService_shouldUpdateSignalStrengthTo50() {
when(mServiceState.getState()).thenReturn(ServiceState.STATE_OUT_OF_SERVICE);
when(mServiceState.getDataRegistrationState()).thenReturn(ServiceState.STATE_IN_SERVICE);
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
final int lteDbm = 50;
final int lteAsu = 50;
setupCellSignalStrength_lteOnly(lteDbm, lteAsu);
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL)).thenReturn(true);
mController.initialize();
- final String signalStrengthString =
- mContext.getString(R.string.sim_signal_strength, lteDbm, lteAsu);
+ final String signalStrengthString = ResourcesUtils.getResourcesString(
+ mContext, "sim_signal_strength", lteDbm, lteAsu);
verify(mDialog, times(2)).setText(SIGNAL_STRENGTH_VALUE_ID, signalStrengthString);
}
@@ -362,7 +321,8 @@
mController.initialize();
- final String roamingOnString = mContext.getString(R.string.radioInfo_roaming_in);
+ final String roamingOnString = ResourcesUtils.getResourcesString(
+ mContext, "radioInfo_roaming_in");
verify(mDialog).setText(ROAMING_INFO_VALUE_ID, roamingOnString);
}
@@ -372,14 +332,15 @@
mController.initialize();
- final String roamingOffString = mContext.getString(R.string.radioInfo_roaming_not);
+ final String roamingOffString = ResourcesUtils.getResourcesString(
+ mContext, "radioInfo_roaming_not");
verify(mDialog).setText(ROAMING_INFO_VALUE_ID, roamingOffString);
}
@Test
public void initialize_doNotShowIccid_shouldRemoveIccidSetting() {
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL)).thenReturn(false);
+ mPersistableBundle.putBoolean(
+ CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL, false);
mController.initialize();
@@ -389,9 +350,8 @@
@Test
public void initialize_doNotShowSignalStrength_shouldRemoveSignalStrengthSetting() {
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL))
- .thenReturn(false);
+ mPersistableBundle.putBoolean(
+ CarrierConfigManager.KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL, false);
mController.initialize();
@@ -414,8 +374,7 @@
@Test
public void initialize_showIccid_shouldSetIccidToSetting() {
final String iccid = "12351351231241";
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL)).thenReturn(true);
+ mPersistableBundle.putBoolean(CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL, true);
doReturn(iccid).when(mTelephonyManager).getSimSerialNumber();
mController.initialize();
@@ -720,8 +679,8 @@
@Test
@Ignore
public void initialize_imsRegistered_shouldSetImsRegistrationStateSummaryToRegisterd() {
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true);
+ mPersistableBundle.putBoolean(
+ CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL, true);
when(mTelephonyManager.isImsRegistered(anyInt())).thenReturn(true);
mController.initialize();
@@ -733,8 +692,8 @@
@Test
@Ignore
public void initialize_imsNotRegistered_shouldSetImsRegistrationStateSummaryToNotRegisterd() {
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true);
+ mPersistableBundle.putBoolean(
+ CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL, true);
when(mTelephonyManager.isImsRegistered(anyInt())).thenReturn(false);
mController.initialize();
@@ -746,8 +705,8 @@
@Test
@Ignore
public void initialize_showImsRegistration_shouldNotRemoveImsRegistrationStateSetting() {
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true);
+ mPersistableBundle.putBoolean(
+ CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL, true);
mController.initialize();
@@ -757,8 +716,8 @@
@Test
@Ignore
public void initialize_doNotShowImsRegistration_shouldRemoveImsRegistrationStateSetting() {
- when(mPersistableBundle.getBoolean(
- CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(false);
+ mPersistableBundle.putBoolean(
+ CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL, false);
mController.initialize();
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/VolumeSizesLoaderTest.java b/tests/unit/src/com/android/settings/deviceinfo/storage/VolumeSizesLoaderTest.java
similarity index 61%
rename from tests/robotests/src/com/android/settings/deviceinfo/storage/VolumeSizesLoaderTest.java
rename to tests/unit/src/com/android/settings/deviceinfo/storage/VolumeSizesLoaderTest.java
index 5aa9f72..79c5db8 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/VolumeSizesLoaderTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/storage/VolumeSizesLoaderTest.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.android.settings.deviceinfo.storage;
import static com.google.common.truth.Truth.assertThat;
@@ -8,14 +23,15 @@
import android.os.storage.VolumeInfo;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settingslib.deviceinfo.PrivateStorageInfo;
import com.android.settingslib.deviceinfo.StorageVolumeProvider;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class VolumeSizesLoaderTest {
@Test
public void getVolumeSize_getsValidSizes() throws Exception {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java b/tests/unit/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
similarity index 82%
rename from tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
rename to tests/unit/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
index 2919edc..b807114 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
+++ b/tests/unit/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScheduleRadioButtonsControllerTest.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package com.android.settings.fuelgauge.batterysaver;
import static com.google.common.truth.Truth.assertThat;
@@ -9,13 +24,14 @@
import android.provider.Settings.Global;
import android.provider.Settings.Secure;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class BatterySaverScheduleRadioButtonsControllerTest {
private Context mContext;
private ContentResolver mResolver;
@@ -24,7 +40,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mSeekBarController = new BatterySaverScheduleSeekBarController(mContext);
mController = new BatterySaverScheduleRadioButtonsController(
mContext, mSeekBarController);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java b/tests/unit/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java
similarity index 87%
rename from tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java
index 0e7c312..8cfedf6 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/fuelgauge/batterysaver/BatterySaverStickyPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,13 +21,15 @@
import android.content.Context;
import android.provider.Settings;
import android.provider.Settings.Global;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class BatterySaverStickyPreferenceControllerTest {
private static final String PREF_KEY = "battery_saver_sticky";
@@ -37,7 +39,7 @@
@Before
public void setup() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new BatterySaverStickyPreferenceController(mContext, PREF_KEY);
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AppInfoTest.java b/tests/unit/src/com/android/settings/fuelgauge/batterytip/AppInfoTest.java
similarity index 95%
rename from tests/robotests/src/com/android/settings/fuelgauge/batterytip/AppInfoTest.java
rename to tests/unit/src/com/android/settings/fuelgauge/batterytip/AppInfoTest.java
index ad546f3..069f123 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/AppInfoTest.java
+++ b/tests/unit/src/com/android/settings/fuelgauge/batterytip/AppInfoTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,8 @@
import android.os.Parcel;
import android.text.format.DateUtils;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,9 +30,8 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class AppInfoTest {
private static final String PACKAGE_NAME = "com.android.app";
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java b/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java
similarity index 94%
rename from tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java
rename to tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java
index 9b54fc7..4be2ae6 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java
+++ b/tests/unit/src/com/android/settings/fuelgauge/batterytip/BatteryTipPolicyTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,13 +22,14 @@
import android.provider.Settings;
import android.text.format.DateUtils;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class BatteryTipPolicyTest {
private static final String BATTERY_TIP_CONSTANTS_VALUE = "battery_tip_enabled=true"
@@ -54,7 +55,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java b/tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
index 28ce802..18738e9 100644
--- a/tests/robotests/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/gestures/OneHandedAppTapsExitPreferenceControllerTest.java
@@ -21,16 +21,16 @@
import android.content.Context;
import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.TogglePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class OneHandedAppTapsExitPreferenceControllerTest {
private static final String KEY = "gesture_app_taps_to_exit";
@@ -42,7 +42,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new OneHandedAppTapsExitPreferenceController(mContext, KEY);
mSwitchPreference = new SwitchPreference(mContext);
mSwitchPreference.setKey(KEY);
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java
similarity index 89%
rename from tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java
rename to tests/unit/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java
index c908225..cf9b3c6 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,14 +22,15 @@
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class CardDatabaseHelperTest {
private Context mContext;
@@ -38,7 +39,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mCardDatabaseHelper = CardDatabaseHelper.getInstance(mContext);
mDatabase = mCardDatabaseHelper.getReadableDatabase();
}
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTableTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTableTest.java
similarity index 96%
rename from tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTableTest.java
rename to tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTableTest.java
index 36f9c96..a7acffc 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTableTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardLookupTableTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,18 +18,19 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.homepage.contextualcards.ContextualCardLookupTable.ControllerRendererMapping;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
import java.util.ArrayList;
import java.util.List;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class ContextualCardLookupTableTest {
private static final int UNSUPPORTED_CARD_TYPE = -99999;
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardsDiffCallbackTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardsDiffCallbackTest.java
similarity index 95%
rename from tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardsDiffCallbackTest.java
rename to tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardsDiffCallbackTest.java
index 1e17a0b..3e7dadf 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/ContextualCardsDiffCallbackTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/ContextualCardsDiffCallbackTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,9 +11,8 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-
package com.android.settings.homepage.contextualcards;
import static com.android.settings.intelligence.ContextualCardProto.ContextualCard.Category.IMPORTANT_VALUE;
@@ -23,15 +22,16 @@
import android.net.Uri;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
import java.util.ArrayList;
import java.util.List;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class ContextualCardsDiffCallbackTest {
private static final Uri TEST_SLICE_URI = Uri.parse("content://test/test");
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardTest.java
similarity index 90%
rename from tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardTest.java
rename to tests/unit/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardTest.java
index b658822..0a039a9 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/conditional/ConditionFooterContextualCardTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,13 +18,14 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.homepage.contextualcards.ContextualCard;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class ConditionFooterContextualCardTest {
@Test(expected = IllegalArgumentException.class)
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardTest.java
similarity index 90%
rename from tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardTest.java
rename to tests/unit/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardTest.java
index 275e96b..59ff550 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/conditional/ConditionHeaderContextualCardTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,13 +18,14 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.homepage.contextualcards.ContextualCard;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class ConditionHeaderContextualCardTest {
@Test(expected = IllegalArgumentException.class)
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCardTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCardTest.java
similarity index 92%
rename from tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCardTest.java
rename to tests/unit/src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCardTest.java
index 3f57228..a06afc8 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCardTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/conditional/ConditionalContextualCardTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,13 +21,14 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.homepage.contextualcards.ContextualCard;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class ConditionalContextualCardTest {
@Test(expected = IllegalArgumentException.class)
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSliceTest.java b/tests/unit/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSliceTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSliceTest.java
rename to tests/unit/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSliceTest.java
index 6f212df..a67d2e9 100644
--- a/tests/robotests/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSliceTest.java
+++ b/tests/unit/src/com/android/settings/homepage/contextualcards/slices/FaceSetupSliceTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,9 +11,8 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-
package com.android.settings.homepage.contextualcards.slices;
import static com.google.common.truth.Truth.assertThat;
@@ -31,14 +30,14 @@
import androidx.slice.SliceMetadata;
import androidx.slice.SliceProvider;
import androidx.slice.widget.SliceLiveData;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class FaceSetupSliceTest {
private Context mContext;
@@ -48,7 +47,7 @@
public void setUp() {
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
- mContext = spy(RuntimeEnvironment.application);
+ mContext = spy(ApplicationProvider.getApplicationContext());
mPackageManager = mock(PackageManager.class);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
}
diff --git a/tests/robotests/src/com/android/settings/network/ActiveSubsciptionsListenerTest.java b/tests/unit/src/com/android/settings/network/ActiveSubsciptionsListenerTest.java
similarity index 68%
rename from tests/robotests/src/com/android/settings/network/ActiveSubsciptionsListenerTest.java
rename to tests/unit/src/com/android/settings/network/ActiveSubsciptionsListenerTest.java
index 5565ca3..efa21ae 100644
--- a/tests/robotests/src/com/android/settings/network/ActiveSubsciptionsListenerTest.java
+++ b/tests/unit/src/com/android/settings/network/ActiveSubsciptionsListenerTest.java
@@ -17,11 +17,12 @@
package com.android.settings.network;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.robolectric.Shadows.shadowOf;
+import static org.mockito.Mockito.when;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -32,6 +33,7 @@
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.internal.telephony.TelephonyIntents;
@@ -40,16 +42,11 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowBroadcastReceiver;
-import org.robolectric.shadows.ShadowContextImpl;
-import org.robolectric.shadows.ShadowSubscriptionManager;
import java.util.ArrayList;
import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
@RunWith(AndroidJUnit4.class)
public class ActiveSubsciptionsListenerTest {
@@ -66,37 +63,35 @@
new Intent(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
private Context mContext;
- private ShadowContextImpl mShadowContextImpl;
+
+ @Mock
private SubscriptionManager mSubscriptionManager;
- private ShadowSubscriptionManager mShadowSubscriptionManager;
private List<SubscriptionInfo> mActiveSubscriptions;
private ActiveSubsciptionsListenerImpl mListener;
private BroadcastReceiver mReceiver;
- private ShadowBroadcastReceiver mShadowReceiver;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application.getBaseContext();
- mShadowContextImpl = Shadow.extract(mContext);
-
- mSubscriptionManager = spy(mContext.getSystemService(SubscriptionManager.class));
- mShadowSubscriptionManager = shadowOf(mSubscriptionManager);
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
mActiveSubscriptions = new ArrayList<SubscriptionInfo>();
- mActiveSubscriptions.add(ShadowSubscriptionManager.SubscriptionInfoBuilder
- .newBuilder().setId(SUB_ID1).buildSubscriptionInfo());
- mActiveSubscriptions.add(ShadowSubscriptionManager.SubscriptionInfoBuilder
- .newBuilder().setId(SUB_ID2).buildSubscriptionInfo());
- mShadowSubscriptionManager.setActiveSubscriptionInfoList(mActiveSubscriptions);
+ addMockSubscription(SUB_ID1);
+ addMockSubscription(SUB_ID2);
+ doReturn(mActiveSubscriptions).when(mSubscriptionManager).getActiveSubscriptionInfoList();
mListener = spy(new ActiveSubsciptionsListenerImpl(Looper.getMainLooper(), mContext));
doReturn(mSubscriptionManager).when(mListener).getSubscriptionManager();
mReceiver = mListener.getSubscriptionChangeReceiver();
- mShadowReceiver = shadowOf(mReceiver);
- doReturn(mReceiver).when(mListener).getSubscriptionChangeReceiver();
+ }
+
+ private void addMockSubscription(int subId) {
+ SubscriptionInfo mockSubscriptionInfo = mock(SubscriptionInfo.class);
+ doReturn(subId).when(mockSubscriptionInfo).getSubscriptionId();
+ mActiveSubscriptions.add(mockSubscriptionInfo);
}
@After
@@ -104,8 +99,8 @@
mListener.close();
}
- private class ActiveSubsciptionsListenerImpl extends ActiveSubsciptionsListener {
- private ActiveSubsciptionsListenerImpl(Looper looper, Context context) {
+ public class ActiveSubsciptionsListenerImpl extends ActiveSubsciptionsListener {
+ public ActiveSubsciptionsListenerImpl(Looper looper, Context context) {
super(looper, context);
}
@@ -115,10 +110,6 @@
public void onChanged() {}
}
- private void sendIntentToReceiver(Intent intent) {
- mShadowReceiver.onReceive(mContext, intent, new AtomicBoolean(false));
- }
-
@Test
public void constructor_noListeningWasSetup() {
verify(mListener, never()).onChanged();
@@ -126,45 +117,45 @@
@Test
public void start_configChangedIntent_onChangedShouldBeCalled() {
- sendIntentToReceiver(INTENT_RADIO_TECHNOLOGY_CHANGED);
- sendIntentToReceiver(INTENT_MULTI_SIM_CONFIG_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_RADIO_TECHNOLOGY_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_MULTI_SIM_CONFIG_CHANGED);
verify(mListener, never()).onChanged();
mListener.start();
- sendIntentToReceiver(INTENT_RADIO_TECHNOLOGY_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_RADIO_TECHNOLOGY_CHANGED);
verify(mListener, times(1)).onChanged();
- sendIntentToReceiver(INTENT_MULTI_SIM_CONFIG_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_MULTI_SIM_CONFIG_CHANGED);
verify(mListener, times(2)).onChanged();
mListener.stop();
- sendIntentToReceiver(INTENT_RADIO_TECHNOLOGY_CHANGED);
- sendIntentToReceiver(INTENT_MULTI_SIM_CONFIG_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_RADIO_TECHNOLOGY_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_MULTI_SIM_CONFIG_CHANGED);
verify(mListener, times(2)).onChanged();
}
@Test
public void start_carrierConfigChangedIntent_onChangedWhenSubIdBeenCached() {
- sendIntentToReceiver(INTENT_CARRIER_CONFIG_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_CARRIER_CONFIG_CHANGED);
verify(mListener, never()).onChanged();
mListener.start();
mListener.getActiveSubscriptionsInfo();
- sendIntentToReceiver(INTENT_CARRIER_CONFIG_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_CARRIER_CONFIG_CHANGED);
verify(mListener, never()).onChanged();
INTENT_CARRIER_CONFIG_CHANGED.putExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX,
SUB_ID2);
- sendIntentToReceiver(INTENT_CARRIER_CONFIG_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_CARRIER_CONFIG_CHANGED);
verify(mListener, times(1)).onChanged();
mListener.stop();
- sendIntentToReceiver(INTENT_CARRIER_CONFIG_CHANGED);
+ mReceiver.onReceive(mContext, INTENT_CARRIER_CONFIG_CHANGED);
verify(mListener, times(1)).onChanged();
}
@@ -175,12 +166,12 @@
List<SubscriptionInfo> subInfoList = null;
int numberOfAccess = 0;
+
for (int numberOfSubInfo = mActiveSubscriptions.size(); numberOfSubInfo >= 0;
numberOfSubInfo--) {
if (mActiveSubscriptions.size() > numberOfSubInfo) {
mActiveSubscriptions.remove(numberOfSubInfo);
}
- mShadowSubscriptionManager.setActiveSubscriptionInfoList(mActiveSubscriptions);
// fetch twice and test if they generated access to SubscriptionManager only once
subInfoList = mListener.getActiveSubscriptionsInfo();
@@ -192,7 +183,7 @@
mListener.clearCache();
}
- mShadowSubscriptionManager.setActiveSubscriptionInfoList(null);
+ mActiveSubscriptions.clear();
// fetch twice and test if they generated access to SubscriptionManager only once
subInfoList = mListener.getActiveSubscriptionsInfo();
diff --git a/tests/unit/src/com/android/settings/network/AirplaneSafeNetworksSliceTest.java b/tests/unit/src/com/android/settings/network/AirplaneSafeNetworksSliceTest.java
index ce47eb7..c479c25 100644
--- a/tests/unit/src/com/android/settings/network/AirplaneSafeNetworksSliceTest.java
+++ b/tests/unit/src/com/android/settings/network/AirplaneSafeNetworksSliceTest.java
@@ -34,7 +34,7 @@
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
-import com.android.settings.AirplaneModeEnabler;
+import com.android.settings.testutils.AirplaneModeRule;
import org.junit.Before;
import org.junit.Rule;
@@ -52,19 +52,18 @@
@Rule
public MockitoRule mMocks = MockitoJUnit.rule();
+ @Rule
+ public AirplaneModeRule mAirplaneModeRule = new AirplaneModeRule();
@Mock
private WifiManager mWifiManager;
private Context mContext;
- private AirplaneModeEnabler mAirplaneModeEnabler;
private AirplaneSafeNetworksSlice mAirplaneSafeNetworksSlice;
@Before
public void setUp() {
mContext = spy(ApplicationProvider.getApplicationContext());
when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
- mAirplaneModeEnabler =
- new AirplaneModeEnabler(mContext, null /* OnAirplaneModeChangedListener */);
// Set-up specs for SliceMetadata.
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
@@ -74,14 +73,14 @@
@Test
public void getSlice_airplaneModeOff_shouldBeNull() {
- mAirplaneModeEnabler.setAirplaneMode(false);
+ mAirplaneModeRule.setAirplaneMode(false);
assertThat(mAirplaneSafeNetworksSlice.getSlice()).isNull();
}
@Test
public void getSlice_wifiDisabled_shouldShowViewAirplaneSafeNetworks() {
- mAirplaneModeEnabler.setAirplaneMode(true);
+ mAirplaneModeRule.setAirplaneMode(true);
when(mWifiManager.isWifiEnabled()).thenReturn(false);
final Slice slice = mAirplaneSafeNetworksSlice.getSlice();
@@ -94,7 +93,7 @@
@Test
public void getSlice_wifiEnabled_shouldShowTurnOffAirplaneMode() {
- mAirplaneModeEnabler.setAirplaneMode(true);
+ mAirplaneModeRule.setAirplaneMode(true);
when(mWifiManager.isWifiEnabled()).thenReturn(true);
final Slice slice = mAirplaneSafeNetworksSlice.getSlice();
@@ -107,7 +106,7 @@
@Test
public void onNotifyChange_viewAirplaneSafeNetworks_shouldSetWifiEnabled() {
- mAirplaneModeEnabler.setAirplaneMode(true);
+ mAirplaneModeRule.setAirplaneMode(true);
when(mWifiManager.isWifiEnabled()).thenReturn(false);
Intent intent = mAirplaneSafeNetworksSlice.getIntent();
@@ -118,12 +117,12 @@
@Test
public void onNotifyChange_turnOffAirplaneMode_shouldSetAirplaneModeOff() {
- mAirplaneModeEnabler.setAirplaneMode(true);
+ mAirplaneModeRule.setAirplaneMode(true);
when(mWifiManager.isWifiEnabled()).thenReturn(true);
Intent intent = mAirplaneSafeNetworksSlice.getIntent();
mAirplaneSafeNetworksSlice.onNotifyChange(intent);
- assertThat(mAirplaneModeEnabler.isAirplaneModeOn()).isFalse();
+ assertThat(mAirplaneModeRule.isAirplaneModeOn()).isFalse();
}
}
diff --git a/tests/robotests/src/com/android/settings/security/CredentialManagementAppButtonsControllerTest.java b/tests/unit/src/com/android/settings/network/EraseEuiccDataControllerTest.java
similarity index 60%
copy from tests/robotests/src/com/android/settings/security/CredentialManagementAppButtonsControllerTest.java
copy to tests/unit/src/com/android/settings/network/EraseEuiccDataControllerTest.java
index ecc2f2d..05b92a8 100644
--- a/tests/robotests/src/com/android/settings/security/CredentialManagementAppButtonsControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/EraseEuiccDataControllerTest.java
@@ -14,37 +14,38 @@
* limitations under the License.
*/
-package com.android.settings.security;
+package com.android.settings.network;
import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
+
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
-public class CredentialManagementAppButtonsControllerTest {
+@RunWith(AndroidJUnit4.class)
+public class EraseEuiccDataControllerTest {
- private Context mContext;
- private CredentialManagementAppButtonsController mController;
+ private static final String ERASE_EUICC_DATA_PREFERENCE_KEY = "erase_euicc_data";
- private static final String PREF_KEY_CREDENTIAL_MANAGEMENT_APP = "certificate_management_app";
+ private EraseEuiccDataController mController;
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
- mController = new CredentialManagementAppButtonsController(
- mContext, PREF_KEY_CREDENTIAL_MANAGEMENT_APP);
+ Context context = ApplicationProvider.getApplicationContext();
+ mController = new EraseEuiccDataController(context, ERASE_EUICC_DATA_PREFERENCE_KEY);
}
@Test
- public void getAvailabilityStatus_shouldAlwaysReturnAvailableUnsearchable() {
+ public void getAvailabilityStatus_byDefault_true() {
assertThat(mController.getAvailabilityStatus())
.isEqualTo(BasePreferenceController.AVAILABLE_UNSEARCHABLE);
}
diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java
index 061e1c0..8444f11 100644
--- a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java
@@ -27,6 +27,7 @@
import android.telephony.SubscriptionManager;
import android.text.TextUtils;
+import com.android.settings.testutils.ResourcesUtils;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.RestrictedPreference;
@@ -46,6 +47,7 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import java.util.ArrayList;
import java.util.Arrays;
import static org.mockito.Mockito.doReturn;
@@ -60,10 +62,6 @@
private static final String KEY_PREFERENCE_CALLS_SMS = "calls_and_sms";
private static final String DISPLAY_NAME_1 = "Sub 1";
private static final String DISPLAY_NAME_2 = "Sub 2";
- private static final String PREFERRED_CALL_SMS = "preferred";
- private static final String PREFERRED_CALL = "calls preferred";
- private static final String PREFERRED_SMS = "SMS preferred";
- private static final String UNAVAILABLE = "unavailable";
@Mock
private SubscriptionManager mSubscriptionManager;
@@ -150,6 +148,20 @@
when(subscriptionInfo.getDisplayName()).thenReturn(displayName);
}
+ private String setSummaryResId(String resName) {
+ return ResourcesUtils.getResourcesString(mContext, resName);
+ }
+
+ @Test
+ @UiThreadTest
+ public void getSummary_noSim_returnNoSim() {
+ when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>());
+ displayPreferenceWithLifecycle();
+
+ assertTrue(TextUtils.equals(mController.getSummary(),
+ setSummaryResId("calls_sms_no_sim")));
+ }
+
@Test
@UiThreadTest
public void getSummary_invalidSubId_returnUnavailable() {
@@ -162,7 +174,7 @@
final StringBuilder summary = new StringBuilder();
summary.append(DISPLAY_NAME_1)
.append(" (")
- .append(UNAVAILABLE)
+ .append(setSummaryResId("calls_sms_unavailable"))
.append(")");
assertTrue(TextUtils.equals(mController.getSummary(), summary));
@@ -181,7 +193,7 @@
final StringBuilder summary = new StringBuilder();
summary.append(DISPLAY_NAME_1)
.append(" (")
- .append(UNAVAILABLE)
+ .append(setSummaryResId("calls_sms_unavailable"))
.append(")")
.append(", ")
.append(DISPLAY_NAME_2);
@@ -233,12 +245,12 @@
final StringBuilder summary = new StringBuilder();
summary.append(DISPLAY_NAME_1)
.append(" (")
- .append(PREFERRED_CALL)
+ .append(setSummaryResId("calls_sms_calls_preferred"))
.append(")")
.append(", ")
.append(DISPLAY_NAME_2)
.append(" (")
- .append(PREFERRED_SMS)
+ .append(setSummaryResId("calls_sms_sms_preferred"))
.append(")");
assertTrue(TextUtils.equals(mController.getSummary(), summary));
@@ -260,12 +272,12 @@
final StringBuilder summary = new StringBuilder();
summary.append(DISPLAY_NAME_1)
.append(" (")
- .append(PREFERRED_SMS)
+ .append(setSummaryResId("calls_sms_sms_preferred"))
.append(")")
.append(", ")
.append(DISPLAY_NAME_2)
.append(" (")
- .append(PREFERRED_CALL)
+ .append(setSummaryResId("calls_sms_calls_preferred"))
.append(")");
assertTrue(TextUtils.equals(mController.getSummary(), summary));
@@ -287,7 +299,7 @@
final StringBuilder summary = new StringBuilder();
summary.append(DISPLAY_NAME_1)
.append(" (")
- .append(PREFERRED_CALL_SMS)
+ .append(setSummaryResId("calls_sms_preferred"))
.append(")")
.append(", ")
.append(DISPLAY_NAME_2);
diff --git a/tests/robotests/src/com/android/settings/network/PreferredNetworkModeContentObserverTest.java b/tests/unit/src/com/android/settings/network/PreferredNetworkModeContentObserverTest.java
similarity index 79%
rename from tests/robotests/src/com/android/settings/network/PreferredNetworkModeContentObserverTest.java
rename to tests/unit/src/com/android/settings/network/PreferredNetworkModeContentObserverTest.java
index 657b8b3..e07a8f1 100644
--- a/tests/robotests/src/com/android/settings/network/PreferredNetworkModeContentObserverTest.java
+++ b/tests/unit/src/com/android/settings/network/PreferredNetworkModeContentObserverTest.java
@@ -16,41 +16,43 @@
package com.android.settings.network;
-import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.content.ContentResolver;
import android.content.Context;
import android.provider.Settings;
+import android.test.mock.MockContentResolver;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class PreferredNetworkModeContentObserverTest {
private static final int SUB_ID = 1;
- @Mock
- private ContentResolver mResolver;
- @Mock
private Context mContext;
+ private MockContentResolver mResolver;
+ private PreferredNetworkModeContentObserver mPreferredNetworkModeContentObserver;
+
@Mock
private PreferredNetworkModeContentObserver.OnPreferredNetworkModeChangedListener mListener;
- private PreferredNetworkModeContentObserver mPreferredNetworkModeContentObserver;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- when(mContext.getContentResolver()).thenReturn(mResolver);
+ mContext = spy(ApplicationProvider.getApplicationContext());
+
+ mResolver = spy(new MockContentResolver(mContext));
+ when(mContext.getContentResolver()).thenReturn(mResolver);
mPreferredNetworkModeContentObserver =
spy(new PreferredNetworkModeContentObserver(null));
}
@@ -68,8 +70,8 @@
mPreferredNetworkModeContentObserver.register(mContext, SUB_ID);
verify(mResolver).registerContentObserver(
- Settings.Global.getUriFor(Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID), false,
- mPreferredNetworkModeContentObserver);
+ Settings.Global.getUriFor(Settings.Global.PREFERRED_NETWORK_MODE + SUB_ID), false,
+ mPreferredNetworkModeContentObserver);
}
@Test
@@ -78,5 +80,4 @@
verify(mResolver).unregisterContentObserver(mPreferredNetworkModeContentObserver);
}
-
}
diff --git a/tests/unit/src/com/android/settings/network/ims/MockVtQueryImsState.java b/tests/unit/src/com/android/settings/network/ims/MockVtQueryImsState.java
new file mode 100644
index 0000000..0949f1c
--- /dev/null
+++ b/tests/unit/src/com/android/settings/network/ims/MockVtQueryImsState.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.ims;
+
+import android.content.Context;
+import android.telephony.ims.ImsException;
+
+/**
+ * Controller class for mock VT status
+ */
+public class MockVtQueryImsState extends VtQueryImsState {
+
+ private Boolean mIsTtyOnVolteEnabled;
+ private Boolean mIsEnabledOnPlatform;
+ private Boolean mIsProvisionedOnDevice;
+ private Boolean mIsEnabledByUser;
+ private Boolean mIsServiceStateReady;
+
+ /**
+ * Constructor
+ *
+ * @param context {@link Context}
+ * @param subId subscription's id
+ */
+ public MockVtQueryImsState(Context context, int subId) {
+ super(context, subId);
+ }
+
+ public void setIsTtyOnVolteEnabled(boolean enabled) {
+ mIsTtyOnVolteEnabled = enabled;
+ }
+
+ @Override
+ boolean isTtyOnVolteEnabled(int subId) {
+ if (mIsTtyOnVolteEnabled != null) {
+ return mIsTtyOnVolteEnabled;
+ }
+ return super.isTtyOnVolteEnabled(subId);
+ }
+
+ public void setIsEnabledByPlatform(boolean isEnabled) {
+ mIsEnabledOnPlatform = isEnabled;
+ }
+
+ @Override
+ boolean isEnabledByPlatform(int subId) throws InterruptedException, ImsException,
+ IllegalArgumentException {
+ if (mIsEnabledOnPlatform != null) {
+ return mIsEnabledOnPlatform;
+ }
+ return super.isEnabledByPlatform(subId);
+ }
+
+ public void setIsProvisionedOnDevice(boolean isProvisioned) {
+ mIsProvisionedOnDevice = isProvisioned;
+ }
+
+ @Override
+ boolean isProvisionedOnDevice(int subId) {
+ if (mIsProvisionedOnDevice != null) {
+ return mIsProvisionedOnDevice;
+ }
+ return super.isProvisionedOnDevice(subId);
+ }
+
+ public void setServiceStateReady(boolean isReady) {
+ mIsServiceStateReady = isReady;
+ }
+
+ @Override
+ boolean isServiceStateReady(int subId) throws InterruptedException, ImsException,
+ IllegalArgumentException {
+ if (mIsServiceStateReady != null) {
+ return mIsServiceStateReady;
+ }
+ return super.isServiceStateReady(subId);
+ }
+
+ public void setIsEnabledByUser(boolean enabled) {
+ mIsEnabledByUser = enabled;
+ }
+
+ @Override
+ boolean isEnabledByUser(int subId) {
+ if (mIsEnabledByUser != null) {
+ return mIsEnabledByUser;
+ }
+ return super.isEnabledByUser(subId);
+ }
+}
diff --git a/tests/unit/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java b/tests/unit/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java
new file mode 100644
index 0000000..abea839
--- /dev/null
+++ b/tests/unit/src/com/android/settings/network/ims/MockWifiCallingQueryImsState.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network.ims;
+
+import android.content.Context;
+import android.telephony.ims.ImsException;
+
+/**
+ * Controller class for mock Wifi calling status
+ */
+public class MockWifiCallingQueryImsState extends WifiCallingQueryImsState {
+
+ private Boolean mIsTtyOnVolteEnabled;
+ private Boolean mIsEnabledOnPlatform;
+ private Boolean mIsProvisionedOnDevice;
+ private Boolean mIsServiceStateReady;
+ private Boolean mIsEnabledByUser;
+
+ /**
+ * Constructor
+ *
+ * @param context {@code Context}
+ * @param subId subscription's id
+ */
+ public MockWifiCallingQueryImsState(Context context, int subId) {
+ super(context, subId);
+ }
+
+ public void setIsTtyOnVolteEnabled(boolean enabled) {
+ mIsTtyOnVolteEnabled = enabled;
+ }
+
+ @Override
+ boolean isTtyOnVolteEnabled(int subId) {
+ if (mIsTtyOnVolteEnabled != null) {
+ return mIsTtyOnVolteEnabled;
+ }
+ return super.isTtyOnVolteEnabled(subId);
+ }
+
+
+ public void setIsEnabledByPlatform(boolean isEnabled) {
+ mIsEnabledOnPlatform = isEnabled;
+ }
+
+ @Override
+ boolean isEnabledByPlatform(int subId) throws InterruptedException, ImsException,
+ IllegalArgumentException {
+ if (mIsEnabledOnPlatform != null) {
+ return mIsEnabledOnPlatform;
+ }
+ return super.isEnabledByPlatform(subId);
+ }
+
+ public void setIsProvisionedOnDevice(boolean isProvisioned) {
+ mIsProvisionedOnDevice = isProvisioned;
+ }
+
+ @Override
+ boolean isProvisionedOnDevice(int subId) {
+ if (mIsProvisionedOnDevice != null) {
+ return mIsProvisionedOnDevice;
+ }
+ return super.isProvisionedOnDevice(subId);
+ }
+
+ public void setServiceStateReady(boolean isReady) {
+ mIsServiceStateReady = isReady;
+ }
+
+ @Override
+ boolean isServiceStateReady(int subId) throws InterruptedException, ImsException,
+ IllegalArgumentException {
+ if (mIsServiceStateReady != null) {
+ return mIsServiceStateReady;
+ }
+ return super.isServiceStateReady(subId);
+ }
+
+ public void setIsEnabledByUser(boolean enabled) {
+ mIsEnabledByUser = enabled;
+ }
+
+ @Override
+ boolean isEnabledByUser(int subId) {
+ if (mIsEnabledByUser != null) {
+ return mIsEnabledByUser;
+ }
+ return super.isEnabledByUser(subId);
+ }
+
+}
diff --git a/tests/unit/src/com/android/settings/network/telephony/CrossSimCallingPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/CrossSimCallingPreferenceControllerTest.java
index 968afb8..4b8a272 100644
--- a/tests/unit/src/com/android/settings/network/telephony/CrossSimCallingPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/CrossSimCallingPreferenceControllerTest.java
@@ -16,6 +16,8 @@
package com.android.settings.network.telephony;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.spy;
import android.content.Context;
@@ -23,7 +25,10 @@
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
+import com.android.settings.core.BasePreferenceController;
+
import org.junit.Before;
+import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
@@ -40,4 +45,10 @@
mController = new CrossSimCallingPreferenceController(mContext, "cross_sim_calling_key");
mController.init(SUB_ID);
}
+
+ @Test
+ public void controller_isUnavailable() {
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java
similarity index 89%
rename from tests/robotests/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java
index d107814..ec4f1d7 100644
--- a/tests/robotests/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,6 +21,7 @@
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
import android.content.Context;
import android.os.PersistableBundle;
@@ -30,6 +31,8 @@
import android.telephony.ims.ProvisioningManager;
import androidx.preference.SwitchPreference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.network.ims.MockVolteQueryImsState;
@@ -40,10 +43,8 @@
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class Enhanced4gBasePreferenceControllerTest {
private static final int SUB_ID = 2;
@@ -69,10 +70,12 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
- mContext = spy(RuntimeEnvironment.application);
- doReturn(mTelephonyManager).when(mContext).getSystemService(TelephonyManager.class);
- doReturn(mSubscriptionManager).when(mContext).getSystemService(SubscriptionManager.class);
- doReturn(mCarrierConfigManager).when(mContext).getSystemService(CarrierConfigManager.class);
+ mContext = spy(ApplicationProvider.getApplicationContext());
+ when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
+ when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+ when(mContext.getSystemService(CarrierConfigManager.class))
+ .thenReturn(mCarrierConfigManager);
+
doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(SUB_ID);
doReturn(mInvalidTelephonyManager).when(mTelephonyManager).createForSubscriptionId(
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
diff --git a/tests/unit/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java b/tests/unit/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
index 2b812c7..2c6a8c6 100644
--- a/tests/unit/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/Enhanced4gLteSliceHelperTest.java
@@ -237,14 +237,15 @@
final Intent intent = new Intent(action);
intent.setClass(mContext, SliceBroadcastReceiver.class);
return PendingIntent.getBroadcast(mContext, 0 /* requestCode */, intent,
- PendingIntent.FLAG_NO_CREATE);
+ PendingIntent.FLAG_NO_CREATE | PendingIntent.FLAG_IMMUTABLE);
}
private PendingIntent getActivityIntent(String action) {
final Intent intent = new Intent(action);
intent.setPackage(SETTINGS_PACKAGE_NAME);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */);
+ return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent,
+ PendingIntent.FLAG_IMMUTABLE);
}
private void assertTitle(List<SliceItem> sliceItems, String title) {
diff --git a/tests/robotests/src/com/android/settings/nfc/NfcDetectionPointControllerTest.java b/tests/unit/src/com/android/settings/nfc/NfcDetectionPointControllerTest.java
similarity index 84%
rename from tests/robotests/src/com/android/settings/nfc/NfcDetectionPointControllerTest.java
rename to tests/unit/src/com/android/settings/nfc/NfcDetectionPointControllerTest.java
index 31ac7d6..3b9df6d 100644
--- a/tests/robotests/src/com/android/settings/nfc/NfcDetectionPointControllerTest.java
+++ b/tests/unit/src/com/android/settings/nfc/NfcDetectionPointControllerTest.java
@@ -18,20 +18,22 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class NfcDetectionPointControllerTest {
private NfcDetectionPointController mController;
@Before
public void setUp() {
- mController = new NfcDetectionPointController(RuntimeEnvironment.application, "fakeKey");
+ mController = new NfcDetectionPointController(ApplicationProvider.getApplicationContext(),
+ "fakeKey");
}
@Test
diff --git a/tests/robotests/src/com/android/settings/nfc/SecureNfcPreferenceControllerTest.java b/tests/unit/src/com/android/settings/nfc/SecureNfcPreferenceControllerTest.java
similarity index 81%
rename from tests/robotests/src/com/android/settings/nfc/SecureNfcPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/nfc/SecureNfcPreferenceControllerTest.java
index 56f012a..c05e208 100644
--- a/tests/robotests/src/com/android/settings/nfc/SecureNfcPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/nfc/SecureNfcPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,13 +20,14 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class SecureNfcPreferenceControllerTest {
private Context mContext;
@@ -34,7 +35,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new SecureNfcPreferenceController(mContext, "nfc_secure_settings");
}
diff --git a/tests/unit/src/com/android/settings/notification/zen/ZenRuleCustomPrefContrTestBase.java b/tests/unit/src/com/android/settings/notification/zen/ZenRuleCustomPrefContrTestBase.java
new file mode 100644
index 0000000..53ad7c5
--- /dev/null
+++ b/tests/unit/src/com/android/settings/notification/zen/ZenRuleCustomPrefContrTestBase.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.notification.zen;
+
+import android.app.AutomaticZenRule;
+import android.app.NotificationManager;
+import android.service.notification.ZenPolicy;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+abstract class ZenRuleCustomPrefContrTestBase {
+ public static final String RULE_ID = "test_rule_id";
+ public static final String PREF_KEY = "main_pref";
+
+ AutomaticZenRule mRule = new AutomaticZenRule("test", null, null, null, null,
+ NotificationManager.INTERRUPTION_FILTER_PRIORITY, true);
+
+ abstract AbstractZenCustomRulePreferenceController getController();
+
+ void updateControllerZenPolicy(ZenPolicy policy) {
+ mRule.setZenPolicy(policy);
+ getController().onResume(mRule, RULE_ID);
+ }
+}
diff --git a/tests/unit/src/com/android/settings/panel/FakePanelContent.java b/tests/unit/src/com/android/settings/panel/FakePanelContent.java
new file mode 100644
index 0000000..f64d2f2
--- /dev/null
+++ b/tests/unit/src/com/android/settings/panel/FakePanelContent.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.panel;
+
+import static com.android.settings.slices.CustomSliceRegistry.WIFI_SLICE_URI;
+
+import android.app.settings.SettingsEnums;
+import android.content.Intent;
+import android.net.Uri;
+
+import androidx.core.graphics.drawable.IconCompat;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Fake PanelContent for testing.
+ */
+public class FakePanelContent implements PanelContent {
+
+ public static final String FAKE_ACTION = "fake_action";
+
+ public static final CharSequence TITLE = "title";
+
+ public static final List<Uri> SLICE_URIS = Arrays.asList(
+ WIFI_SLICE_URI
+ );
+
+ public static final Intent INTENT = new Intent();
+
+ private CharSequence mTitle = TITLE;
+ private CharSequence mSubTitle;
+ private IconCompat mIcon;
+ private int mViewType;
+ private boolean mIsCustomizedButtonUsed = false;
+ private CharSequence mCustomizedButtonTitle;
+
+ @Override
+ public IconCompat getIcon() {
+ return mIcon;
+ }
+
+ public void setIcon(IconCompat icon) {
+ mIcon = icon;
+ }
+
+ @Override
+ public CharSequence getSubTitle() {
+ return mSubTitle;
+ }
+
+ public void setSubTitle(CharSequence subTitle) {
+ mSubTitle = subTitle;
+ }
+
+ @Override
+ public CharSequence getTitle() {
+ return mTitle;
+ }
+
+ public void setTitle(CharSequence title) {
+ mTitle = title;
+ }
+
+ @Override
+ public List<Uri> getSlices() {
+ return SLICE_URIS;
+ }
+
+ @Override
+ public Intent getSeeMoreIntent() {
+ return INTENT;
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.TESTING;
+ }
+
+ public void setViewType(int viewType) {
+ mViewType = viewType;
+ }
+
+ @Override
+ public int getViewType() {
+ return mViewType;
+ }
+
+ @Override
+ public boolean isCustomizedButtonUsed() {
+ return mIsCustomizedButtonUsed;
+ }
+
+ public void setIsCustomizedButtonUsed(boolean isUsed) {
+ mIsCustomizedButtonUsed = isUsed;
+ }
+
+ @Override
+ public CharSequence getCustomizedButtonTitle() {
+ return mCustomizedButtonTitle;
+ }
+
+ public void setCustomizedButtonTitle(CharSequence title) {
+ mCustomizedButtonTitle = title;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/panel/FakeSettingsPanelActivity.java b/tests/unit/src/com/android/settings/panel/FakeSettingsPanelActivity.java
new file mode 100644
index 0000000..7e1275e
--- /dev/null
+++ b/tests/unit/src/com/android/settings/panel/FakeSettingsPanelActivity.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.panel;
+
+import android.content.ComponentName;
+import android.content.Intent;
+
+public class FakeSettingsPanelActivity extends SettingsPanelActivity {
+ @Override
+ public ComponentName getCallingActivity() {
+ return new ComponentName("fake-package", "fake-class");
+ }
+
+ @Override
+ public Intent getIntent() {
+ final Intent intent = new Intent(FakePanelContent.FAKE_ACTION);
+ return intent;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java b/tests/unit/src/com/android/settings/panel/NfcPanelTest.java
similarity index 82%
rename from tests/robotests/src/com/android/settings/panel/NfcPanelTest.java
rename to tests/unit/src/com/android/settings/panel/NfcPanelTest.java
index 1de2c5a..60adfdd 100644
--- a/tests/robotests/src/com/android/settings/panel/NfcPanelTest.java
+++ b/tests/unit/src/com/android/settings/panel/NfcPanelTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,25 +20,25 @@
import android.net.Uri;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.slices.CustomSliceRegistry;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
import java.util.List;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class NfcPanelTest {
private NfcPanel mPanel;
@Before
public void setUp() {
- mPanel = NfcPanel.create(RuntimeEnvironment.application);
+ mPanel = NfcPanel.create(ApplicationProvider.getApplicationContext());
}
@Test
diff --git a/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java b/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
similarity index 88%
rename from tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
rename to tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
index f924d7a..3b61a73 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
+++ b/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,9 +12,7 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
*/
-
package com.android.settings.panel;
import static com.android.settings.panel.SettingsPanelActivity.KEY_MEDIA_PACKAGE_NAME;
@@ -26,13 +24,14 @@
import android.os.Bundle;
import android.provider.Settings;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class PanelFeatureProviderImplTest {
private static final String TEST_PACKAGENAME = "com.test.packagename";
@@ -43,7 +42,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mProvider = new PanelFeatureProviderImpl();
mBundle = new Bundle();
mBundle.putString(KEY_MEDIA_PACKAGE_NAME, TEST_PACKAGENAME);
diff --git a/tests/robotests/src/com/android/settings/panel/PanelSlicesLoaderCountdownLatchTest.java b/tests/unit/src/com/android/settings/panel/PanelSlicesLoaderCountdownLatchTest.java
similarity index 90%
rename from tests/robotests/src/com/android/settings/panel/PanelSlicesLoaderCountdownLatchTest.java
rename to tests/unit/src/com/android/settings/panel/PanelSlicesLoaderCountdownLatchTest.java
index dd8a91f..3794e00 100644
--- a/tests/robotests/src/com/android/settings/panel/PanelSlicesLoaderCountdownLatchTest.java
+++ b/tests/unit/src/com/android/settings/panel/PanelSlicesLoaderCountdownLatchTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,14 +22,14 @@
import android.content.Context;
import android.net.Uri;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class PanelSlicesLoaderCountdownLatchTest {
private Context mContext;
@@ -43,7 +43,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mSliceCountdownLatch = new PanelSlicesLoaderCountdownLatch(URIS.length);
}
@@ -89,4 +89,4 @@
// Verify the second call returns false without external state change
assertThat(mSliceCountdownLatch.isPanelReadyToLoad()).isFalse();
}
-}
\ No newline at end of file
+}
diff --git a/tests/robotests/src/com/android/settings/panel/WifiPanelTest.java b/tests/unit/src/com/android/settings/panel/WifiPanelTest.java
similarity index 82%
rename from tests/robotests/src/com/android/settings/panel/WifiPanelTest.java
rename to tests/unit/src/com/android/settings/panel/WifiPanelTest.java
index 08db23e..b03075e 100644
--- a/tests/robotests/src/com/android/settings/panel/WifiPanelTest.java
+++ b/tests/unit/src/com/android/settings/panel/WifiPanelTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2019 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,24 +20,25 @@
import android.net.Uri;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.slices.CustomSliceRegistry;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import java.util.List;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class WifiPanelTest {
private WifiPanel mPanel;
@Before
public void setUp() {
- mPanel = WifiPanel.create(RuntimeEnvironment.application);
+ mPanel = WifiPanel.create(ApplicationProvider.getApplicationContext());
}
@Test
diff --git a/tests/robotests/src/com/android/settings/password/ScreenLockTypeTest.java b/tests/unit/src/com/android/settings/password/ScreenLockTypeTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/password/ScreenLockTypeTest.java
rename to tests/unit/src/com/android/settings/password/ScreenLockTypeTest.java
index 05c3f64..f05e576 100644
--- a/tests/robotests/src/com/android/settings/password/ScreenLockTypeTest.java
+++ b/tests/unit/src/com/android/settings/password/ScreenLockTypeTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,20 +11,20 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
-
package com.android.settings.password;
import static com.google.common.truth.Truth.assertThat;
import android.app.admin.DevicePolicyManager;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class ScreenLockTypeTest {
@Test
diff --git a/tests/robotests/src/com/android/settings/search/CustomSiteMapRegistryTest.java b/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java
similarity index 97%
rename from tests/robotests/src/com/android/settings/search/CustomSiteMapRegistryTest.java
rename to tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java
index 181821b..1a4737b 100644
--- a/tests/robotests/src/com/android/settings/search/CustomSiteMapRegistryTest.java
+++ b/tests/unit/src/com/android/settings/search/CustomSiteMapRegistryTest.java
@@ -18,6 +18,8 @@
import static com.google.common.truth.Truth.assertThat;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.DisplaySettings;
import com.android.settings.backup.UserBackupSettingsActivity;
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
@@ -39,9 +41,8 @@
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class CustomSiteMapRegistryTest {
@Test
diff --git a/tests/unit/src/com/android/settings/search/DatabaseIndexingUtils.java b/tests/unit/src/com/android/settings/search/DatabaseIndexingUtils.java
new file mode 100644
index 0000000..42eb45b
--- /dev/null
+++ b/tests/unit/src/com/android/settings/search/DatabaseIndexingUtils.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.search;
+
+import android.util.Log;
+
+import com.android.settingslib.search.Indexable;
+
+import java.lang.reflect.Field;
+
+/**
+ * Utility class for {@like DatabaseIndexingManager} to handle the mapping between Payloads
+ * and Preference controllers, and managing indexable classes.
+ */
+public class DatabaseIndexingUtils {
+
+ private static final String TAG = "IndexingUtil";
+
+ public static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
+ "SEARCH_INDEX_DATA_PROVIDER";
+
+ public static Indexable.SearchIndexProvider getSearchIndexProvider(final Class<?> clazz) {
+ try {
+ final Field f = clazz.getField(FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER);
+ return (Indexable.SearchIndexProvider) f.get(null);
+ } catch (NoSuchFieldException e) {
+ Log.d(TAG, "Cannot find field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ } catch (SecurityException se) {
+ Log.d(TAG,
+ "Security exception for field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ } catch (IllegalAccessException e) {
+ Log.d(TAG, "Illegal access to field '" + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ } catch (IllegalArgumentException e) {
+ Log.d(TAG, "Illegal argument when accessing field '"
+ + FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER + "'");
+ }
+ return null;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/search/FakeSettingsFragment.java b/tests/unit/src/com/android/settings/search/FakeSettingsFragment.java
new file mode 100644
index 0000000..6dbb7fb
--- /dev/null
+++ b/tests/unit/src/com/android/settings/search/FakeSettingsFragment.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.search;
+
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.search.SearchIndexableRaw;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Test class for Settings Search Indexing.
+ * If you change this class, please run robotests to make sure they still pass.
+ */
+public class FakeSettingsFragment extends DashboardFragment {
+
+ public static final String TITLE = "raw title";
+ public static final String SUMMARY_ON = "raw summary on";
+ public static final String SUMMARY_OFF = "raw summary off";
+ public static final String ENTRIES = "rawentries";
+ public static final String KEYWORDS = "keywords, keywordss, keywordsss";
+ public static final String SPACE_KEYWORDS = "keywords keywordss keywordsss";
+ public static final String SCREEN_TITLE = "raw screen title";
+ public static final String CLASS_NAME = FakeSettingsFragment.class.getName();
+ public static final int ICON = 0xff;
+ public static final String INTENT_ACTION = "raw action";
+ public static final String PACKAGE_NAME = "raw target package";
+ public static final String TARGET_CLASS = "raw target class";
+ public static final String TARGET_PACKAGE = "raw package name";
+ public static final String KEY = "raw key";
+ public static final boolean ENABLED = true;
+
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsProto.MetricsEvent.DISPLAY;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return "";
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return com.android.settings.R.xml.display_settings;
+ }
+
+ @Override
+ protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+ return null;
+ }
+
+ /** Index provider used to expose this fragment in search. */
+ public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ public List<SearchIndexableRaw> getRawDataToIndex(Context context,
+ boolean enabled) {
+ final SearchIndexableRaw data = new SearchIndexableRaw(context);
+ data.title = TITLE;
+ data.summaryOn = SUMMARY_ON;
+ data.summaryOff = SUMMARY_OFF;
+ data.entries = ENTRIES;
+ data.keywords = KEYWORDS;
+ data.screenTitle = SCREEN_TITLE;
+ data.packageName = PACKAGE_NAME;
+ data.intentAction = INTENT_ACTION;
+ data.intentTargetClass = TARGET_CLASS;
+ data.intentTargetPackage = TARGET_PACKAGE;
+ data.key = KEY;
+ data.iconResId = ICON;
+ data.enabled = ENABLED;
+
+ final List<SearchIndexableRaw> result = new ArrayList<>(1);
+ result.add(data);
+ return result;
+ }
+
+ @Override
+ public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
+ boolean enabled) {
+ final ArrayList<SearchIndexableResource> result = new ArrayList<>();
+
+ final SearchIndexableResource sir = new SearchIndexableResource(context);
+ sir.xmlResId = com.android.settings.R.xml.display_settings;
+ result.add(sir);
+ return result;
+ }
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ keys.add("pref_key_1");
+ keys.add("pref_key_3");
+ return keys;
+ }
+ };
+}
diff --git a/tests/unit/src/com/android/settings/search/SearchIndexProviderCodeInspector.java b/tests/unit/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
new file mode 100644
index 0000000..bc5b41f
--- /dev/null
+++ b/tests/unit/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.search;
+
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import android.provider.SearchIndexableResource;
+import android.util.ArraySet;
+import android.util.Log;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.core.codeinspection.CodeInspector;
+import com.android.settings.dashboard.DashboardFragmentSearchIndexProviderInspector;
+import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
+import com.android.settingslib.search.SearchIndexableResources;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * {@link CodeInspector} to ensure fragments implement search components correctly.
+ */
+public class SearchIndexProviderCodeInspector extends CodeInspector {
+ private static final String TAG = "SearchCodeInspector";
+
+ private static final String NOT_CONTAINING_PROVIDER_OBJECT_ERROR =
+ "Indexable should have public field "
+ + DatabaseIndexingUtils.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER
+ + " but these are not:\n";
+ private static final String NOT_SHARING_PREF_CONTROLLERS_BETWEEN_FRAG_AND_PROVIDER =
+ "DashboardFragment should share pref controllers with its SearchIndexProvider, but "
+ + " these are not: \n";
+ private static final String NOT_IN_INDEXABLE_PROVIDER_REGISTRY =
+ "Class containing " + DatabaseIndexingUtils.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER
+ + " must be added to " + SearchIndexableResources.class.getName()
+ + " but these are not: \n";
+ private static final String NOT_PROVIDING_VALID_RESOURCE_ERROR =
+ "SearchIndexableProvider must either provide no resource to index, or valid ones. "
+ + "But the followings contain resource with xml id = 0\n";
+
+ private final List<String> mNotImplementingIndexProviderExemptList;
+ private final List<String> mNotInSearchIndexableRegistryExemptList;
+ private final List<String> mNotSharingPrefControllersExemptList;
+
+ public SearchIndexProviderCodeInspector(List<Class<?>> classes) {
+ super(classes);
+ mNotImplementingIndexProviderExemptList = new ArrayList<>();
+ mNotInSearchIndexableRegistryExemptList = new ArrayList<>();
+ mNotSharingPrefControllersExemptList = new ArrayList<>();
+ initializeExemptList(mNotImplementingIndexProviderExemptList,
+ "exempt_not_implementing_index_provider");
+ initializeExemptList(mNotInSearchIndexableRegistryExemptList,
+ "exempt_not_in_search_index_provider_registry");
+ initializeExemptList(mNotSharingPrefControllersExemptList,
+ "exempt_not_sharing_pref_controllers_with_search_provider");
+ }
+
+ @Override
+ public void run() {
+ final Set<String> notImplementingIndexProvider = new ArraySet<>();
+ final Set<String> notInSearchProviderRegistry = new ArraySet<>();
+ final Set<String> notSharingPreferenceControllers = new ArraySet<>();
+ final Set<String> notProvidingValidResource = new ArraySet<>();
+ final Set<Class> providerClasses = new ArraySet<>();
+
+ final SearchFeatureProvider provider = new SearchFeatureProviderImpl();
+ for (SearchIndexableData bundle :
+ provider.getSearchIndexableResources().getProviderValues()) {
+ providerClasses.add(bundle.getTargetClass());
+ }
+
+ for (Class clazz : mClasses) {
+ if (!isConcreteSettingsClass(clazz)) {
+ continue;
+ }
+ final String className = clazz.getName();
+ // Skip fragments if it's not SettingsPreferenceFragment.
+ if (!SettingsPreferenceFragment.class.isAssignableFrom(clazz)) {
+ continue;
+ }
+ final boolean hasSearchIndexProvider = hasSearchIndexProvider(clazz);
+ // If it implements Indexable, it must also implement the index provider field.
+ if (!hasSearchIndexProvider) {
+ if (!mNotImplementingIndexProviderExemptList.remove(className)) {
+ notImplementingIndexProvider.add(className);
+ }
+ continue;
+ }
+ // If it implements index provider field AND it's a DashboardFragment, its fragment and
+ // search provider must share the same set of PreferenceControllers.
+ final boolean isSharingPrefControllers = DashboardFragmentSearchIndexProviderInspector
+ .isSharingPreferenceControllers(clazz);
+ if (!isSharingPrefControllers) {
+ if (!mNotSharingPrefControllersExemptList.remove(className)) {
+ notSharingPreferenceControllers.add(className);
+ }
+ continue;
+ }
+ // Must be in SearchProviderRegistry
+ if (!providerClasses.contains(clazz)) {
+ if (!mNotInSearchIndexableRegistryExemptList.remove(className)) {
+ notInSearchProviderRegistry.add(className);
+ }
+ }
+ // Search provider must either don't provider resource xml, or provide valid ones.
+ if (!hasValidResourceFromProvider(clazz)) {
+ notProvidingValidResource.add(className);
+ }
+ }
+
+ // Build error messages
+ final String indexProviderError = buildErrorMessage(NOT_CONTAINING_PROVIDER_OBJECT_ERROR,
+ notImplementingIndexProvider);
+ final String notSharingPrefControllerError = buildErrorMessage(
+ NOT_SHARING_PREF_CONTROLLERS_BETWEEN_FRAG_AND_PROVIDER,
+ notSharingPreferenceControllers);
+ final String notInProviderRegistryError =
+ buildErrorMessage(NOT_IN_INDEXABLE_PROVIDER_REGISTRY, notInSearchProviderRegistry);
+ final String notProvidingValidResourceError = buildErrorMessage(
+ NOT_PROVIDING_VALID_RESOURCE_ERROR, notProvidingValidResource);
+ assertWithMessage(indexProviderError)
+ .that(notImplementingIndexProvider)
+ .isEmpty();
+ assertWithMessage(notSharingPrefControllerError)
+ .that(notSharingPreferenceControllers)
+ .isEmpty();
+ assertWithMessage(notInProviderRegistryError)
+ .that(notInSearchProviderRegistry)
+ .isEmpty();
+ assertWithMessage(notProvidingValidResourceError)
+ .that(notProvidingValidResource)
+ .isEmpty();
+ assertNoObsoleteInExemptList("exempt_not_implementing_index_provider",
+ mNotImplementingIndexProviderExemptList);
+ assertNoObsoleteInExemptList("exempt_not_in_search_index_provider_registry",
+ mNotInSearchIndexableRegistryExemptList);
+ assertNoObsoleteInExemptList(
+ "exempt_not_sharing_pref_controllers_with_search_provider",
+ mNotSharingPrefControllersExemptList);
+ }
+
+ private boolean hasSearchIndexProvider(Class clazz) {
+ try {
+ final Field f = clazz.getField(
+ DatabaseIndexingUtils.FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER);
+ return f != null;
+ } catch (NoClassDefFoundError e) {
+ // Cannot find class def, ignore
+ return true;
+ } catch (NoSuchFieldException e) {
+ Log.e(TAG, "error fetching search provider from class " + clazz.getName());
+ return false;
+ }
+ }
+
+ private boolean hasValidResourceFromProvider(Class clazz) {
+ try {
+ final Indexable.SearchIndexProvider provider =
+ DatabaseIndexingUtils.getSearchIndexProvider(clazz);
+ final List<SearchIndexableResource> resources = provider.getXmlResourcesToIndex(
+ ApplicationProvider.getApplicationContext(), true /* enabled */);
+ if (resources == null) {
+ // No resource, that's fine.
+ return true;
+ }
+ for (SearchIndexableResource res : resources) {
+ if (res.xmlResId == 0) {
+ // Invalid resource
+ return false;
+ }
+ }
+ } catch (Exception e) {
+ // Ignore.
+ }
+ return true;
+ }
+
+ private String buildErrorMessage(String errorSummary, Set<String> errorClasses) {
+ final StringBuilder error = new StringBuilder(errorSummary);
+ for (String c : errorClasses) {
+ error.append(c).append("\n");
+ }
+ return error.toString();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/security/CredentialManagementAppButtonsControllerTest.java b/tests/unit/src/com/android/settings/security/CredentialManagementAppButtonsControllerTest.java
similarity index 88%
rename from tests/robotests/src/com/android/settings/security/CredentialManagementAppButtonsControllerTest.java
rename to tests/unit/src/com/android/settings/security/CredentialManagementAppButtonsControllerTest.java
index ecc2f2d..bbe9e35 100644
--- a/tests/robotests/src/com/android/settings/security/CredentialManagementAppButtonsControllerTest.java
+++ b/tests/unit/src/com/android/settings/security/CredentialManagementAppButtonsControllerTest.java
@@ -20,15 +20,16 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class CredentialManagementAppButtonsControllerTest {
private Context mContext;
@@ -38,7 +39,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new CredentialManagementAppButtonsController(
mContext, PREF_KEY_CREDENTIAL_MANAGEMENT_APP);
}
diff --git a/tests/robotests/src/com/android/settings/security/CredentialManagementAppHeaderControllerTest.java b/tests/unit/src/com/android/settings/security/CredentialManagementAppHeaderControllerTest.java
similarity index 88%
rename from tests/robotests/src/com/android/settings/security/CredentialManagementAppHeaderControllerTest.java
rename to tests/unit/src/com/android/settings/security/CredentialManagementAppHeaderControllerTest.java
index e77e4c1..35470a7 100644
--- a/tests/robotests/src/com/android/settings/security/CredentialManagementAppHeaderControllerTest.java
+++ b/tests/unit/src/com/android/settings/security/CredentialManagementAppHeaderControllerTest.java
@@ -20,15 +20,16 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class CredentialManagementAppHeaderControllerTest {
private Context mContext;
@@ -38,7 +39,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new CredentialManagementAppHeaderController(
mContext, PREF_KEY_CREDENTIAL_MANAGEMENT_APP);
}
diff --git a/tests/unit/src/com/android/settings/slices/FakeContextOnlyPreferenceController.java b/tests/unit/src/com/android/settings/slices/FakeContextOnlyPreferenceController.java
new file mode 100644
index 0000000..78587a0
--- /dev/null
+++ b/tests/unit/src/com/android/settings/slices/FakeContextOnlyPreferenceController.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.slices;
+
+import android.content.Context;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class FakeContextOnlyPreferenceController extends BasePreferenceController {
+
+ public static final String KEY = "fakeController2";
+
+ public FakeContextOnlyPreferenceController(Context context) {
+ super(context, KEY);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/slices/FakePreferenceController.java b/tests/unit/src/com/android/settings/slices/FakePreferenceController.java
new file mode 100644
index 0000000..f543893
--- /dev/null
+++ b/tests/unit/src/com/android/settings/slices/FakePreferenceController.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.slices;
+
+import android.content.Context;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class FakePreferenceController extends BasePreferenceController {
+
+ public FakePreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public int getSliceType() {
+ return SliceData.SliceType.SLIDER;
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+
+ @Override
+ public boolean isPublicSlice() {
+ return true;
+ }
+
+ @Override
+ public boolean useDynamicSliceSummary() {
+ return true;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java b/tests/unit/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
new file mode 100644
index 0000000..ce8338c
--- /dev/null
+++ b/tests/unit/src/com/android/settings/slices/SliceControllerInXmlCodeInspector.java
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.slices;
+
+import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_CONTROLLER;
+
+import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.provider.SearchIndexableResource;
+import android.text.TextUtils;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.core.PreferenceXmlParserUtils;
+import com.android.settings.core.SliderPreferenceController;
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.core.codeinspection.CodeInspector;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.SearchFeatureProvider;
+import com.android.settings.search.SearchFeatureProviderImpl;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.search.Indexable;
+import com.android.settingslib.search.SearchIndexableData;
+
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.List;
+
+public class SliceControllerInXmlCodeInspector extends CodeInspector {
+
+ private static final List<Class> sSliceControllerClasses = Arrays.asList(
+ TogglePreferenceController.class,
+ SliderPreferenceController.class
+ );
+
+ private final List<String> mXmlDeclaredControllers = new ArrayList<>();
+ private final List<String> mExemptedClasses = new ArrayList<>();
+
+ private static final String ERROR_MISSING_CONTROLLER =
+ "The following controllers were expected to be declared by "
+ + "'settings:controller=Controller_Class_Name' in their corresponding Xml. "
+ + "If it should not appear in XML, add the controller's classname to "
+ + "exempt_slice_controller_not_in_xml. Controllers:\n";
+
+ private final Context mContext;
+ private final SearchFeatureProvider mSearchProvider;
+ private final FakeFeatureFactory mFakeFeatureFactory;
+
+ public SliceControllerInXmlCodeInspector(List<Class<?>> classes) throws Exception {
+ super(classes);
+ mContext = ApplicationProvider.getApplicationContext();
+ mSearchProvider = new SearchFeatureProviderImpl();
+ mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
+ mFakeFeatureFactory.searchFeatureProvider = mSearchProvider;
+
+ CodeInspector.initializeExemptList(mExemptedClasses,
+ "exempt_slice_controller_not_in_xml");
+ initDeclaredControllers();
+ }
+
+ private void initDeclaredControllers() throws IOException, XmlPullParserException {
+ final List<Integer> xmlResources = getIndexableXml();
+ for (int xmlResId : xmlResources) {
+ final List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext,
+ xmlResId, PreferenceXmlParserUtils.MetadataFlag.FLAG_NEED_PREF_CONTROLLER);
+ for (Bundle bundle : metadata) {
+ final String controllerClassName = bundle.getString(METADATA_CONTROLLER);
+ if (TextUtils.isEmpty(controllerClassName)) {
+ continue;
+ }
+ mXmlDeclaredControllers.add(controllerClassName);
+ }
+ }
+ // We definitely have some controllers in xml, so assert not-empty here as a proxy to
+ // make sure the parser didn't fail
+ assertThat(mXmlDeclaredControllers).isNotEmpty();
+ }
+
+ @Override
+ public void run() {
+ final List<String> missingControllersInXml = new ArrayList<>();
+
+ for (Class<?> clazz : mClasses) {
+ if (!isConcreteSettingsClass(clazz)) {
+ // Only care about non-abstract classes.
+ continue;
+ }
+ if (!isInlineSliceClass(clazz)) {
+ // Only care about inline-slice controller classes.
+ continue;
+ }
+
+ if (!mXmlDeclaredControllers.contains(clazz.getName())) {
+ // Class clazz should have been declared in XML (unless allowlisted).
+ missingControllersInXml.add(clazz.getName());
+ }
+ }
+
+ // Removed allowlisted classes
+ missingControllersInXml.removeAll(mExemptedClasses);
+
+ final String missingControllerError =
+ buildErrorMessage(ERROR_MISSING_CONTROLLER, missingControllersInXml);
+
+ assertWithMessage(missingControllerError).that(missingControllersInXml).isEmpty();
+ }
+
+ private boolean isInlineSliceClass(Class clazz) {
+ while (clazz != null) {
+ clazz = clazz.getSuperclass();
+ if (sSliceControllerClasses.contains(clazz)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private String buildErrorMessage(String errorSummary, List<String> errorClasses) {
+ final StringBuilder error = new StringBuilder(errorSummary);
+ for (String c : errorClasses) {
+ error.append(c).append("\n");
+ }
+ return error.toString();
+ }
+
+ private List<Integer> getIndexableXml() {
+ final List<Integer> xmlResSet = new ArrayList<>();
+
+ final Collection<SearchIndexableData> bundles = FeatureFactory.getFactory(
+ mContext).getSearchFeatureProvider().getSearchIndexableResources()
+ .getProviderValues();
+
+ for (SearchIndexableData bundle : bundles) {
+ Indexable.SearchIndexProvider provider = bundle.getSearchIndexProvider();
+
+ if (provider == null) {
+ continue;
+ }
+
+ List<SearchIndexableResource> resources = provider.getXmlResourcesToIndex(mContext,
+ true);
+
+ if (resources == null) {
+ continue;
+ }
+
+ for (SearchIndexableResource resource : resources) {
+ // Add '0's anyway. It won't break the test.
+ xmlResSet.add(resource.xmlResId);
+ }
+ }
+ return xmlResSet;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataTest.java b/tests/unit/src/com/android/settings/slices/SliceDataTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/slices/SliceDataTest.java
rename to tests/unit/src/com/android/settings/slices/SliceDataTest.java
index fa3f8b9..4d18544 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceDataTest.java
+++ b/tests/unit/src/com/android/settings/slices/SliceDataTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,24 +20,25 @@
import android.net.Uri;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class SliceDataTest {
- private final String KEY = "KEY";
- private final String TITLE = "title";
- private final String SUMMARY = "summary";
- private final String SCREEN_TITLE = "screen title";
- private final String KEYWORDS = "a, b, c";
- private final String FRAGMENT_NAME = "fragment name";
- private final int ICON = 1234; // I declare a thumb war
- private final Uri URI = Uri.parse("content://com.android.settings.slices/test");
- private final String PREF_CONTROLLER = "com.android.settings.slices.tester";
- private final int SLICE_TYPE = SliceData.SliceType.SWITCH;
- private final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice";
+ private static final String KEY = "KEY";
+ private static final String TITLE = "title";
+ private static final String SUMMARY = "summary";
+ private static final String SCREEN_TITLE = "screen title";
+ private static final String KEYWORDS = "a, b, c";
+ private static final String FRAGMENT_NAME = "fragment name";
+ private static final int ICON = 1234; // I declare a thumb war
+ private static final Uri URI = Uri.parse("content://com.android.settings.slices/test");
+ private static final String PREF_CONTROLLER = "com.android.settings.slices.tester";
+ private static final int SLICE_TYPE = SliceData.SliceType.SWITCH;
+ private static final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice";
@Test
public void testBuilder_buildsMatchingObject() {
diff --git a/tests/unit/src/com/android/settings/slices/SliceTestUtils.java b/tests/unit/src/com/android/settings/slices/SliceTestUtils.java
new file mode 100644
index 0000000..1b035cd
--- /dev/null
+++ b/tests/unit/src/com/android/settings/slices/SliceTestUtils.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.slices;
+
+import android.content.ContentResolver;
+import android.content.ContentValues;
+import android.content.Context;
+import android.database.sqlite.SQLiteDatabase;
+import android.net.Uri;
+import android.provider.SettingsSlicesContract;
+
+import com.android.settings.testutils.FakeIndexProvider;
+import com.android.settings.testutils.FakeToggleController;
+
+class SliceTestUtils {
+
+ public static final String FAKE_TITLE = "title";
+ public static final String FAKE_SUMMARY = "summary";
+ public static final String FAKE_SCREEN_TITLE = "screen_title";
+ public static final String FAKE_KEYWORDS = "a, b, c";
+ public static final int FAKE_ICON = 1234;
+ public static final String FAKE_FRAGMENT_NAME = FakeIndexProvider.class.getName();
+ public static final String FAKE_CONTROLLER_NAME = FakeToggleController.class.getName();
+
+
+ public static void insertSliceToDb(Context context, String key) {
+ insertSliceToDb(context, key, true /* isPlatformSlice */);
+ }
+
+ public static void insertSliceToDb(Context context, String key, boolean isPlatformSlice) {
+ insertSliceToDb(context, key, isPlatformSlice, null /*customizedUnavailableSliceSubtitle*/);
+ }
+
+ public static void insertSliceToDb(Context context, String key, boolean isPlatformSlice,
+ String customizedUnavailableSliceSubtitle) {
+ insertSliceToDb(context, key, isPlatformSlice, customizedUnavailableSliceSubtitle, false);
+ }
+
+ public static void insertSliceToDb(Context context, String key, boolean isPlatformSlice,
+ String customizedUnavailableSliceSubtitle, boolean isPublicSlice) {
+ final SQLiteDatabase db = SlicesDatabaseHelper.getInstance(context).getWritableDatabase();
+ ContentValues values = new ContentValues();
+ values.put(SlicesDatabaseHelper.IndexColumns.KEY, key);
+ values.put(SlicesDatabaseHelper.IndexColumns.SLICE_URI,
+ new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(isPlatformSlice
+ ? SettingsSlicesContract.AUTHORITY
+ : SettingsSliceProvider.SLICE_AUTHORITY)
+ .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
+ .appendPath(key)
+ .build().toSafeString());
+ values.put(SlicesDatabaseHelper.IndexColumns.TITLE, FAKE_TITLE);
+ values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, FAKE_SUMMARY);
+ values.put(SlicesDatabaseHelper.IndexColumns.SCREENTITLE, FAKE_SCREEN_TITLE);
+ values.put(SlicesDatabaseHelper.IndexColumns.KEYWORDS, FAKE_KEYWORDS);
+ values.put(SlicesDatabaseHelper.IndexColumns.ICON_RESOURCE, FAKE_ICON);
+ values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, FAKE_FRAGMENT_NAME);
+ values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, FAKE_CONTROLLER_NAME);
+ values.put(SlicesDatabaseHelper.IndexColumns.SLICE_TYPE, SliceData.SliceType.INTENT);
+ values.put(SlicesDatabaseHelper.IndexColumns.UNAVAILABLE_SLICE_SUBTITLE,
+ customizedUnavailableSliceSubtitle);
+ values.put(SlicesDatabaseHelper.IndexColumns.PUBLIC_SLICE, isPublicSlice);
+
+ db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
+ db.close();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java b/tests/unit/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
similarity index 88%
rename from tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
rename to tests/unit/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
index d483f9e..4fcbd15 100644
--- a/tests/robotests/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
+++ b/tests/unit/src/com/android/settings/slices/SpecialCaseSliceManagerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,9 +12,7 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- *
*/
-
package com.android.settings.slices;
import static com.google.common.truth.Truth.assertThat;
@@ -27,24 +25,24 @@
import android.provider.SettingsSlicesContract;
import androidx.slice.Slice;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class SpecialCaseSliceManagerTest {
- private final String FAKE_PARAMETER_KEY = "fake_parameter_key";
- private final String FAKE_PARAMETER_VALUE = "fake_value";
+ private static final String FAKE_PARAMETER_KEY = "fake_parameter_key";
+ private static final String FAKE_PARAMETER_VALUE = "fake_value";
private Context mContext;
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
CustomSliceRegistry.sUriToSlice.clear();
CustomSliceRegistry.sUriToSlice.put(FakeSliceable.URI, FakeSliceable.class);
}
@@ -113,7 +111,7 @@
static final Slice SLICE = new Slice.Builder(URI).build();
- static boolean backingData = false;
+ static boolean sBackingData = false;
final Context mContext;
@@ -133,7 +131,7 @@
@Override
public void onNotifyChange(Intent intent) {
- backingData = !backingData;
+ sBackingData = !sBackingData;
}
@Override
diff --git a/tests/robotests/src/com/android/settings/sound/MediaControlsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/sound/MediaControlsPreferenceControllerTest.java
similarity index 93%
rename from tests/robotests/src/com/android/settings/sound/MediaControlsPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/sound/MediaControlsPreferenceControllerTest.java
index f281e25..510928d 100644
--- a/tests/robotests/src/com/android/settings/sound/MediaControlsPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/sound/MediaControlsPreferenceControllerTest.java
@@ -26,14 +26,15 @@
import android.content.Context;
import android.provider.Settings;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class MediaControlsPreferenceControllerTest {
private static final String KEY = "media_controls_resume_switch";
@@ -46,7 +47,7 @@
@Before
public void setUp() {
- mContext = spy(RuntimeEnvironment.application);
+ mContext = spy(ApplicationProvider.getApplicationContext());
mContentResolver = mContext.getContentResolver();
mOriginalQs = Settings.Global.getInt(mContentResolver,
Settings.Global.SHOW_MEDIA_ON_QUICK_SETTINGS, 1);
diff --git a/tests/unit/src/com/android/settings/testutils/AirplaneModeRule.java b/tests/unit/src/com/android/settings/testutils/AirplaneModeRule.java
new file mode 100644
index 0000000..545f6ad
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/AirplaneModeRule.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.util.Log;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import org.junit.rules.ExternalResource;
+
+/** A test rule that is used to manager the Airplane Mode resource for testing. */
+public final class AirplaneModeRule extends ExternalResource {
+
+ private static final String TAG = "AirplaneModeRule";
+
+ private Context mContext;
+ private boolean mBackupValue;
+ private boolean mShouldRestore;
+
+ @Override
+ protected void before() throws Throwable {
+ mContext = ApplicationProvider.getApplicationContext();
+ }
+
+ @Override
+ protected void after() {
+ if (mShouldRestore) {
+ Log.d(TAG, "Restore Airplane Mode value:" + mBackupValue);
+ setAirplaneMode(mContext, mBackupValue);
+ }
+ }
+
+ public void setAirplaneMode(boolean enable) {
+ if (!mShouldRestore && isAirplaneModeOn() != enable) {
+ mShouldRestore = true;
+ mBackupValue = isAirplaneModeOn();
+ Log.d(TAG, "Backup Airplane Mode value:" + mBackupValue);
+ }
+ Log.d(TAG, "Set Airplane Mode enable:" + enable);
+ setAirplaneMode(mContext, enable);
+ }
+
+ public boolean isAirplaneModeOn() {
+ return Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.AIRPLANE_MODE_ON, 0) != 0;
+ }
+
+ private static void setAirplaneMode(Context context, boolean enable) {
+ // Change the system setting
+ Settings.Global.putInt(context.getContentResolver(), Settings.Global.AIRPLANE_MODE_ON,
+ enable ? 1 : 0);
+
+ // Post the intent
+ final Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+ intent.putExtra("state", enable);
+ context.sendBroadcastAsUser(intent, UserHandle.ALL);
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/ApplicationTestUtils.java b/tests/unit/src/com/android/settings/testutils/ApplicationTestUtils.java
new file mode 100644
index 0000000..91f296f
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/ApplicationTestUtils.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.testutils;
+
+import android.content.pm.ApplicationInfo;
+
+/**
+ * Helper for mocking installed applications.
+ */
+public class ApplicationTestUtils {
+ /**
+ * Create and populate an {@link android.content.pm.ApplicationInfo} object that describes an
+ * installed app.
+ *
+ * @param uid The app's uid
+ * @param packageName The app's package name.
+ * @param flags Flags describing the app. See {@link android.content.pm.ApplicationInfo#flags}
+ * for possible values.
+ * @param targetSdkVersion The app's target SDK version
+ *
+ * @see android.content.pm.ApplicationInfo
+ */
+ public static ApplicationInfo buildInfo(int uid, String packageName, int flags,
+ int targetSdkVersion) {
+ final ApplicationInfo info = new ApplicationInfo();
+ info.uid = uid;
+ info.packageName = packageName;
+ info.flags = flags;
+ info.targetSdkVersion = targetSdkVersion;
+ return info;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/BatteryTestUtils.java b/tests/unit/src/com/android/settings/testutils/BatteryTestUtils.java
new file mode 100644
index 0000000..57bd3f5
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/BatteryTestUtils.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils;
+
+import android.content.Intent;
+import android.os.BatteryManager;
+
+public class BatteryTestUtils {
+
+ public static Intent getChargingIntent() {
+ return getCustomBatteryIntent(
+ BatteryManager.BATTERY_PLUGGED_AC,
+ 50 /* level */,
+ 100 /* scale */,
+ BatteryManager.BATTERY_STATUS_CHARGING);
+ }
+
+ public static Intent getDischargingIntent() {
+ return getCustomBatteryIntent(
+ 0 /* plugged */,
+ 10 /* level */,
+ 100 /* scale */,
+ BatteryManager.BATTERY_STATUS_DISCHARGING);
+ }
+
+ private static Intent getCustomBatteryIntent(int plugged, int level, int scale, int status) {
+ Intent intent = new Intent();
+ intent.putExtra(BatteryManager.EXTRA_PLUGGED, plugged);
+ intent.putExtra(BatteryManager.EXTRA_LEVEL, level);
+ intent.putExtra(BatteryManager.EXTRA_SCALE, scale);
+ intent.putExtra(BatteryManager.EXTRA_STATUS, status);
+
+ return intent;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/CustomActivity.java b/tests/unit/src/com/android/settings/testutils/CustomActivity.java
new file mode 100644
index 0000000..89cdcfc
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/CustomActivity.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.UserHandle;
+
+public class CustomActivity extends Activity {
+ @Override
+ public void startActivityAsUser(Intent intent, UserHandle user) {}
+}
diff --git a/tests/unit/src/com/android/settings/testutils/FakeCopyableController.java b/tests/unit/src/com/android/settings/testutils/FakeCopyableController.java
new file mode 100644
index 0000000..3bdbb54
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/FakeCopyableController.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils;
+
+import android.content.Context;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class FakeCopyableController extends BasePreferenceController {
+
+ public FakeCopyableController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+
+ @Override
+ public boolean isCopyableSlice() {
+ return true;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/FakeIndexProvider.java b/tests/unit/src/com/android/settings/testutils/FakeIndexProvider.java
new file mode 100644
index 0000000..5cbfb54
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/FakeIndexProvider.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.testutils;
+
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.Indexable;
+
+import java.util.List;
+
+public class FakeIndexProvider implements Indexable {
+
+ public static final String KEY = "TestKey";
+
+ /**
+ * The fake SearchIndexProvider. Note that the use of location_settings below implies that tests
+ * using this should be using the res/xml-mcc999/location_settings.xml or
+ * res/xml-mcc998/location_settings.xml. Annotate tests with
+ * {@code @Config(qualifiers = "mcc999")}.
+ */
+ public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider(R.xml.location_settings) {
+
+ @Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> result = super.getNonIndexableKeys(context);
+ result.add(KEY);
+ return result;
+ }
+ };
+}
diff --git a/tests/unit/src/com/android/settings/testutils/FakeInvalidSliderController.java b/tests/unit/src/com/android/settings/testutils/FakeInvalidSliderController.java
new file mode 100644
index 0000000..15d214d
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/FakeInvalidSliderController.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.testutils;
+
+import android.content.Context;
+
+public class FakeInvalidSliderController extends FakeSliderController {
+
+ public FakeInvalidSliderController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getMax() {
+ // Return 0 to make it invalid
+ return 0;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/FakeSliderController.java b/tests/unit/src/com/android/settings/testutils/FakeSliderController.java
new file mode 100644
index 0000000..f8685fc
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/FakeSliderController.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.testutils;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.core.SliderPreferenceController;
+
+public class FakeSliderController extends SliderPreferenceController {
+
+ public static final String AVAILABILITY_KEY = "fake_slider_availability_key";
+
+ public static final int MAX_VALUE = 9;
+
+ private static final String SETTING_KEY = "fake_slider_key";
+
+ public FakeSliderController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getSliderPosition() {
+ return Settings.System.getInt(mContext.getContentResolver(), SETTING_KEY, 0);
+ }
+
+ @Override
+ public boolean setSliderPosition(int position) {
+ return Settings.System.putInt(mContext.getContentResolver(), SETTING_KEY, position);
+ }
+
+ @Override
+ public int getMax() {
+ return MAX_VALUE;
+ }
+
+ @Override
+ public int getMin() {
+ return 0;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return Settings.Global.getInt(mContext.getContentResolver(), AVAILABILITY_KEY, AVAILABLE);
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/FakeToggleController.java b/tests/unit/src/com/android/settings/testutils/FakeToggleController.java
new file mode 100644
index 0000000..9eda8b6
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/FakeToggleController.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.testutils;
+
+import android.content.Context;
+import android.content.IntentFilter;
+import android.net.Uri;
+import android.net.wifi.WifiManager;
+import android.provider.Settings;
+
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.slices.SliceBackgroundWorker;
+
+public class FakeToggleController extends TogglePreferenceController {
+
+ public static final String AVAILABILITY_KEY = "fake_toggle_availability_key";
+
+ public static final IntentFilter INTENT_FILTER = new IntentFilter(
+ WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
+
+ private static final String SETTING_KEY = "toggle_key";
+
+ private static final int ON = 1;
+ private static final int OFF = 0;
+
+ private boolean mIsAsyncUpdate = false;
+
+ public FakeToggleController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ @Override
+ public boolean isChecked() {
+ return Settings.System.getInt(mContext.getContentResolver(),
+ SETTING_KEY, OFF) == ON;
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ return Settings.System.putInt(mContext.getContentResolver(), SETTING_KEY,
+ isChecked ? ON : OFF);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return Settings.Global.getInt(mContext.getContentResolver(),
+ AVAILABILITY_KEY, AVAILABLE);
+ }
+
+ @Override
+ public IntentFilter getIntentFilter() {
+ return INTENT_FILTER;
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+
+ @Override
+ public Class<? extends SliceBackgroundWorker> getBackgroundWorkerClass() {
+ return TestWorker.class;
+ }
+
+ @Override
+ public boolean hasAsyncUpdate() {
+ return mIsAsyncUpdate;
+ }
+
+ public void setAsyncUpdate(boolean isAsyncUpdate) {
+ mIsAsyncUpdate = isAsyncUpdate;
+ }
+
+ public static class TestWorker extends SliceBackgroundWorker<Void> {
+
+ public TestWorker(Context context, Uri uri) {
+ super(context, uri);
+ }
+
+ @Override
+ protected void onSlicePinned() {
+ }
+
+ @Override
+ protected void onSliceUnpinned() {
+ }
+
+ @Override
+ public void close() {
+ }
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/FakeUnavailablePreferenceController.java b/tests/unit/src/com/android/settings/testutils/FakeUnavailablePreferenceController.java
new file mode 100644
index 0000000..97379e3
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/FakeUnavailablePreferenceController.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.testutils;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class FakeUnavailablePreferenceController extends BasePreferenceController {
+
+ public static final String AVAILABILITY_KEY = "fake_availability_key";
+
+ public FakeUnavailablePreferenceController(Context context) {
+ super(context, "key");
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return Settings.Global.getInt(mContext.getContentResolver(), AVAILABILITY_KEY, 0);
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/ResolveInfoBuilder.java b/tests/unit/src/com/android/settings/testutils/ResolveInfoBuilder.java
new file mode 100644
index 0000000..5eaf2a4
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/ResolveInfoBuilder.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils;
+
+import android.content.pm.ActivityInfo;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.ProviderInfo;
+import android.content.pm.ResolveInfo;
+
+import com.google.common.base.Preconditions;
+
+/**
+ * Helper for building {@link ResolveInfo}s to be used in Robolectric tests.
+ *
+ * <p>The resulting {@link PackageInfo}s should typically be added to {@link
+ * org.robolectric.shadows.ShadowPackageManager#addResolveInfoForIntent(Intent, ResolveInfo)}.
+ */
+public final class ResolveInfoBuilder {
+
+ private final String mPackageName;
+ private ActivityInfo mActivityInfo;
+ private ProviderInfo mProviderInfo;
+
+ public ResolveInfoBuilder(String packageName) {
+ this.mPackageName = Preconditions.checkNotNull(packageName);
+ }
+
+ public ResolveInfoBuilder setActivity(String packageName, String className) {
+ mActivityInfo = new ActivityInfo();
+ mActivityInfo.packageName = packageName;
+ mActivityInfo.name = className;
+ return this;
+ }
+
+ public ResolveInfoBuilder setProvider(
+ String packageName, String className, String authority, boolean isSystemApp) {
+ mProviderInfo = new ProviderInfo();
+ mProviderInfo.authority = authority;
+ mProviderInfo.applicationInfo = new ApplicationInfo();
+ if (isSystemApp) {
+ mProviderInfo.applicationInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
+ }
+ mProviderInfo.packageName = mPackageName;
+ mProviderInfo.applicationInfo.packageName = mPackageName;
+ mProviderInfo.name = className;
+ return this;
+ }
+
+ public ResolveInfo build() {
+ ResolveInfo info = new ResolveInfo();
+ info.activityInfo = mActivityInfo;
+ info.resolvePackageName = mPackageName;
+ info.providerInfo = mProviderInfo;
+ return info;
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/ResourcesUtils.java b/tests/unit/src/com/android/settings/testutils/ResourcesUtils.java
index 636954d..89cc7b3 100644
--- a/tests/unit/src/com/android/settings/testutils/ResourcesUtils.java
+++ b/tests/unit/src/com/android/settings/testutils/ResourcesUtils.java
@@ -26,7 +26,7 @@
return context.getResources().getString(getResourcesId(context, "string", name));
}
- public static String getResourcesString(Context context, String name, Object value) {
+ public static String getResourcesString(Context context, String name, Object... value) {
return context.getResources().getString(getResourcesId(context, "string", name), value);
}
}
diff --git a/tests/unit/src/com/android/settings/testutils/SliceTester.java b/tests/unit/src/com/android/settings/testutils/SliceTester.java
new file mode 100644
index 0000000..be13e13
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/SliceTester.java
@@ -0,0 +1,324 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.testutils;
+
+import static android.app.slice.Slice.HINT_TITLE;
+import static android.app.slice.Slice.SUBTYPE_COLOR;
+import static android.app.slice.SliceItem.FORMAT_IMAGE;
+import static android.app.slice.SliceItem.FORMAT_INT;
+import static android.app.slice.SliceItem.FORMAT_TEXT;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.text.TextUtils;
+
+import androidx.core.graphics.drawable.IconCompat;
+import androidx.slice.Slice;
+import androidx.slice.SliceItem;
+import androidx.slice.SliceMetadata;
+import androidx.slice.builders.ListBuilder;
+import androidx.slice.core.SliceAction;
+import androidx.slice.core.SliceQuery;
+import androidx.slice.widget.EventInfo;
+
+import com.android.settings.Utils;
+import com.android.settings.slices.SettingsSliceProvider;
+import com.android.settings.slices.SliceBuilderUtils;
+import com.android.settings.slices.SliceData;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * Testing utility class to verify the contents of the different Settings Slices.
+ *
+ * TODO (77712944) check Summary, range (metadata.getRange()), toggle icons.
+ */
+public class SliceTester {
+
+ /**
+ * Test the contents of an intent based slice, including:
+ * - No toggles
+ * - Correct intent
+ * - Correct title
+ * - Correct keywords
+ * - TTL
+ * - Color
+ */
+ public static void testSettingsIntentSlice(Context context, Slice slice, SliceData sliceData) {
+ final SliceMetadata metadata = SliceMetadata.from(context, slice);
+
+ final long sliceTTL = metadata.getExpiry();
+ assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
+
+ final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
+ final int color = colorItem.getInt();
+ assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
+
+ final List<SliceAction> toggles = metadata.getToggles();
+ assertThat(toggles).isEmpty();
+
+ final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction();
+ assertThat(primaryPendingIntent).isEqualTo(
+ SliceBuilderUtils.getContentPendingIntent(context, sliceData));
+
+ assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
+
+ assertKeywords(metadata, sliceData);
+ }
+
+ /**
+ * Test the contents of an toggle based slice, including:
+ * - Contains one toggle
+ * - Correct toggle intent
+ * - Correct content intent
+ * - Correct title
+ * - Correct keywords
+ * - TTL
+ * - Color
+ */
+ public static void testSettingsToggleSlice(Context context, Slice slice, SliceData sliceData) {
+ final SliceMetadata metadata = SliceMetadata.from(context, slice);
+
+ final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
+ final int color = colorItem.getInt();
+ assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
+
+ final List<SliceAction> toggles = metadata.getToggles();
+ assertThat(toggles).hasSize(1);
+
+ final long sliceTTL = metadata.getExpiry();
+ assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
+
+ final SliceAction mainToggleAction = toggles.get(0);
+
+ assertThat(mainToggleAction.getIcon()).isNull();
+
+ // Check intent in Toggle Action
+ final PendingIntent togglePendingIntent = mainToggleAction.getAction();
+ assertThat(togglePendingIntent).isEqualTo(SliceBuilderUtils.getActionIntent(context,
+ SettingsSliceProvider.ACTION_TOGGLE_CHANGED, sliceData));
+
+ // Check primary intent
+ final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction();
+ assertThat(primaryPendingIntent).isEqualTo(
+ SliceBuilderUtils.getContentPendingIntent(context, sliceData));
+
+ assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
+
+ assertKeywords(metadata, sliceData);
+ }
+
+ /**
+ * Test the contents of an slider based slice, including:
+ * - No intent
+ * - Correct title
+ * - Correct keywords
+ * - TTL
+ * - Color
+ */
+ public static void testSettingsSliderSlice(Context context, Slice slice, SliceData sliceData) {
+ final SliceMetadata metadata = SliceMetadata.from(context, slice);
+ final SliceAction primaryAction = metadata.getPrimaryAction();
+
+ final IconCompat icon = primaryAction.getIcon();
+ if (icon == null) {
+ final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
+ final int color = colorItem.getInt();
+ assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
+
+ } else {
+ final IconCompat expectedIcon = IconCompat.createWithResource(context,
+ sliceData.getIconResource());
+ assertThat(expectedIcon.toString()).isEqualTo(icon.toString());
+ }
+
+ final long sliceTTL = metadata.getExpiry();
+ assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
+
+ final int headerType = metadata.getHeaderType();
+ assertThat(headerType).isEqualTo(EventInfo.ROW_TYPE_SLIDER);
+
+ // Check primary intent
+ final PendingIntent primaryPendingIntent = primaryAction.getAction();
+ assertThat(primaryPendingIntent).isEqualTo(
+ SliceBuilderUtils.getContentPendingIntent(context, sliceData));
+
+ assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
+
+ assertKeywords(metadata, sliceData);
+ }
+
+ /**
+ * Test the copyable slice, including:
+ * - No intent
+ * - Correct title
+ * - Correct intent
+ * - Correct keywords
+ * - TTL
+ * - Color
+ */
+ public static void testSettingsCopyableSlice(Context context, Slice slice,
+ SliceData sliceData) {
+ final SliceMetadata metadata = SliceMetadata.from(context, slice);
+
+ final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
+ final int color = colorItem.getInt();
+ assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
+
+ final SliceAction primaryAction = metadata.getPrimaryAction();
+
+ final IconCompat expectedIcon = IconCompat.createWithResource(context,
+ sliceData.getIconResource());
+ assertThat(expectedIcon.toString()).isEqualTo(primaryAction.getIcon().toString());
+
+ final long sliceTTL = metadata.getExpiry();
+ assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
+
+ // Check primary intent
+ final PendingIntent primaryPendingIntent = primaryAction.getAction();
+ assertThat(primaryPendingIntent).isEqualTo(
+ SliceBuilderUtils.getContentPendingIntent(context, sliceData));
+
+ assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
+
+ assertKeywords(metadata, sliceData);
+ }
+
+ /**
+ * Test the contents of an unavailable slice, including:
+ * - No toggles
+ * - Correct title
+ * - Correct intent
+ * - Correct keywords
+ * - Color
+ * - TTL
+ */
+ public static void testSettingsUnavailableSlice(Context context, Slice slice,
+ SliceData sliceData) {
+ final SliceMetadata metadata = SliceMetadata.from(context, slice);
+
+ final long sliceTTL = metadata.getExpiry();
+ assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY);
+
+ final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR);
+ final int color = colorItem.getInt();
+ assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context));
+
+ final List<SliceAction> toggles = metadata.getToggles();
+ assertThat(toggles).isEmpty();
+
+ final PendingIntent primaryPendingIntent = metadata.getPrimaryAction().getAction();
+ assertThat(primaryPendingIntent).isEqualTo(SliceBuilderUtils.getContentPendingIntent(
+ context, sliceData));
+
+ assertThat(metadata.getTitle()).isEqualTo(sliceData.getTitle());
+
+ assertKeywords(metadata, sliceData);
+ }
+
+ /**
+ * Assert any slice item contains title.
+ *
+ * @param sliceItems All slice items of a Slice.
+ * @param title Title for asserting.
+ */
+ public static void assertAnySliceItemContainsTitle(List<SliceItem> sliceItems, String title) {
+ assertThat(hasText(sliceItems, title, HINT_TITLE)).isTrue();
+ }
+
+ /**
+ * Assert any slice item contains subtitle.
+ *
+ * @param sliceItems All slice items of a Slice.
+ * @param subtitle Subtitle for asserting.
+ */
+ public static void assertAnySliceItemContainsSubtitle(List<SliceItem> sliceItems,
+ String subtitle) {
+ // Subtitle has no hints
+ assertThat(hasText(sliceItems, subtitle, null /* hints */)).isTrue();
+ }
+
+ /**
+ * Assert no slice item contains subtitle.
+ *
+ * @param sliceItems All slice items of a Slice.
+ * @param subtitle Subtitle for asserting.
+ */
+ public static void assertNoSliceItemContainsSubtitle(List<SliceItem> sliceItems,
+ String subtitle) {
+ // Subtitle has no hints
+ assertThat(hasText(sliceItems, subtitle, null /* hints */)).isFalse();
+ }
+
+ private static boolean hasText(List<SliceItem> sliceItems, String text, String hints) {
+ boolean hasText = false;
+ for (SliceItem item : sliceItems) {
+ List<SliceItem> textItems = SliceQuery.findAll(item, FORMAT_TEXT, hints,
+ null /* non-hints */);
+ if (textItems == null) {
+ continue;
+ }
+
+ for (SliceItem textItem : textItems) {
+ if (TextUtils.equals(textItem.getText(), text)) {
+ hasText = true;
+ break;
+ }
+ }
+ }
+ return hasText;
+ }
+
+ /**
+ * Assert any slice item contains icon.
+ *
+ * @param sliceItems All slice items of a Slice.
+ * @param icon Icon for asserting.
+ */
+ public static void assertAnySliceItemContainsIcon(List<SliceItem> sliceItems, IconCompat icon) {
+ boolean hasIcon = false;
+ for (SliceItem item : sliceItems) {
+ List<SliceItem> iconItems = SliceQuery.findAll(item, FORMAT_IMAGE,
+ (String) null /* hints */, null /* non-hints */);
+ if (iconItems == null) {
+ continue;
+ }
+
+ for (SliceItem iconItem : iconItems) {
+ if (icon.toString().equals(iconItem.getIcon().toString())) {
+ hasIcon = true;
+ break;
+ }
+ }
+ }
+ assertThat(hasIcon).isTrue();
+ }
+
+ private static void assertKeywords(SliceMetadata metadata, SliceData data) {
+ final List<String> keywords = metadata.getSliceKeywords();
+ final Set<String> expectedKeywords = Arrays.stream(data.getKeywords().split(","))
+ .map(s -> s = s.trim())
+ .collect(Collectors.toSet());
+ expectedKeywords.add(data.getTitle());
+ expectedKeywords.add(data.getScreenTitle().toString());
+ assertThat(keywords).containsExactlyElementsIn(expectedKeywords);
+ }
+}
diff --git a/tests/unit/src/com/android/settings/testutils/XmlTestUtils.java b/tests/unit/src/com/android/settings/testutils/XmlTestUtils.java
new file mode 100644
index 0000000..5640bee
--- /dev/null
+++ b/tests/unit/src/com/android/settings/testutils/XmlTestUtils.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.testutils;
+
+import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY;
+import static com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag
+ .FLAG_INCLUDE_PREF_SCREEN;
+import static com.android.settings.core.PreferenceXmlParserUtils.MetadataFlag.FLAG_NEED_KEY;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.text.TextUtils;
+
+import com.android.settings.core.PreferenceXmlParserUtils;
+
+import org.xmlpull.v1.XmlPullParserException;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Util class for parsing XML
+ */
+public class XmlTestUtils {
+
+ /**
+ * Parses a preference screen's xml, collects and returns all keys used by preferences
+ * on the screen.
+ *
+ * @param context of the preference screen.
+ * @param xmlId of the Preference Xml to be parsed.
+ * @return List of all keys in the preference Xml
+ */
+ public static List<String> getKeysFromPreferenceXml(Context context, int xmlId) {
+ final List<String> keys = new ArrayList<>();
+ try {
+ List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(context, xmlId,
+ FLAG_NEED_KEY | FLAG_INCLUDE_PREF_SCREEN);
+ for (Bundle bundle : metadata) {
+ final String key = bundle.getString(METADATA_KEY);
+ if (!TextUtils.isEmpty(key)) {
+ keys.add(key);
+ }
+ }
+ } catch (java.io.IOException | XmlPullParserException e) {
+ return null;
+ }
+
+ return keys;
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/users/MultiUserTopIntroPreferenceControllerTest.java b/tests/unit/src/com/android/settings/users/MultiUserTopIntroPreferenceControllerTest.java
similarity index 86%
rename from tests/robotests/src/com/android/settings/users/MultiUserTopIntroPreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/users/MultiUserTopIntroPreferenceControllerTest.java
index bc0b060..624750c 100644
--- a/tests/robotests/src/com/android/settings/users/MultiUserTopIntroPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/users/MultiUserTopIntroPreferenceControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,15 +23,15 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
-@Ignore
+@RunWith(AndroidJUnit4.class)
public class MultiUserTopIntroPreferenceControllerTest {
private Context mContext;
@@ -39,10 +39,11 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mController = new MultiUserTopIntroPreferenceController(mContext, "top_info");
}
+ @Ignore
@Test
public void getAvailabilityStatus_multiUserOff_shouldReturnEnabled() {
mController.mUserCaps.mEnabled = true;
@@ -51,6 +52,7 @@
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
}
+ @Ignore
@Test
public void getAvailabilityStatus_multiUserOn_shouldReturnDisabled() {
mController.mUserCaps.mEnabled = true;
diff --git a/tests/robotests/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapperTest.java b/tests/unit/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapperTest.java
similarity index 81%
rename from tests/robotests/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapperTest.java
rename to tests/unit/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapperTest.java
index 5a17622..3bafd50 100644
--- a/tests/robotests/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapperTest.java
+++ b/tests/unit/src/com/android/settings/utils/LocalClassLoaderContextThemeWrapperTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,19 +20,20 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class LocalClassLoaderContextThemeWrapperTest {
private LocalClassLoaderContextThemeWrapper mContextThemeWrapper;
@Test
public void getClassLoader_shouldUseLocalClassLoader() {
- final Context context = RuntimeEnvironment.application;
+ final Context context = ApplicationProvider.getApplicationContext();
final Class clazz = LocalClassLoaderContextThemeWrapperTest.class;
mContextThemeWrapper = new LocalClassLoaderContextThemeWrapper(clazz, context, 0);
diff --git a/tests/robotests/src/com/android/settings/vpn2/VpnUtilsTest.java b/tests/unit/src/com/android/settings/vpn2/VpnUtilsTest.java
similarity index 89%
rename from tests/robotests/src/com/android/settings/vpn2/VpnUtilsTest.java
rename to tests/unit/src/com/android/settings/vpn2/VpnUtilsTest.java
index 7856b06..f214764 100644
--- a/tests/robotests/src/com/android/settings/vpn2/VpnUtilsTest.java
+++ b/tests/unit/src/com/android/settings/vpn2/VpnUtilsTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,11 +23,12 @@
import android.net.ConnectivityManager;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public final class VpnUtilsTest {
@Test
public void testIsAlwaysOnVpnSet() {
diff --git a/tests/robotests/src/com/android/settings/widget/DefaultIndicatorSeekBarTest.java b/tests/unit/src/com/android/settings/widget/DefaultIndicatorSeekBarTest.java
similarity index 79%
rename from tests/robotests/src/com/android/settings/widget/DefaultIndicatorSeekBarTest.java
rename to tests/unit/src/com/android/settings/widget/DefaultIndicatorSeekBarTest.java
index ac95afa..777d984 100644
--- a/tests/robotests/src/com/android/settings/widget/DefaultIndicatorSeekBarTest.java
+++ b/tests/unit/src/com/android/settings/widget/DefaultIndicatorSeekBarTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -18,21 +18,23 @@
import static org.junit.Assert.assertEquals;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class DefaultIndicatorSeekBarTest {
private DefaultIndicatorSeekBar mDefaultIndicatorSeekBar;
@Before
public void setUp() {
- mDefaultIndicatorSeekBar = new DefaultIndicatorSeekBar(RuntimeEnvironment.application);
+ mDefaultIndicatorSeekBar = new DefaultIndicatorSeekBar(
+ ApplicationProvider.getApplicationContext());
mDefaultIndicatorSeekBar.setMax(100);
}
diff --git a/tests/unit/src/com/android/settings/widget/DonutViewTest.java b/tests/unit/src/com/android/settings/widget/DonutViewTest.java
new file mode 100644
index 0000000..ad02d0e
--- /dev/null
+++ b/tests/unit/src/com/android/settings/widget/DonutViewTest.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.widget;
+
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class DonutViewTest {
+ @Test
+ public void getPercentageStringSpannable_doesntCrashForMissingPercentage() {
+ Context context = ApplicationProvider.getApplicationContext();
+
+ DonutView.getPercentageStringSpannable(context.getResources(), "50%", "h");
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/widget/PreferenceCategoryControllerTest.java b/tests/unit/src/com/android/settings/widget/PreferenceCategoryControllerTest.java
similarity index 89%
rename from tests/robotests/src/com/android/settings/widget/PreferenceCategoryControllerTest.java
rename to tests/unit/src/com/android/settings/widget/PreferenceCategoryControllerTest.java
index 59cd13d..5e730f9 100644
--- a/tests/robotests/src/com/android/settings/widget/PreferenceCategoryControllerTest.java
+++ b/tests/unit/src/com/android/settings/widget/PreferenceCategoryControllerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,18 +23,19 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.settingslib.core.AbstractPreferenceController;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import java.util.ArrayList;
import java.util.List;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class PreferenceCategoryControllerTest {
private Context mContext;
@@ -43,7 +44,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mChildren = new ArrayList<>();
mController = new PreferenceCategoryController(mContext, "pref_key").setChildren(mChildren);
}
diff --git a/tests/robotests/src/com/android/settings/widget/RingProgressBarTest.java b/tests/unit/src/com/android/settings/widget/RingProgressBarTest.java
similarity index 87%
rename from tests/robotests/src/com/android/settings/widget/RingProgressBarTest.java
rename to tests/unit/src/com/android/settings/widget/RingProgressBarTest.java
index 1d76f1b..f857e8f 100644
--- a/tests/robotests/src/com/android/settings/widget/RingProgressBarTest.java
+++ b/tests/unit/src/com/android/settings/widget/RingProgressBarTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,16 +22,17 @@
import android.content.Context;
import android.view.View.MeasureSpec;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class RingProgressBarTest {
- private Context mContext = RuntimeEnvironment.application;
+ private Context mContext = ApplicationProvider.getApplicationContext();
private RingProgressBar mProgressBar;
diff --git a/tests/robotests/src/com/android/settings/widget/RtlCompatibleViewPagerTest.java b/tests/unit/src/com/android/settings/widget/RtlCompatibleViewPagerTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/widget/RtlCompatibleViewPagerTest.java
rename to tests/unit/src/com/android/settings/widget/RtlCompatibleViewPagerTest.java
index 8cb0539..cc53eee 100644
--- a/tests/robotests/src/com/android/settings/widget/RtlCompatibleViewPagerTest.java
+++ b/tests/unit/src/com/android/settings/widget/RtlCompatibleViewPagerTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -13,7 +13,6 @@
* 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;
@@ -23,17 +22,17 @@
import android.view.View;
import android.view.ViewGroup;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.viewpager.widget.PagerAdapter;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
import java.util.Locale;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class RtlCompatibleViewPagerTest {
private Locale mLocaleEn;
@@ -42,7 +41,7 @@
@Before
public void setUp() {
- mViewPager = new RtlCompatibleViewPager(RuntimeEnvironment.application);
+ mViewPager = new RtlCompatibleViewPager(ApplicationProvider.getApplicationContext());
mViewPager.setAdapter(new ViewPagerAdapter());
mLocaleEn = new Locale("en");
mLocaleHe = new Locale("he");
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java b/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java
similarity index 94%
rename from tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java
rename to tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java
index 630b319..7a75443 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiUtilsTest.java
+++ b/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,13 +23,14 @@
import android.net.wifi.WifiConfiguration;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.wifitrackerlib.WifiEntry;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class WifiUtilsTest {
@Test
diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiSubscriptionDetailPreferenceController2Test.java b/tests/unit/src/com/android/settings/wifi/details2/WifiSubscriptionDetailPreferenceController2Test.java
similarity index 90%
rename from tests/robotests/src/com/android/settings/wifi/details2/WifiSubscriptionDetailPreferenceController2Test.java
rename to tests/unit/src/com/android/settings/wifi/details2/WifiSubscriptionDetailPreferenceController2Test.java
index 18a5b86..d4d724d 100644
--- a/tests/robotests/src/com/android/settings/wifi/details2/WifiSubscriptionDetailPreferenceController2Test.java
+++ b/tests/unit/src/com/android/settings/wifi/details2/WifiSubscriptionDetailPreferenceController2Test.java
@@ -24,16 +24,17 @@
import android.content.Context;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import com.android.wifitrackerlib.WifiEntry;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class WifiSubscriptionDetailPreferenceController2Test {
@Mock
@@ -44,7 +45,7 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = ApplicationProvider.getApplicationContext();
mMockWifiEntry = mock(WifiEntry.class);
WifiSubscriptionDetailPreferenceController2 preferenceController =
diff --git a/tests/robotests/src/com/android/settings/wifi/dpp/WifiNetworkConfigTest.java b/tests/unit/src/com/android/settings/wifi/dpp/WifiNetworkConfigTest.java
similarity index 91%
rename from tests/robotests/src/com/android/settings/wifi/dpp/WifiNetworkConfigTest.java
rename to tests/unit/src/com/android/settings/wifi/dpp/WifiNetworkConfigTest.java
index 1b7c0a8..85cf259 100644
--- a/tests/robotests/src/com/android/settings/wifi/dpp/WifiNetworkConfigTest.java
+++ b/tests/unit/src/com/android/settings/wifi/dpp/WifiNetworkConfigTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,12 +20,13 @@
import android.content.Intent;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class WifiNetworkConfigTest {
private WifiNetworkConfig mWifiConfig;
@@ -43,4 +44,4 @@
String qrcode = mWifiConfig.getQrCode();
assertThat(qrcode).isEqualTo("WIFI:S:Pixel\\:_ABCD\\;;T:WPA;P:\\\\012345678\\,;H:false;;");
}
-}
\ No newline at end of file
+}