Merge "Add entitlement check for usb tethering"
diff --git a/Android.mk b/Android.mk
index 6b0d077..f10b3ec 100644
--- a/Android.mk
+++ b/Android.mk
@@ -41,6 +41,7 @@
androidx.lifecycle_lifecycle-extensions \
guava \
jsr305 \
+ contextualcards \
settings-logtags \
LOCAL_PROGUARD_FLAG_FILES := proguard.flags
@@ -57,7 +58,14 @@
include $(BUILD_PACKAGE)
+# ==== prebuilt library ========================
+include $(CLEAR_VARS)
+
+LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
+ contextualcards:libs/contextualcards.aar
+include $(BUILD_MULTI_PREBUILT)
+
# Use the following include to make our test apk.
ifeq (,$(ONE_SHOT_MAKEFILE))
include $(call all-makefiles-under,$(LOCAL_PATH))
-endif
+endif
\ No newline at end of file
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index aa53bdb..ec34514 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -131,6 +131,13 @@
android:launchMode="singleTask">
</activity>
+ <activity android:name=".mobilenetwork.MobileSettingsActivity"
+ android:label="@string/network_settings_title"
+ android:theme="@style/Theme.Settings.Home"
+ android:launchMode="singleTask">
+ <!-- TODO(b/114749736): add intent filter here and disable the one in telephony -->
+ </activity>
+
<!-- Alias for launcher activity only, as this belongs to each profile. -->
<activity-alias android:name="Settings"
android:taskAffinity="com.android.settings.root"
@@ -3029,9 +3036,6 @@
android:exported="true"
android:permission="android.permission.DUMP" />
- <service android:name=".search.DeviceIndexUpdateJobService"
- android:permission="android.permission.BIND_JOB_SERVICE" />
-
<!-- Quick Settings tiles for Developer Options -->
<service
android:name=".development.qstile.DevelopmentTiles$ShowLayout"
@@ -3192,6 +3196,15 @@
android:exported="true"
android:permission="android.permission.WRITE_SETTINGS_HOMEPAGE_DATA" />
+ <provider
+ android:name=".homepage.contextualcards.SettingsContextualCardProvider"
+ android:authorities="com.android.settings.homepage.contextualcards"
+ android:permission="android.permission.WRITE_SETTINGS_HOMEPAGE_DATA"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.content.action.SETTINGS_HOMEPAGE_DATA"/>
+ </intent-filter>
+ </provider>
<!-- This is the longest AndroidManifest.xml ever. -->
</application>
</manifest>
diff --git a/color-check-baseline.xml b/color-check-baseline.xml
index 4b36b50..62c7915 100644
--- a/color-check-baseline.xml
+++ b/color-check-baseline.xml
@@ -1509,22 +1509,6 @@
priority="4"
summary="Using hardcoded color"
explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
- errorLine1=" settings:fillColorSecondary="#ff80cbc4""
- errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
- <location
- file="res/layout/data_usage_chart.xml"
- line="47"
- column="9"/>
- </issue>
-
- <issue
- id="HardCodedColor"
- severity="Error"
- message="Avoid using hardcoded color"
- category="Correctness"
- priority="4"
- summary="Using hardcoded color"
- explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.
This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
errorLine1=" android:background="#80000000""
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
<location
diff --git a/libs/contextualcards.aar b/libs/contextualcards.aar
new file mode 100755
index 0000000..a44a26c
--- /dev/null
+++ b/libs/contextualcards.aar
Binary files differ
diff --git a/res/drawable-nodpi/gesture_ambient_reach b/res/drawable-nodpi/gesture_ambient_wake_lock_screen
similarity index 100%
rename from res/drawable-nodpi/gesture_ambient_reach
rename to res/drawable-nodpi/gesture_ambient_wake_lock_screen
diff --git a/res/drawable-nodpi/gesture_ambient_reach b/res/drawable-nodpi/gesture_ambient_wake_screen
similarity index 100%
copy from res/drawable-nodpi/gesture_ambient_reach
copy to res/drawable-nodpi/gesture_ambient_wake_screen
diff --git a/res/drawable/ic_delete_accent.xml b/res/drawable/ic_delete_accent.xml
new file mode 100644
index 0000000..86a9cca
--- /dev/null
+++ b/res/drawable/ic_delete_accent.xml
@@ -0,0 +1,31 @@
+<!--
+ Copyright (C) 2018 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24.0dp"
+ android:height="24.0dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0"
+ android:tint="?android:attr/colorAccent">
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M15,4V3H9v1H4v2h1v13c0,1.1 0.9,2 2,2h10c1.1,0 2,-0.9 2,-2V6h1V4H15zM17,19H7V6h10V19z"/>
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M9,8h2v9h-2z"/>
+ <path
+ android:fillColor="#FF000000"
+ android:pathData="M13,8h2v9h-2z"/>
+</vector>
diff --git a/res/drawable/ic_search_24dp.xml b/res/drawable/ic_search_24dp.xml
deleted file mode 100644
index d63711a..0000000
--- a/res/drawable/ic_search_24dp.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- 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.
- -->
-
-<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="#FF000000"
- android:pathData="M20.49,19l-5.73,-5.73C15.53,12.2 16,10.91 16,9.5C16,5.91 13.09,3 9.5,3S3,5.91 3,9.5C3,13.09 5.91,16 9.5,16c1.41,0 2.7,-0.47 3.77,-1.24L19,20.49L20.49,19zM5,9.5C5,7.01 7.01,5 9.5,5S14,7.01 14,9.5S11.99,14 9.5,14S5,11.99 5,9.5z"/>
-</vector>
diff --git a/res/layout/apps_filter_spinner.xml b/res/layout/apps_filter_spinner.xml
index e468a4b..ca69cc6 100644
--- a/res/layout/apps_filter_spinner.xml
+++ b/res/layout/apps_filter_spinner.xml
@@ -15,31 +15,30 @@
limitations under the License.
-->
-<LinearLayout
+<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
- android:layout_height="?android:attr/actionBarSize"
- android:background="?android:attr/colorAccent"
- android:gravity="center_vertical"
- android:orientation="horizontal">
+ android:layout_height="wrap_content">
- <Spinner
+ <com.android.settingslib.widget.settingsspinner.SettingsSpinner
android:id="@+id/filter_spinner"
android:layout_height="wrap_content"
- android:layout_width="0dp"
- android:layout_weight="1"
- android:paddingStart="64dp"
- android:background="@drawable/app_filter_spinner_background"/>
+ android:layout_width="wrap_content"
+ android:layout_centerHorizontal="true"
+ android:layout_marginTop="24dp"
+ android:layout_marginBottom="16dp"/>
<ImageView
android:id="@+id/filter_settings"
style="?android:attr/borderlessButtonStyle"
android:layout_width="56dp"
android:layout_height="56dp"
+ android:layout_marginTop="12dp"
+ android:layout_toRightOf="@id/filter_spinner"
android:contentDescription="@string/configure"
android:scaleType="center"
android:src="@drawable/ic_settings_24dp"
- android:visibility="gone" />
+ android:visibility="gone"/>
-</LinearLayout>
+</RelativeLayout>
diff --git a/res/layout/data_usage_chart.xml b/res/layout/data_usage_chart.xml
deleted file mode 100644
index 4aa0aa8..0000000
--- a/res/layout/data_usage_chart.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<!-- NOTE: this explicitly uses right/left padding, since the
- graph isn't swapped in RTL languages -->
-<com.android.settings.widget.ChartDataUsageView
- xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
- android:id="@+id/chart"
- android:layout_width="match_parent"
- android:layout_height="@dimen/data_usage_chart_height"
- android:paddingStart="?android:attr/listPreferredItemPaddingStart"
- android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
- android:paddingTop="16dp"
- android:paddingBottom="24dp">
-
- <com.android.settings.widget.ChartGridView
- android:id="@+id/grid"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="start|bottom"
- android:paddingBottom="24dp"
- android:textColor="?android:attr/textColorPrimary"
- android:textAppearance="@android:style/TextAppearance.Material.Caption"
- settings:borderDrawable="@drawable/data_grid_border" />
-
- <com.android.settings.widget.ChartNetworkSeriesView
- android:id="@+id/series"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="start|bottom"
- settings:strokeColor="#00000000"
- settings:fillColor="?android:attr/colorAccent"
- settings:fillColorSecondary="#ff80cbc4"
- settings:safeRegion="3dp" />
-
- <com.android.settings.widget.ChartNetworkSeriesView
- android:id="@+id/detail_series"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_gravity="start|bottom"
- settings:strokeColor="#00000000"
- settings:fillColor="?android:attr/colorAccent"
- settings:fillColorSecondary="?android:attr/colorAccent"
- settings:safeRegion="3dp" />
-
- <com.android.settings.widget.ChartSweepView
- android:id="@+id/sweep_warning"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:nextFocusUp="@+id/sweep_limit"
- settings:sweepDrawable="@drawable/data_sweep_warning"
- settings:followAxis="vertical"
- settings:neighborMargin="5dip"
- settings:labelSize="60dip"
- settings:labelTemplate="@string/data_usage_sweep_warning"
- settings:labelColor="?android:attr/textColorSecondary"
- settings:safeRegion="4dp" />
-
- <com.android.settings.widget.ChartSweepView
- android:id="@+id/sweep_limit"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:nextFocusDown="@+id/sweep_warning"
- settings:sweepDrawable="@drawable/data_sweep_limit"
- settings:followAxis="vertical"
- settings:neighborMargin="5dip"
- settings:labelSize="60dip"
- settings:labelTemplate="@string/data_usage_sweep_limit"
- settings:labelColor="?android:attr/colorError"
- settings:safeRegion="4dp" />
-
-</com.android.settings.widget.ChartDataUsageView>
diff --git a/res/layout/master_clear.xml b/res/layout/master_clear.xml
index 921347e..247eedc 100644
--- a/res/layout/master_clear.xml
+++ b/res/layout/master_clear.xml
@@ -14,122 +14,125 @@
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.android.setupwizardlib.GlifLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:id="@+id/setup_wizard_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:orientation="vertical">
+ android:orientation="vertical"
+ android:theme="@style/SuwThemeGlifV3.Light"
+ android:icon="@drawable/ic_delete_accent"
+ app:suwHeaderText="@string/master_clear_title">
<ScrollView
- android:id="@+id/master_clear_scrollview"
- android:layout_width="match_parent"
- android:layout_height="0dip"
- android:layout_marginStart="@dimen/reset_master_clear_margin_start"
- android:layout_marginEnd="@dimen/reset_master_clear_margin_end"
- android:layout_marginTop="12dp"
- android:layout_weight="1">
+ android:id="@+id/master_clear_scrollview"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginStart="@dimen/reset_master_clear_margin_start"
+ android:layout_marginEnd="@dimen/reset_master_clear_margin_end">
+
<LinearLayout
android:id="@+id/master_clear_container"
+ style="@style/SuwContentFrame"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
+
<TextView
+ style="@style/TextAppearance.SuwGlifItemSummary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- style="@style/master_clear_item_label"
- android:includeFontPadding="false"
- android:text="@string/master_clear_desc" />
- <TextView android:id="@+id/also_erases_external"
+ android:text="@string/master_clear_desc"/>
+ <TextView
+ android:id="@+id/also_erases_external"
+ style="@style/TextAppearance.SuwGlifItemSummary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- style="@style/master_clear_item_label"
- android:includeFontPadding="false"
android:visibility="gone"
- android:text="@string/master_clear_desc_also_erases_external" />
- <TextView android:id="@+id/also_erases_esim"
+ android:text="@string/master_clear_desc_also_erases_external"/>
+ <TextView
+ android:id="@+id/also_erases_esim"
+ style="@style/TextAppearance.SuwGlifItemSummary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- style="@style/master_clear_item_label"
- android:includeFontPadding="false"
android:visibility="gone"
- android:text="@string/master_clear_desc_also_erases_esim" />
- <TextView android:id="@+id/accounts_label"
+ android:text="@string/master_clear_desc_also_erases_esim"/>
+ <TextView
+ android:id="@+id/accounts_label"
+ style="@style/TextAppearance.SuwGlifItemSummary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- style="@style/master_clear_item_label"
android:visibility="gone"
- android:text="@string/master_clear_accounts" />
- <LinearLayout android:id="@+id/accounts"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- android:visibility="gone">
+ android:text="@string/master_clear_accounts"/>
+ <LinearLayout
+ android:id="@+id/accounts"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone">
<!-- Do not add any children here as they will be removed in the MasterClear.java
code. A list of accounts will be inserted programmatically. -->
</LinearLayout>
- <TextView android:id="@+id/other_users_present"
+ <TextView
+ android:id="@+id/other_users_present"
+ style="@style/TextAppearance.SuwGlifItemSummary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
- android:textSize="18sp"
- android:text="@string/master_clear_other_users_present" />
- <TextView android:id="@+id/no_cancel_mobile_plan"
+ android:text="@string/master_clear_other_users_present"/>
+ <TextView
+ android:id="@+id/no_cancel_mobile_plan"
+ style="@style/TextAppearance.SuwGlifItemSummary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
- android:textSize="18sp"
- android:text="@string/master_clear_desc_no_cancel_mobile_plan" />
- <TextView android:id="@+id/erase_external_option_text"
+ android:text="@string/master_clear_desc_no_cancel_mobile_plan"/>
+ <TextView
+ android:id="@+id/erase_external_option_text"
+ style="@style/TextAppearance.SuwGlifItemSummary"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:textSize="18sp"
- android:text="@string/master_clear_desc_erase_external_storage" />
- <LinearLayout android:id="@+id/erase_external_container"
+ android:text="@string/master_clear_desc_erase_external_storage"/>
+ <LinearLayout
+ android:id="@+id/erase_external_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ android:focusable="true"
+ android:clickable="true">
+ <CheckBox
+ android:id="@+id/erase_external"
+ style="@style/SuwCheckBox"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:focusable="false"
+ android:clickable="false"
+ android:duplicateParentState="true"/>
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:focusable="true"
- android:clickable="true">
- <CheckBox android:id="@+id/erase_external"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:paddingEnd="@dimen/reset_checkbox_padding_end"
- android:focusable="false"
- android:clickable="false"
- android:duplicateParentState="true" />
- <LinearLayout android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:orientation="vertical">
+ android:layout_gravity="center_vertical"
+ android:orientation="vertical">
<TextView
+ style="@style/TextAppearance.SuwGlifItemTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingTop="@dimen/reset_checkbox_title_padding_top"
- android:textSize="@dimen/reset_checkbox_title_text_size"
- android:text="@string/erase_external_storage" />
+ android:text="@string/erase_external_storage"/>
<TextView
+ style="@style/TextAppearance.SuwGlifItemSummary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingTop="@dimen/reset_checkbox_summary_padding_top"
- android:textSize="@dimen/reset_checkbox_summary_text_size"
- android:text="@string/erase_external_storage_description" />
+ android:text="@string/erase_external_storage_description"/>
</LinearLayout>
</LinearLayout>
- <include layout="@layout/reset_esim_checkbox"
- android:layout_marginTop="40dp"
- android:id="@+id/erase_esim_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content" />
+ <include
+ layout="@layout/reset_esim_checkbox"
+ android:layout_marginTop="40dp"
+ android:id="@+id/erase_esim_container"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
</LinearLayout>
</ScrollView>
- <Button
- android:id="@+id/initiate_master_clear"
- android:layout_gravity="center_horizontal"
- android:layout_marginTop="20dip"
- android:layout_marginBottom="12dip"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/master_clear_button_text"
- android:gravity="center" />
-
-</LinearLayout>
+</com.android.setupwizardlib.GlifLayout>
diff --git a/res/layout/master_clear_account.xml b/res/layout/master_clear_account.xml
index 4a0552d..0b522f2 100644
--- a/res/layout/master_clear_account.xml
+++ b/res/layout/master_clear_account.xml
@@ -20,8 +20,7 @@
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
- android:paddingStart="16dp"
- android:paddingEnd="16dp">
+ style="@style/SuwDescription.Glif" >
<ImageView
android:id="@android:id/icon"
android:layout_width="56dp"
@@ -31,6 +30,6 @@
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:textSize="18sp"/>
+ style="@style/TextAppearance.SuwGlifItemSummary"/>
</LinearLayout>
diff --git a/res/layout/master_clear_confirm.xml b/res/layout/master_clear_confirm.xml
index 4ab3a0f..146fb77 100644
--- a/res/layout/master_clear_confirm.xml
+++ b/res/layout/master_clear_confirm.xml
@@ -4,37 +4,37 @@
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
-
+
http://www.apache.org/licenses/LICENSE-2.0
-
+
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<com.android.setupwizardlib.GlifLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- >
+ android:theme="@style/SuwThemeGlifV3.Light"
+ android:id="@+id/setup_wizard_layout"
+ android:icon="@drawable/ic_delete_accent"
+ app:suwHeaderText="@string/master_clear_confirm_title">
- <TextView
- android:id="@+id/master_clear_confirm"
- android:layout_width="wrap_content"
+ <LinearLayout
+ style="@style/SuwContentFrame"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="12dp"
- android:layout_marginEnd="12dp"
- android:layout_marginTop="12dp"
- android:textSize="20sp"
- android:text="@string/master_clear_final_desc" />
+ android:orientation="vertical">
- <Button android:id="@+id/execute_master_clear"
- android:layout_gravity="center_horizontal"
- android:layout_marginTop="40dip"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/master_clear_final_button_text"
- android:gravity="center" />
-
-</LinearLayout>
+ <TextView
+ android:id="@+id/master_clear_confirm"
+ style="@style/SuwItemTitle.GlifDescription"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/master_clear_final_desc"/>
+ </LinearLayout>
+</com.android.setupwizardlib.GlifLayout>
diff --git a/res/layout/mobile_settings_container.xml b/res/layout/mobile_settings_container.xml
new file mode 100644
index 0000000..d81a72e
--- /dev/null
+++ b/res/layout/mobile_settings_container.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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.
+ -->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <Toolbar
+ android:id="@+id/action_bar"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:navigationContentDescription="@*android:string/action_bar_up_description"
+ android:theme="?android:attr/actionBarTheme"
+ style="?android:attr/actionBarStyle"/>
+
+ <FrameLayout
+ android:id="@+id/main_content"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"/>
+
+ <com.google.android.material.bottomnavigation.BottomNavigationView
+ android:id="@+id/bottom_nav"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_alignParentBottom="true"
+ android:layout_marginEnd="0dp"
+ android:layout_marginStart="0dp"
+ android:background="?android:attr/windowBackground"
+ app:itemIconTint="@color/bottom_navigation_colors"
+ app:itemTextColor="@color/bottom_navigation_colors"
+ app:menu="@menu/home_bottom_navigation"/>
+</LinearLayout>
diff --git a/res/layout/reset_esim_checkbox.xml b/res/layout/reset_esim_checkbox.xml
index fb15fe6..e2ae4bb 100644
--- a/res/layout/reset_esim_checkbox.xml
+++ b/res/layout/reset_esim_checkbox.xml
@@ -15,6 +15,7 @@
-->
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
+ style="@style/SuwDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
@@ -24,14 +25,14 @@
<CheckBox
android:id="@+id/erase_esim"
+ style="@style/SuwCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
- android:paddingEnd="@dimen/reset_checkbox_padding_end"
android:focusable="false"
android:clickable="false"
android:checked="true"
- android:duplicateParentState="true" />
+ android:duplicateParentState="true"/>
<LinearLayout
android:layout_width="match_parent"
@@ -41,16 +42,14 @@
<TextView
android:id="@+id/erase_esim_title"
+ style="@style/TextAppearance.SuwGlifItemTitle"
android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:paddingTop="@dimen/reset_checkbox_title_padding_top"
- android:textSize="@dimen/reset_checkbox_title_text_size" />
+ android:layout_height="wrap_content"/>
<TextView
+ style="@style/TextAppearance.SuwGlifItemSummary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingTop="@dimen/reset_checkbox_summary_padding_top"
- android:textSize="@dimen/reset_checkbox_summary_text_size"
- android:text="@string/reset_esim_desc" />
+ android:text="@string/reset_esim_desc"/>
</LinearLayout>
</LinearLayout>
diff --git a/res/raw/gesture_ambient_reach.mp4 b/res/raw/gesture_ambient_wake_lock_screen.mp4
similarity index 100%
copy from res/raw/gesture_ambient_reach.mp4
copy to res/raw/gesture_ambient_wake_lock_screen.mp4
diff --git a/res/raw/gesture_ambient_reach.mp4 b/res/raw/gesture_ambient_wake_screen.mp4
similarity index 100%
rename from res/raw/gesture_ambient_reach.mp4
rename to res/raw/gesture_ambient_wake_screen.mp4
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 4f475d4..f5ebbd8 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Toestelle wat vroeër gekoppel was"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Voorheen gekoppel"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth is aangeskakel"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Sien alles"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datum en tyd"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Kies tydsone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Klaar"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Gebruik jou gesig om"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Ontsluit jou toestel"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Programaanmelding en betalings"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Oë oop om te ontsluit"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Wanneer jy gesigstawing gebruik, moet jou oë oop wees"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Verwyder gesigdata"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Verbeter jou gesigdata"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Jou gesig kan gebruik word om jou toestel te ontsluit en toegang tot programme te kry. "<annotation id="url">"Kom meer te wete"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Verstekprogramme"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Tale, tyd, rugsteun, opdaterings"</string>
<string name="search_results_title" msgid="1796252422574886932">"Instellings"</string>
- <string name="search_menu" msgid="6283419262313758339">"Deursoek instellings"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, netwerkverbinding, internet, draadloos, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, wissel, beheer"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"sms, teksboodskap, boodskappe, boodskapdiens, verstek"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"betaal, tik, betalings"</string>
<string name="keywords_backup" msgid="470070289135403022">"rugsteun, rugsteun"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gebaar"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"gesigslot"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"gesig, ontsluit, stawing, meld aan"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl-weergawe, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"netwerk, selnetwerktoestand, dienstoestand, seinsterkte, selnetwerktipe, swerf, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"reeksnommer, hardewareweergawe"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Persoonlik"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Werk"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Programme: Alle"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Programme: Afgeskakel"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Afgeskakel"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorieë: Dringend"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorieë: Onbelangrik"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorieë: Afgeskakel"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Tel foon op om te kyk"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Tel op om na tablet te kyk"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Tel op om na toestel te kyk"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Ontwaakskerm"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Tel jou foon op om na die horlosie, kennisgewings en ander inligting te kyk."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Tel jou tablet op om na die horlosie, kennisgewings en ander inligting te kyk."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Tel jou toestel op om na die horlosie, kennisgewings en ander inligting te kyk."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Uitstrekgebaar"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Wekslotskermgebaar"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Swiep vingerafdruk vir kennisgewings"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Swiep vingerafdruk"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Swiep na onder op die vingerafdruksensor aan die agterkant van jou foon om jou kennisgewings na te gaan."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spoor alle GNSS-konstellasies en -frekwensies na sonder enige dienssiklussering"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Wys altyd omvaldialoog"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Wys dialoog elke keer as \'n program omval"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Kies ANGLE-geaktiveerde program"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Geen ANGLE-gekativeerde program gestel nie"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-geaktiveerde program: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Gidstoegang"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"gidstoegang"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktiveer virtuele hoëfrekwensie-paneel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle instellings"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Jou instellings"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-data"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-data"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Kies netwerk"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Ontkoppel"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Gekoppel"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Koppel tans …"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Kon nie koppel nie"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Geen netwerke gekry nie."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Kon nie netwerke kry nie. Probeer weer."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(verbode)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Geen SIM-kaart nie"</string>
</resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 6f11ca6..92e1c9b 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"ከዚህ ቀደም የተገናኙ መሣሪያዎች"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ከዚህ ቀደም የተገናኘ"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ብሉቱዝ በርቷል"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"ሁሉንም ይመልከቱ"</string>
<string name="date_and_time" msgid="9062980487860757694">"ቀን እና ሰዓት"</string>
<string name="choose_timezone" msgid="1362834506479536274">"የጊዜ ሰቅ ምረጥ"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ተከናውኗል"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"የእርስዎ ፊትን ለዚህ ይጠቀሙ"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"መሣሪያዎን ይክፈቱት"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"የመተግበሪያ በመለያ መግቢያ እና ክፍያዎች"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"ለመክፈት ዓይኖችን ይክፈቱ"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"የፊት ማረጋገጫን በሚጠቀሙበት ጊዜ የእርስዎ ዓይኖች ክፍት መሆን አለባቸው"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"የፊት ውሂብ አስወግድ"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"የእርስዎን የፊት ውሂብ ያሻሽሉ"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"የእርስዎ ፊት የእርስዎን መሣሪያ ለመክፈት እና መተግበሪያዎችን ለመድረስ ጥቅም ላይ ሊውል ይችላል። "<annotation id="url">"የበለጠ ለመረዳት"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ነባሪ መተግበሪያዎች"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ቋንቋዎች፣ ጊዜ፣ ምትኬ፣ ዝማኔዎች"</string>
<string name="search_results_title" msgid="1796252422574886932">"ቅንብሮች"</string>
- <string name="search_menu" msgid="6283419262313758339">"የፍለጋ ቅንብሮች"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi፣ አውታረ መረብ ግንኙነት፣ በይነመርብ፣ ገመድ አልባ፣ ውሂብ፣ wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi፣ wi-fi፣ ቀያይር፣ ቁጥጥር"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"የጽሑፍ መልዕክት፣ መልዕክት ጽሑፍ መላላክ፣ መልዕክቶች፣ መልዕክት አላላክ፣ ነባሪ"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ይክፈሉ፣ መታ ያድርጉ፣ ክፍያዎች"</string>
<string name="keywords_backup" msgid="470070289135403022">"ምትኬ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"የጣት ምልክት"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ገጽ ክፈት"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ፊት፣ ክፈት፣ ፈቀዳ፣ በመለያ መግቢያ"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei፣ meid፣ ደቂቃ፣ prl ስሪት፣ imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"አውታረ መረብ፣ የተንቀሳቃሽ ስልክ አውታረ መረብ ሁኔታ፣ አገልግሎት ሁኔታ፣ የሲግናል ጥንካሬ፣ የተንቀሳቃሽ ስልክ አውታረ መረብ ዓይነት፣ ከአገልግሎት መስጫ ክልል ውጭ፣ iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"ተከታታይ ቁጥር፣ የሃርድዌር ስሪት"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"የግል"</string>
<string name="filter_work_apps" msgid="24519936790795574">"ስራ"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"መተግበሪያዎች፦ ሁሉም"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"መተግበሪያዎች፦ ጠፍተዋል"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ጠፍተዋል"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"ምድቦች፦ በጣም አስቸኳይ አስፈላጊነት"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"ምድቦች፦ ዝቅተኛ ቅድሚያ"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"ምድቦች፦ ጠፍተዋል"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ስልኩን ለማረጋገጥ ያንሱ"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ጡባዊውን ለማረጋገጥ ያንሱ"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"መሣሪያውን ለማረጋገጥ ያንሱ"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ማሳያን ቀስቅስ"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"ጊዜን፣ ማሳወቂያዎችን እና ሌላ መረጃን ለማረጋገጥ የእርስዎን ስልክ ያንሱት።"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"ጊዜን፣ ማሳወቂያዎችን እና ሌላ መረጃን ለማረጋገጥ የእርስዎን ጡባዊ ያንሱት።"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"ጊዜን፣ ማሳወቂያዎችን እና ሌላ መረጃን ለማረጋገጥ የእርስዎን መሣሪያ ያንሱት።"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"የመድረስ ጣት ምልክት"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"የመቀስቀሻ ቁልፍ ማያ ገጽ ጣት ምልክት"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"ማሳወቂያዎችን ለማግኘት የጣት አሻራን ያንሸራትቱ"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"የጣት አሻራን ያንሸራቱ"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"የእርስዎን ማሳወቂያዎች ለመመልከት በስልክዎ ጀርባ ላይ ባለው የጣት አሻራ ዳሳሽ ላይ ወደ ታች ጠረግ ያድርጉት"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ሁሉንም የGNSS ህብረ ፎቶዎችን እና ድግምግሞሾችን ያለምንም የሥራ ብስክሌት ግልቢያ ዱካቸውን ይከታተሉ"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"የስንክል ንግግር ሳጥንን ሁልጊዜ አሳይ"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"መተግበሪያ በሚሰናከልበት እያንዳንዱ ጊዜ የንግግር ሳጥን አሳይ"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"በANGLE የነቃ መተግበሪያ ይምረጡ"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ምንም በANGLE የነቃ መተግበሪያ አልተቀናበረም"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"በANGLE የነቃ መተግበሪያ፦ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"የማውጫ መዳረሻ"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"የማውጫ መዳረሻ"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ምናባዊ የፈጣን ድግግሞሽ ፓነልን አንቃ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ሁሉም ቅንብሮች"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"የእርስዎ ቅንብሮች"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ውሂብ"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ውሂብ"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"አውታረ መረብ ይምረጡ"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"ግንኙነት ተቋርጧል"</string>
+ <string name="network_connected" msgid="4943925032253989621">"ተገናኝቷል"</string>
+ <string name="network_connecting" msgid="76404590784733557">"በመገናኘት ላይ…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"መገናኘት አልተቻለም"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"ምንም አውታረመረብ አልተገኘም።"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"አውታረ መረቦችን ማግኘት አልተቻለም። እንደገና ይሞክሩ።"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(የተከለከለ)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"ምንም ሲም ካርድ የለም"</string>
</resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index b73ddeb..4087215 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -183,6 +183,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"الأجهزة المتصلة سابقًا"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"الأجهزة المتصلة سابقًا"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"تم تفعيل البلوتوث."</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"عرض الكل"</string>
<string name="date_and_time" msgid="9062980487860757694">"التاريخ والوقت"</string>
<string name="choose_timezone" msgid="1362834506479536274">"اختيار المنطقة الزمنية"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -411,6 +412,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"تم"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"استخدام الوجه في"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"إلغاء قفل جهازك"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"الدخول إلى التطبيقات والدفع"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"افتَح عينيك لفتح القفل"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"عند استخدام مصادقة الوجه، يجب فتح العينين."</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"إزالة بيانات الوجه"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"تحسين بيانات الوجه"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"يمكن إلغاء قفل جهازك والوصول إلى التطبيقات بالوجه. "<annotation id="url">"مزيد من المعلومات"</annotation></string>
@@ -1168,7 +1172,7 @@
<string name="brightness" msgid="8480105032417444275">"مستوى السطوع"</string>
<string name="brightness_title" msgid="5746272622112982836">"السطوع"</string>
<string name="brightness_summary" msgid="838917350127550703">"ضبط سطوع الشاشة"</string>
- <string name="auto_brightness_title" msgid="6341042882350279391">"السطوع التلقائي"</string>
+ <string name="auto_brightness_title" msgid="6341042882350279391">"السطوع التكيُّفي"</string>
<string name="auto_brightness_summary_on" msgid="3519854265558828744">"مفعّل"</string>
<string name="auto_brightness_summary_off" msgid="2802336459335410626">"تم الإيقاف"</string>
<string name="auto_brightness_summary_very_low" msgid="6483976609035853764">"السطوع المفضل منخفض جدًا"</string>
@@ -2021,9 +2025,9 @@
<string name="select_to_speak_summary" msgid="4282846695497544515">"يمكنك النقر على بيانات على شاشتك لتتم قراءتها بصوت عالٍ"</string>
<string name="accessibility_captioning_title" msgid="7589266662024836291">"الترجمة"</string>
<string name="accessibility_screen_magnification_title" msgid="6001128808776506021">"التكبير"</string>
- <string name="accessibility_screen_magnification_gestures_title" msgid="3719929521571489913">"تكبير باستخدام النقر الثلاثي"</string>
+ <string name="accessibility_screen_magnification_gestures_title" msgid="3719929521571489913">"التكبير بالنقر ثلاث مرّات"</string>
<string name="accessibility_screen_magnification_navbar_title" msgid="7141753038957538230">"التكبير باستخدام الزر"</string>
- <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="2760906043221923793">"التكبير باستخدام الزر والنقر الثلاثي"</string>
+ <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="2760906043221923793">"التكبير باستخدام الزر والنقر ثلاث مرّات"</string>
<string name="accessibility_preference_magnification_summary" msgid="5867883657521404509">"التكبير على الشاشة"</string>
<string name="accessibility_screen_magnification_short_summary" msgid="3411979839172752057">"انقر ٣ مرات للتكبير."</string>
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="3693116360267980492">"انقر على أحد الأزرار للتكبير"</string>
@@ -3097,7 +3101,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"التطبيقات التلقائية"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"اللغات، الوقت، الاحتفاظ بنسخة احتياطية، التحديثات"</string>
<string name="search_results_title" msgid="1796252422574886932">"الإعدادات"</string>
- <string name="search_menu" msgid="6283419262313758339">"البحث في الإعدادات"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"لاسلكي، wi-fi، اتصال شبكة، إنترنت، لاسلكي، بيانات، واي فاي"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi، wi-fi، تبديل، التحكم"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"رسالة نصية، مراسلة نصية، رسائل، مراسلة، تلقائي"</string>
@@ -3142,7 +3145,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"دفع، نقر، دفعات"</string>
<string name="keywords_backup" msgid="470070289135403022">"نسخ احتياطية، نسخة احتياطية"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"إيماءة"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"وجه، إلغاء قفل"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"بالوجه، فتح القفل، مصادقة، تسجيل الدخول"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei، meid، min، إصدار prl، imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"شبكة، حالة شبكة الجوّال، حالة الخدمة، قوة الإشارة، نوع شبكة الجوّال، التجوال، iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"رقم تسلسلي، إصدار الجهاز"</string>
@@ -3691,7 +3694,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"شخصي"</string>
<string name="filter_work_apps" msgid="24519936790795574">"العمل"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"التطبيقات: الكل"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"التطبيقات: متوقفة"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"تطبيقات تم إيقاف إشعاراتها"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"الفئات: أهمية ملحّة"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"الفئات: منخفضة الأهمية"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"الفئات: متوفقة"</string>
@@ -4221,11 +4224,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"حمل الهاتف للاطّلاع عليه"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"يمكنك حمل الجهاز اللوحي للاطلاع عليه"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"يمكنك حمل الجهاز للاطلاع عليه"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"عرض إيماءة التنبيه"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"للاطّلاع على الوقت والإشعارات والمعلومات الأخرى، يمكنك إلقاء نظرة على هاتفك."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"للاطّلاع على الوقت والإشعارات والمعلومات الأخرى، يمكنك إلقاء نظرة على جهازك اللوحي."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"للاطّلاع على الوقت والإشعارات والمعلومات الأخرى، يمكنك إلقاء نظرة على جهازك."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"إيماءة الوصول"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"إيماءة شاشة قفل التنشيط"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"تمرير البصمة للحصول على الإشعارات"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"تمرير بصمة الإصبع"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"للاطّلاع على الإشعارات، مرر للأسفل على جهاز استشعار بصمة الإصبع على الجزء الخلفي لهاتفك."</string>
@@ -4398,6 +4403,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"تتبّع جميع مجموعات وفترات تكرار GNSS التي لا تحتوي على دورات عمل"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"عرض مربع حوار الأعطال دائمًا"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"عرض مربع الحوار في كل مرة يتعطل فيها تطبيق"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"تحديد التطبيق الذي يستخدم ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"لم يتم تعيين تطبيق لاستخدام ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"التطبيق الذي يستخدم ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"الوصول إلى الدليل"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"الوصول إلى الدليل"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4442,24 +4450,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"تفعيل لوحة التكرار العالي الافتراضية"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"جميع الإعدادات"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"إعداداتك"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"بيانات CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"بيانات CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"اختيار شبكة"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"غير متصلة"</string>
+ <string name="network_connected" msgid="4943925032253989621">"متصلة"</string>
+ <string name="network_connecting" msgid="76404590784733557">"جارٍ الاتصال…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"تعذّر الاتصال"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"لم يتم العثور على شبكات."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"تعذّر العثور على شبكات. حاوِل مرة أخرى."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(محظورة)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"ليست هناك شريحة SIM."</string>
</resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 1372f37..b5cf811 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -178,6 +178,8 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"পূৰ্বৱৰ্তী সংযোগ হোৱা ডিভাইচবোৰ"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"আগতে সংযোগ কৰা"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ব্লুটুথ অন কৰা হ\'ল"</string>
+ <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
+ <skip />
<string name="date_and_time" msgid="9062980487860757694">"তাৰিখ আৰু সময়"</string>
<string name="choose_timezone" msgid="1362834506479536274">"সময় মণ্ডল নিৰ্বাচন কৰক"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -402,6 +404,12 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"সম্পন্ন হ\'ল"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"এই কাৰ্যত মুখমণ্ডল"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"নিজৰ ডিভাইচ আনলক কৰক"</string>
+ <!-- no translation found for security_settings_face_settings_use_face_for_apps (5751549943998662469) -->
+ <skip />
+ <!-- no translation found for security_settings_face_settings_require_attention (1638445716306615123) -->
+ <skip />
+ <!-- no translation found for security_settings_face_settings_require_attention_details (5749808567341263288) -->
+ <skip />
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"মুখমণ্ডল ডেটা আঁতৰাওক"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"নিজৰ মুখমণ্ডলৰ ডেটা উন্নত কৰক"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"আপোনাৰ মুখমণ্ডল আপোনাৰ ডিভাইচ আনলক কৰা আৰু এপসমূহ এক্সেছ কৰাত ব্যৱহাৰ কৰিব পাৰি।"<annotation id="url">"অধিক জানক"</annotation></string>
@@ -2944,7 +2952,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ডিফ\'ল্ট এপসমূহ"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ভাষা, সময়, বেক আপ, আপডে’ট"</string>
<string name="search_results_title" msgid="1796252422574886932">"ছেটিংসমূহ"</string>
- <string name="search_menu" msgid="6283419262313758339">"ছেটিংসমূহ-ত সন্ধান কৰক"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"ৱাইফাই, ৱাই-ফাই, নেটৱৰ্ক সংযোগ, ইণ্টাৰনেট, বেঁতাৰ, ডেটা, ৱাই ফাই"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"ৱাইফাই, ৱাই-ফাই, ট\'গল, নিয়ন্ত্ৰণ"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"পাঠ বাৰ্তা, পাঠ বাৰ্তা প্ৰেৰণ, বাৰ্তা, বাৰ্তা প্ৰেৰণ, ডিফ\'ল্ট"</string>
@@ -2989,7 +2996,8 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"পৰিশোধ, টিপক, ধন পৰিশোধ"</string>
<string name="keywords_backup" msgid="470070289135403022">"বেকআপ, বেক আপ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"নিৰ্দেশ"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"গৰাকীৰ মুখমণ্ডলৰদ্বাৰা আনলক"</string>
+ <!-- no translation found for keywords_face_unlock (254144854349092754) -->
+ <skip />
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl সংস্কৰণ, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"নেটৱৰ্ক, ম\'বাইল নেটৱৰ্কৰ স্থিতি, সেৱাৰ স্থিতি, সংকেতৰ ক্ষমতা, ম\'বাইল নেটৱৰ্কৰ প্ৰকাৰ, ৰ\'মিং, আইচিচিআইডি"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"ক্ৰমিক নম্বৰ, হাৰ্ডৱেৰৰ সংস্কৰণ"</string>
@@ -3483,7 +3491,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ব্যক্তিগত"</string>
<string name="filter_work_apps" msgid="24519936790795574">"কৰ্মস্থান"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"এপ্: সকলো"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"এপ্: অফ"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"অফ কৰা হ’ল"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"শ্ৰেণী: অতি গুৰুত্বপূৰ্ণ"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"শ্ৰেণীবোৰ: কম গুৰুত্বপূৰ্ণ"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"শ্ৰেণীসমূহ: বন্ধ কৰা আছে"</string>
@@ -3959,11 +3967,15 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ফোন চাবলৈ তোলক"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"টে\'বলেট চাবলৈ ওপৰলৈ উঠাওক"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"ডিভাইচ চাবলৈ ওপৰলৈ উঠাওক"</string>
+ <!-- no translation found for ambient_display_wake_screen_title (4091523525326925790) -->
+ <skip />
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"সময়, জাননী আৰু অন্য তথ্য চাবলৈ আপোনাৰ ফ’নটো হাতত তুলি লওক।"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"সময়, জাননী আৰু অন্য তথ্য চাবলৈ আপোনাৰ টেবলেটটো হাতত তুলি লওক।"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"সময়, জাননী আৰু অন্য তথ্য চাবলৈ আপোনাৰ ডিভাইচটো হাতত তুলি লওক।"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"আঙুলিৰ স্পর্শৰে স্ক্ৰীণৰ আকাৰ সলনি কৰাৰ নির্দেশনা"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <!-- no translation found for ambient_display_wake_lock_screen_title (562547995385322349) -->
+ <skip />
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"জাননীৰ বাবে ফিংগাৰপ্ৰিণ্ট ছোৱাইপ কৰক"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ফিংগাৰপ্ৰিণ্ট ছোৱাইপ কৰক"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"জাননীবিলাক চাবলৈ আপোনাৰ ফ\'নটোৰ পিছফালে থকা ফিংগাৰপ্ৰিণ্ট ছেন্সৰত ওপৰৰ পৰা তললৈ আঙুলি বুলাওক।"</string>
@@ -4108,6 +4120,12 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"কোনো উপযোগীতা অনুপাতৰ সহায় নোলোৱাকৈ GNSS কনষ্টেলেশ্বন আৰু ফ্ৰিকুৱেন্সী নিৰীক্ষণ কৰক"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"সদায় ক্ৰেশ্ব ডায়ল\'গ দেখুৱাওক"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"কোনো এপ্ ক্ৰেশ্ব হ\'লে প্ৰতিবাৰতে ডায়ল\'গ দেখুৱাওক"</string>
+ <!-- no translation found for angle_enabled_app (1841862539745838255) -->
+ <skip />
+ <!-- no translation found for angle_enabled_app_not_set (864740024581634768) -->
+ <skip />
+ <!-- no translation found for angle_enabled_app_set (226015765615525056) -->
+ <skip />
<string name="directory_access" msgid="4722237210725864244">"ডাইৰেক্টৰী ব্যৱহাৰ সম্পৰ্কীয় অনুমতিৰ ছেটিংসমূহ"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ডাইৰেক্টৰী ব্যৱহাৰ সম্পৰ্কীয় অনুমতিৰ ছেটিংসমূহ"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4152,24 +4170,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ভাৰ্শ্বুৱল উচ্চ ফ্ৰিকুএন্সী পেনেল সক্ষম কৰক"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"সকলো ছেটিং"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"আপোনাৰ ছেটিংসমূহ"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ডেটা"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ডেটা"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"নেটৱৰ্ক বাছনি কৰক"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"সংযোগ বিচ্ছিন্ন কৰা হ\'ল"</string>
+ <string name="network_connected" msgid="4943925032253989621">"সংযোগ কৰা হ’ল"</string>
+ <string name="network_connecting" msgid="76404590784733557">"সংযোগ কৰি থকা হৈছে…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"সংযোগ কৰিব পৰা নগ\'ল"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"কোনো নেটৱৰ্ক নাই।"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"নেটৱৰ্ক বিচাৰি পোৱা নগ\'ল। আকৌ চেষ্টা কৰক।"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(নিষিদ্ধ)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"কোনো ছিম কাৰ্ড নাই"</string>
</resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 3550e3d..2a12367 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Əvvəl qoşulmuş cihazlar"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Əvvəl qoşulmusunuz"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth aktivdir"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Hamısına baxın"</string>
<string name="date_and_time" msgid="9062980487860757694">"Vaxt və tarix"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Vaxt zonasını seçin"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Hazırdır"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Üzünüzdən istifadə edin"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Cihazı kiliddən çıxarın"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Tətbiq girişi və ödənişlər"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Kiliddən çıxarmaq üçün gözlərinizi açın"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Üz doğrulamasından istifadə zamanı gözləriniz açıq olmalıdır"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Üz datasını silin"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Üz datasını təkmilləşdirin"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Üzünüzdən cihazı kiliddən çıxarmaq və tətbiqlərə daxil olmaq üçün istifadə edə bilərsiniz. "<annotation id="url">"Ətraflı məlumat"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Defolt tətbiqlər"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Dil, vaxt, yedəkləmə, yeniliklər"</string>
<string name="search_results_title" msgid="1796252422574886932">"Ayarlar"</string>
- <string name="search_menu" msgid="6283419262313758339">"Ayarları axtarın"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, şəbəkə, internet, simsiz, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, aktiv, nəzarət"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mətn mesajı, mətn, mesaj, mesajlaşma, defolt"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ödəyin, tıklayın, ödəmələr"</string>
<string name="keywords_backup" msgid="470070289135403022">"yedəkləmə, yedəkləyin"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"jest"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"üz, kilidi açın"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"üz, kiliddən çıxarma, orijinal, giriş"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl versiyası, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"şəbəkə, mobil şəbəkə vəziyyəti, servis vəziyyəti, siqnalın gücü, mobil şəbəkə növü, roaminq, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"seriya nömrəsi, proqram versiyası"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Şəxsi"</string>
<string name="filter_work_apps" msgid="24519936790795574">"İş"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Tətbiqlər: Hamısı"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Tətbiqlər: Deaktiv"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Deaktiv edildi"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kateqoriyalar: Çox əhəmiyyətli"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kateqoriyalar: Az əhəmiyyətli"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kateqoriyalar: Deaktiv"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Telefonu yoxlamaq üçün qaldırın"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Planşeti yoxlamaq üçün qaldırın"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Cihazı yoxlamaq üçün qaldırın"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Oyandırma ekranı"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Vaxt, bildiriş və digər məlumatı yoxlamaq üçün telefonu götürün."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Vaxt, bildiriş və digər məlumatı yoxlamaq üçün planşeti götürün."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Vaxt, bildiriş və digər məlumatı yoxlamaq üçün cihazı götürün."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Əl işarəsi"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Oyandırma kilid ekranı"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Bildirişlər üçün barmağınızı sürüşdürün"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Barmağınızı sürüşdürün"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Bildirişləri yoxlamaq üçün, barmaq sensorunda aşağı sürüşdürün."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"İş sistemi olmadan bütün GNSS qruplaşmaları və tezliklərini izləyin"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Xəta dialoqunu həmişə göstərin"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Tətbiqdə xəta baş verdiyi zaman dialoqu göstərin"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE aktiv olan tətbiq seçin"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE aktiv olan tətbiq ayarlanmayıb"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE aktiv olan tətbiq: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Kataloq girişi"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"kataloq girişi"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Virtual Yüksək Tezlikli Paneli Aktiv Edin"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Bütün Ayarlar"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Ayarlarınız"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Datası"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Datası"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Şəbəkəni seçin"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Bağlantı kəsildi"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Qoşuldu"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Qoşulur…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Qoşulmaq mümkün olmadı"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Şəbəkə tapılmadı."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Şəbəkə tapılmadı. Yenidən cəhd edin."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(qadağandır)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM kart yoxdur"</string>
</resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 9b96c23..7e21c0b 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -180,6 +180,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Prethodno povezani uređaji"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Prethodno povezani"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth je uključen"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Prikaži sve"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datum i vreme"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Izbor vremenske zone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -405,6 +406,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Gotovo"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Koristite lice za"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"otključavanje uređaja"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Prijava u aplikacije i plaćanja"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Otvorene oči radi otključavanja"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Kada koristite potvrdu identiteta licem, oči moraju da budu otvorene."</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Uklonite podatke o licu"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Poboljšajte podatke o licu"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Koristite lice da biste otključali uređaj i pristupili aplikacijama. "<annotation id="url">"Saznajte više"</annotation></string>
@@ -2983,7 +2987,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Podrazumevane aplikacije"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Jezici, vreme, rezervne kopije, ažuriranja"</string>
<string name="search_results_title" msgid="1796252422574886932">"Podešavanja"</string>
- <string name="search_menu" msgid="6283419262313758339">"Pretražite podešavanja"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, veza sa mrežom, internet, bežično, podaci, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, uključi/isključi, kontrola"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, slanje SMS-ova, poruke, razmena poruka, podrazumevano"</string>
@@ -3028,7 +3031,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"platite, dodirnite, plaćanja"</string>
<string name="keywords_backup" msgid="470070289135403022">"rezervna kopija, praviti rezervnu kopiju"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"pokret"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"lice, otključavanje"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"lice, otključavanje, potvrda identiteta, prijavljivanje"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, verzija prl-a, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"mreža, stanje mobilne mreže, stanje usluge, jačina signala, tip mobilne mreže, roming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serijski broj, verzija hardvera"</string>
@@ -3535,7 +3538,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Lične"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Posao"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikacije: sve"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikacije: isključeno"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Isključeno"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorije: visok prioritet"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorije: nizak prioritet"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorije: isključeno"</string>
@@ -4023,11 +4026,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Podignite telefon da ga proverite"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Podignite tablet da biste ga proverili"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Podignite uređaj da biste ga proverili"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Probudite ekran"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Da biste proverili vreme, obaveštenja i druge informacije, uzmite telefon."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Da biste proverili vreme, obaveštenja i druge informacije, uzmite tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Da biste proverili vreme, obaveštenja i druge informacije, uzmite uređaj."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Pokret za doseg"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Pokret za buđenje zaključanog ekrana"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Prevucite prstom za obaveštenja"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Prevucite prstom"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Da biste proverili obaveštenja, prevucite prstom nadole po senzoru za otisak prsta na zadnjoj strani telefona."</string>
@@ -4179,6 +4184,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Prati sve GNSS konstalacije i frekvencije bez ciklusa rada"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Uvek prikazuj dijalog o otkazivanju"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Prikaži dijalog svaki put kada aplikacija otkaže"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Izaberi aplikaciju omogućenu za ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nije podešena aplikacija omogućena za ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikacija omogućena za ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Pristup direktorijumima"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"pristup direktorijumima"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4223,24 +4231,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Omogućite virtuelnu ploču visoke frekvencije"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Sva podešavanja"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Podešavanja"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS podaci"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS podaci"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Odaberite mrežu"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Veza je prekinuta"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Povezano"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Povezuje se…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Povezivanje nije uspelo"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nije pronađena nijedna mreža."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Nismo uspeli da pronađemo mreže. Probajte ponovo."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(zabranjeno)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Nema SIM kartice"</string>
</resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index b6ce5eb..87ac9ed 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -181,6 +181,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Раней падключаныя прылады"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Раней падключаныя"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth уключаны"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Паказаць усе"</string>
<string name="date_and_time" msgid="9062980487860757694">"Дата і час"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Вылучыце гадзінны пояс"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -407,6 +408,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Гатова"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Прымяняць твар, каб"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Разблакіраваць прыладу"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Уваход у праграму і плацяжы"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Адкрыць вочы для разблакіроўкі"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Калі адбываецца распазнаванне твару, вочы павінны быць адкрыты"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Выдаліць даныя твару"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Палепшыць даныя твару"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Вы можаце выкарыстоўваць свой твар для разблакіроўкі прылады і атрымання доступу да праграм. "<annotation id="url">"Даведайцеся больш"</annotation></string>
@@ -3022,7 +3026,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Стандартныя праграмы"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Мовы, час, рэзервовае капіраванне, абнаўленні"</string>
<string name="search_results_title" msgid="1796252422574886932">"Налады"</string>
- <string name="search_menu" msgid="6283419262313758339">"Пошук налад"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, злучэнне, інтэрнэт, бесправадны, даныя, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, пераключэнне, кіраванне"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"тэкставае паведамленне, адпраўка тэкставых паведамленняў, паведамленні, абмен паведамленнямі, стандартны"</string>
@@ -3067,7 +3070,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"плаціць, дакранацца, плацяжы"</string>
<string name="keywords_backup" msgid="470070289135403022">"рэзервовае капіраванне, стварыць рэзервовую копію"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"жэст"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"твар, разблакіроўка"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"твар, распазнаванне, аўтарызацыя, уваход"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, мін, версія prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"сетка, стан мабільнай сеткі, рабочы стан, моц сігналу, тып мабільнай сеткі, роўмінг, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"серыйны нумар, версія апаратнага забеспячэння"</string>
@@ -3589,7 +3592,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Персанальныя"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Працоўныя"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Праграмы: усе"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Праграмы: выключаныя"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Адключаны"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Катэгорыі: тэрміновыя"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Катэгорыі: не вельмі важныя"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Катэгорыі: выключаныя"</string>
@@ -4091,11 +4094,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Падняць тэлефон, каб праверыць апавяшчэнні"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Падніміце планшэт, каб праверыць яго"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Падніміце прыладу, каб праверыць яе"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Абудзіць экран"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Каб праверыць час, апавяшчэнні і іншую інфармацыю, вазьміце тэлефон у рукі."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Каб праверыць час, апавяшчэнні і іншую інфармацыю, вазьміце планшэт у рукі."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Каб праверыць час, апавяшчэнні і іншую інфармацыю, вазьміце прыладу ў рукі."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Жэст выцягнутай рукі"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Жэст абуджэння экрана блакіроўкі"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Правядзіце пальцам, каб убачыць апавяшчэнні"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Правесці адбітак пальца"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Каб праверыць апавяшчэнні, правядзіце пальцам уніз па сканеры адбіткаў пальцаў на заднім боку тэлефона."</string>
@@ -4254,6 +4259,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Адсочваць усе групы і частоты GNSS з выключаным працоўным цыклам"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Заўсёды паказваць дыялогавыя вокны з памылкамі"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Паказваць дыялогавае акно кожны раз, калі адбываецца збой праграмы"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Выбраць праграму з падтрымкай ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Няма праграм з падтрымкай ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Праграма з падтрымкай ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Доступ да каталога"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"доступ да каталога"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4298,24 +4306,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Уключыць віртуальную высокачастотную панэль"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Усе налады"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Вашы налады"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Даныя CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Даныя CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Выбраць сетку"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Адключана"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Падключана"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Ідзе падключэнне…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Не ўдалося падключыцца"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Сеткі не знойдзены."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Не ўдалося знайсці сеткі. Паўтарыце спробу."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(забаронена)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Няма SIM-карты"</string>
</resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 4274967..8f024cf 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"По-рано свързвани устройства"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"По-рано свързвани"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Функцията за Bluetooth е включена"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Преглед на всички"</string>
<string name="date_and_time" msgid="9062980487860757694">"Дата и час"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Избор на часова зона"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Готово"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Ползв. на лицето ви за"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Устройство: Отключв."</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Вход в приложения и плащания"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"За отключване – с отворени очи"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"При ползване на удостоверяването с лице очите ви трябва да са отворени"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Премахване на лицето"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Актуализиране на лицето ви"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Лицето ви може да се използва за отключване на устройството ви и за достъп до приложения. "<annotation id="url">"Научете повече"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Приложения по подразбиране"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Езици, час, резервно копие, актуализации"</string>
<string name="search_results_title" msgid="1796252422574886932">"Настройки"</string>
- <string name="search_menu" msgid="6283419262313758339">"Търсете в настройките"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"Wi-Fi, Wi-Fi, връзка с мрежата, интернет, безжично, пренос на данни, Wi-Fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, превключване, контрола"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, изпращане на SMS, съобщения, изпращане на съобщения, по подразбиране"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"плащане, докосване, плащания"</string>
<string name="keywords_backup" msgid="470070289135403022">"резервно копие, създаване на резервно копие"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"жест"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"лице, отключване"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"лице, отключване, удостоверяване, вход"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl версия, версия на софтуера на imei"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"мрежа, състояние на мобилната мрежа, състояние на услугата, сила на сигнала, тип мобилна мрежа, роуминг, идентификатор на карта с ИС"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"сериен номер, версия на хардуера"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Лични"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Служебни"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Приложения: Всички"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Приложения: Изключени"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Изключено"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Категории: Неотложна важност"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Категории: Малка важност"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Категории: Изключени"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Повдигане на телефона за проверка"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Повдигане за проверка на таблета"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Повдигане за проверка на устройството"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Активиране на дисплея"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"За да проверите часа, известията и друга информация, вземете телефона си в ръка."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"За да проверите часа, известията и друга информация, вземете таблета си в ръка."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"За да проверите часа, известията и друга информация, вземете устройството си в ръка."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Жест на приближаване"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Жест за активиране на заключения екран"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Преглед на известията с плъзване през сензора за отпечатъци"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Плъзгане през сензора за отпечат."</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"За да проверите известията си, плъзнете пръст надолу през сензора за отпечатъци на гърба на телефона си."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Проследяване на всички констелации и честоти на GNSS без използване на коефициент на запълване"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Диалоговият прозорец за сривове да се показва винаги"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Диалоговият прозорец да се показва всеки път, когато дадено приложение претърпи срив"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Избиране на активирано за ANGLE приложение"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Няма зададено приложение, активирано за ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Активирано за ANGLE приложение: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Достъп до директорията"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"достъп до директорията"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Активиране на виртуалния панел за висока честота"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Всички настройки"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Вашите настройки"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Данни чрез CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Данни чрез CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Избиране на мрежа"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Връзката е прекратена"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Установена е връзка"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Установява се връзка…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Не можа да се установи връзка"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Няма намерени мрежи."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Не можаха да бъдат намерени мрежи. Опитайте отново."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(забранено)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Няма SIM карта"</string>
</resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 239e32a..f462535 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -179,6 +179,8 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"আগে কানেক্ট করা ডিভাইস"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"আগে কানেক্ট করা"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ব্লুটুথ চালু হয়েছে"</string>
+ <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
+ <skip />
<string name="date_and_time" msgid="9062980487860757694">"দিন ও তারিখ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"সময় অঞ্চল বেছে নিন"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +405,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"হয়ে গেছে"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"আপনার মুখ ব্যবহার"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"আপনার ডিভাইস আনলক করুন"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"অ্যাপ সাইন-ইন ও পেমেন্ট"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"আনলক করার জন্য চোখ খুলে রাখা"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"ফেস যাচাইকরণ ব্যবহারের সময় আপনার চোখ খুলে রাখতে হবে"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"মুখের ডেটা সরান"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"আপনার মুখের ডেটা আরও ভাল করুন"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"আপনার মুখ ব্যবহার করে ডিভাইস আনলক এবং অ্যাপে অ্যাক্সেস করতে পারেন। "<annotation id="url">"আরও জানুন"</annotation></string>
@@ -1060,7 +1065,7 @@
<string name="audio_record_proc_title" msgid="4271091199976457534">"অপ্রয়োজনীয় আওয়াজ বাতিলকরণ"</string>
<string name="volume_media_description" msgid="7949355934788807863">"সঙ্গীত, ভিডিও, গেম্স, ও অন্যান্য মিডিয়া"</string>
<string name="volume_ring_description" msgid="5936851631698298989">"রিংটোন ও বিজ্ঞপ্তি"</string>
- <string name="volume_notification_description" msgid="5810902320215328321">"বিজ্ঞপ্তিগুলি"</string>
+ <string name="volume_notification_description" msgid="5810902320215328321">"বিজ্ঞপ্তি"</string>
<string name="volume_alarm_description" msgid="8322615148532654841">"অ্যালার্মগুলি"</string>
<string name="volume_ring_mute" msgid="3018992671608737202">"রিংটোন ও বিজ্ঞপ্তি মিউট করুন"</string>
<string name="volume_media_mute" msgid="3399059928695998166">"সঙ্গীত ও অন্যান্য মিডিয়া মিউট করুন"</string>
@@ -2945,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ডিফল্ট অ্যাপ"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ভাষা, সময়, ব্যাকআপ, আপডেট"</string>
<string name="search_results_title" msgid="1796252422574886932">"সেটিংস"</string>
- <string name="search_menu" msgid="6283419262313758339">"সেটিংস খুঁজুন"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"ওয়াই-ফাই, ওয়াই-ফাই, নেটওয়ার্ক কানেকশন, ইন্টারনেট, ওয়্যারলেস, ডেটা, ওয়াই-ফাই"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"ওয়াইফাই, ওয়াই-ফাই, চালু বন্ধ, নিয়ন্ত্রণ"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"টেক্সট মেসেজ, টেক্সট মেসেজ পাঠানো, মেসেজ, মেসেজ পাঠানো, ডিফল্ট"</string>
@@ -2990,7 +2994,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"অর্থপ্রদান, আলতো চাপা, পেমেন্ট"</string>
<string name="keywords_backup" msgid="470070289135403022">"ব্যাক-আপ, ব্যাক-আপ করুন"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ইঙ্গিত"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"মুখের সাহায্যে আনলক"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ফেস, আনলক, যাচাই, সাইন-ইন"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl ভার্সন, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"নেটওয়ার্ক, মোবাইল নেটওয়ার্কের অবস্থা, পরিষেবার অবস্থা, সিগন্যালের অবস্থা, মোবাইল নেটওয়ার্কের ধরন, রোমিং, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"সিরিয়াল নম্বর, হার্ডওয়্যার ভার্সন"</string>
@@ -3187,7 +3191,7 @@
<string name="lock_screen_notifications_summary_hide" msgid="8301305044690264958">"সংবেদনশীল কন্টেন্ট লুকান"</string>
<string name="lock_screen_notifications_summary_disable" msgid="859628910427886715">"কোনও বিজ্ঞপ্তি দেখাবেন না"</string>
<string name="lock_screen_notifications_interstitial_message" msgid="6164532459432182244">"আপনার ডিভাইস লক করা অবস্থায় আপনি কিভাবে বিজ্ঞপ্তি প্রদর্শন করতে চান?"</string>
- <string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"বিজ্ঞপ্তিগুলি"</string>
+ <string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"বিজ্ঞপ্তি"</string>
<string name="lock_screen_notifications_summary_show_profile" msgid="835870815661120772">"সমস্ত কর্মস্থলের বিজ্ঞপ্তির কন্টেন্ট দেখুন"</string>
<string name="lock_screen_notifications_summary_hide_profile" msgid="2005907007779384635">"কাজের সংবেদনশীল কন্টেন্ট লুকান"</string>
<string name="lock_screen_notifications_interstitial_message_profile" msgid="8307705621027472346">"আপনার ডিভাইস লক করা অবস্থায় আপনি কিভাবে প্রোফাইল বিজ্ঞপ্তিগুলি প্রদর্শন করতে চান?"</string>
@@ -3447,7 +3451,7 @@
<string name="storage_used" msgid="7128074132917008743">"ব্যবহৃত সঞ্চয়স্থানের পরিমান"</string>
<string name="change" msgid="6657848623929839991">"পরিবর্তন করুন"</string>
<string name="change_storage" msgid="600475265207060436">"স্টোরেজ পরিবর্তন করুন"</string>
- <string name="notifications_label" msgid="2872668710589600731">"বিজ্ঞপ্তিগুলি"</string>
+ <string name="notifications_label" msgid="2872668710589600731">"বিজ্ঞপ্তি"</string>
<string name="notifications_enabled" msgid="6983396130566021385">"চালু আছে"</string>
<string name="notifications_enabled_with_info" msgid="5669544704839269901">"<xliff:g id="NOTIFICATIONS_SENT">%1$s</xliff:g> / <xliff:g id="NOTIFICATIONS_CATEGORIES_OFF">%2$s</xliff:g>"</string>
<string name="notifications_disabled" msgid="1262114548434938079">"বন্ধ"</string>
@@ -3483,7 +3487,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ব্যক্তিগত"</string>
<string name="filter_work_apps" msgid="24519936790795574">"কাজ"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"অ্যাপ: সমস্ত"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"অ্যাপ: বন্ধ আছে"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"বন্ধ করা আছে"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"বিভাগগুলি: জরুরী গুরুত্বের"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"বিভাগগুলি: কম গুরুত্বের"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"বিভাগগুলি: বন্ধ আছে"</string>
@@ -3936,14 +3940,14 @@
<string name="deletion_helper_automatic_title" msgid="6605660435498272520">"অটোমেটিক"</string>
<string name="deletion_helper_manual_title" msgid="7947432164411214029">"ম্যানুয়াল"</string>
<string name="deletion_helper_preference_title" msgid="5271510052022285884">"এখনই জায়গা খালি করুন"</string>
- <string name="gesture_preference_title" msgid="5280023307132819052">"অঙ্গভঙ্গিগুলি"</string>
+ <string name="gesture_preference_title" msgid="5280023307132819052">"ইঙ্গিত"</string>
<string name="gesture_preference_summary" product="default" msgid="8627850388011956901">"আপনার ফোন নিয়ন্ত্রণ করতে দ্রুত অঙ্গভঙ্গিগুলি"</string>
<string name="gesture_preference_summary" product="tablet" msgid="4717535378272065510">"আপনার ট্যাবলেট নিয়ন্ত্রণ করার দ্রুত ইঙ্গিত"</string>
<string name="gesture_preference_summary" product="device" msgid="4205941452664950852">"আপনার ডিভাইস নিয়ন্ত্রণ করার দ্রুত ইঙ্গিত"</string>
<string name="double_tap_power_for_camera_title" msgid="64716226816032800">"ক্যামেরাতে সরাসরি যান"</string>
<string name="double_tap_power_for_camera_summary" msgid="242037150983277829">"ক্যামেরা দ্রুত খুলতে, পাওয়ার বোতাম দুবার প্রেস করুন৷ যেকোনও স্ক্রিনে কাজ করে৷"</string>
<string name="double_tap_power_for_camera_suggestion_title" msgid="6500405261202883589">"ক্যামেরাটি তাড়াতাড়ি খুলুন"</string>
- <string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"ক্যামেরা ফ্লিপ করুন"</string>
+ <string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"ক্যামেরা ফ্লিপ করা"</string>
<string name="double_twist_for_camera_mode_summary" msgid="122977081337563340"></string>
<string name="double_twist_for_camera_suggestion_title" msgid="4689410222517954869">"তাড়াতাড়ি সেলফি তুলুন"</string>
<string name="swipe_up_to_switch_apps_title" msgid="2513907834903543667">"হোম বোতামে উপরের দিকে সোয়াইপ করুন"</string>
@@ -3957,12 +3961,14 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"চেক করতে ফোনটিকে হাতে নিন"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"চেক করতে ট্যাবলেটটিকে হাতে নিন"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"চেক করতে ডিভাইসটিকে হাতে নিন"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ওয়েক-আপ ডিসপ্লে"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"সময়, বিজ্ঞপ্তি এবং অন্যান্য তথ্য দেখতে আপনার ফোনটি তুলে ধরুন।"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"সময়, বিজ্ঞপ্তি এবং অন্যান্য তথ্য দেখতে আপনার ট্যাবলেটটি তুলে ধরুন।"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"সময়, বিজ্ঞপ্তি এবং অন্যান্য তথ্য দেখতে আপনার ডিভাইসটি তুলে ধরুন।"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"সহজ অ্যাক্সেসের ইঙ্গিত"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
- <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"বিজ্ঞপ্তির জন্য আঙ্গুলের ছাপ সোয়াইপ করুন"</string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"ওয়েক লক স্ক্রিন ইঙ্গিত"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
+ <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"বিজ্ঞপ্তির জন্য আঙ্গুলের ছাপ সোয়াইপ করা"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"আঙ্গুলের ছাপ সোয়াইপ করুন"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ফোনের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নিচের দিকে সোয়াইপ করুন৷"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"আপনার বিজ্ঞপ্তিগুলি চেক করতে, আপনার ট্যাবলেটের পিছনে আঙ্গুলের ছাপ নেওয়ার সেন্সরে নিচের দিকে সোয়াইপ করুন৷"</string>
@@ -4106,6 +4112,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ডিউটি-সাইক্লিং বাদে সমস্ত কন্সটেলেশন এবং ফ্রিকোয়েন্সি ট্র্যাক করুন"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"প্রত্যেকবার ক্র্যাশ ডায়ালগ দেখাতে দিন"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"কোনও অ্যাপ ক্র্যাশ করলে প্রত্যেকবার ডায়ালগ দেখাতে দিন"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE চালু আছে এমন অ্যাপ বেছে নিন"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE চালু আছে এমন কোনও অ্যাপ্লিকেশন সেট নেই"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE চালু আছে এমন অ্যাপ্লিকেশন: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"ডিরেক্টরি অ্যাক্সেস"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ডিরেক্টরি অ্যাক্সেস"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4159,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ভার্চুয়াল উচ্চ ফ্রিকোয়েন্সি প্যানেল চালু করুন"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"সমস্ত সেটিংস"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"আপনার সেটিংস"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ডেটা"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ডেটা"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"নেটওয়ার্ক বেছে নিন"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"ডিসকানেক্ট আছে"</string>
+ <string name="network_connected" msgid="4943925032253989621">"কানেক্ট আছে"</string>
+ <string name="network_connecting" msgid="76404590784733557">"কানেক্ট হচ্ছে…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"কানেক্ট করা যায়নি"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"কোনও নেটওয়ার্ক পাওয়া যায়নি৷"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"নেটওয়ার্ক পাওয়া যায়নি। আবার চেষ্টা করুন।"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(নিষিদ্ধ)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"কোনও সিম কার্ড নেই"</string>
</resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index b934e44..9cd8b7c 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -180,6 +180,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Prethodno povezani uređaji"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Prethodno povezani"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth je uključen"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Prikaži sve"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datum i vrijeme"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Odaberite vremensku zonu"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -405,6 +406,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Gotovo"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Koristite lice za"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Otključavanje uređaja"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Prijava u aplikaciju i plaćanja"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Otvorite oči za otključavanje"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Pri korištenju autentifikacije licem morate držati oči otvorenim"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Ukloni podatke o licu"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Poboljšajte podatke o licu"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Možete koristiti lice da otključate uređaje i pristupite aplikacijama. "<annotation id="url">"Saznajte više"</annotation></string>
@@ -2252,7 +2256,7 @@
<string name="battery_auto_restriction_title" msgid="6553271897488963709">"Upotreba Upravitelja baterije"</string>
<string name="battery_auto_restriction_summary" msgid="8561335400991281062">"Otkrij kada aplikacije troše bateriju"</string>
<string name="battery_manager_on" msgid="8643310865054362396">"Uključeno / Otkrivanje kada aplikacije troše bateriju"</string>
- <string name="battery_manager_off" msgid="5473135235710343576">"Isključi"</string>
+ <string name="battery_manager_off" msgid="5473135235710343576">"Isključeno"</string>
<plurals name="battery_manager_app_restricted" formatted="false" msgid="1026141135861471129">
<item quantity="one">Ograničena je %1$d aplikacija</item>
<item quantity="few">Ograničene su %1$d aplikacije</item>
@@ -2873,7 +2877,7 @@
<string name="restriction_menu_change_pin" msgid="740081584044302775">"Promijeni PIN"</string>
<string name="app_notifications_switch_label" msgid="9124072219553687583">"Prikaži obavještenja"</string>
<string name="help_label" msgid="6886837949306318591">"Pomoć i pov. inform."</string>
- <string name="support_summary" msgid="2705726826263742491">"Članci za pomoć, telefon i chat, započinjanje"</string>
+ <string name="support_summary" msgid="2705726826263742491">"Članci za pomoć, telefon i chat, početak"</string>
<string name="user_account_title" msgid="1127193807312271167">"Račun za sadržaj"</string>
<string name="user_picture_title" msgid="7297782792000291692">"ID fotografije"</string>
<string name="extreme_threats_title" msgid="6549541803542968699">"Ekstremne prijetnje"</string>
@@ -2983,7 +2987,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Zadane aplikacije"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Jezici, vrijeme, sigurnosna kopija, ažuriranja"</string>
<string name="search_results_title" msgid="1796252422574886932">"Postavke"</string>
- <string name="search_menu" msgid="6283419262313758339">"Pretražite postavke"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, veza s mrežom, internet, bežično, podaci, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, aktivacija/deaktivacija, kontrola"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, slanje SMS-ova, poruke, slanje poruka, zadano"</string>
@@ -3028,7 +3031,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"plati, dodir, plaćanja"</string>
<string name="keywords_backup" msgid="470070289135403022">"sigurnosna kopija"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"pokret"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"otključavanje, lice"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"lice, otključaj, autentifikacija, prijava"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl verzija, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"mreža, stanje mobilne mreže, stanje usluge, jačina signala, vrsta mobilne mreže, roming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serijski broj, verzija hardvera"</string>
@@ -3498,7 +3501,7 @@
<string name="notifications_label" msgid="2872668710589600731">"Obavještenja"</string>
<string name="notifications_enabled" msgid="6983396130566021385">"Uključeno"</string>
<string name="notifications_enabled_with_info" msgid="5669544704839269901">"<xliff:g id="NOTIFICATIONS_SENT">%1$s</xliff:g>/<xliff:g id="NOTIFICATIONS_CATEGORIES_OFF">%2$s</xliff:g>"</string>
- <string name="notifications_disabled" msgid="1262114548434938079">"Isključi"</string>
+ <string name="notifications_disabled" msgid="1262114548434938079">"Isključeno"</string>
<string name="notifications_partly_blocked" msgid="592071133950126656">"Isključene kategorije: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
<string name="notifications_silenced" msgid="4728603513072110381">"Bez zvuka"</string>
<string name="notifications_redacted" msgid="4493588975742803160">"Osjetljivi sadržaj nije na zaključanom ekranu."</string>
@@ -3535,7 +3538,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Lične"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Work"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikacije: Sve"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikacije: Isključene"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Isključeno"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorije: hitno"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorije: niska važnost"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorije: Isključene"</string>
@@ -4009,7 +4012,7 @@
<string name="double_tap_power_for_camera_title" msgid="64716226816032800">"Prelazak na kameru"</string>
<string name="double_tap_power_for_camera_summary" msgid="242037150983277829">"Dodirnite dvaput dugme za uključivanje za brzo otvaranje kamere. Funkcionira na svakom ekranu."</string>
<string name="double_tap_power_for_camera_suggestion_title" msgid="6500405261202883589">"Brzo otvorite kameru"</string>
- <string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"Okretanje kamere"</string>
+ <string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"Obrtanje kamere"</string>
<string name="double_twist_for_camera_mode_summary" msgid="122977081337563340"></string>
<string name="double_twist_for_camera_suggestion_title" msgid="4689410222517954869">"Snimajte selfije brže"</string>
<string name="swipe_up_to_switch_apps_title" msgid="2513907834903543667">"Prevucite prema gore na dugmetu za Početni ekran"</string>
@@ -4023,11 +4026,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Provjera telefona kad se podigne"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Podignite za provjeru tableta"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Podignite za provjeru uređaja"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Aktiviranje ekrana"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Da provjerite vrijeme, obavještenja i druge informacije, podignite telefon."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Da provjerite vrijeme, obavještenja i druge informacije, podignite tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Da provjerite vrijeme, obavještenja i druge informacije, podignite uređaj."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Pokret uzimanja uređaja"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Pokret za prikaz mehanizma protiv stanja mirovanja"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Prevlačenje prstom za obavještenja"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Prevlačenje otiskom prsta"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Da provjerite obavještenja, prevucite prstom prema dolje po senzoru za otisak prsta na poleđini uređaja."</string>
@@ -4179,6 +4184,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Prati sve povezane panorame i frekvencije GNSS-a bez ciklusa rada"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Uvijek prikaži dijaloški okvir za pad aplikacije"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Prikaži dijaloški okvir pri svakom padu aplikacije"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Odaberite aplikaciju u kojoj je omogućen ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Aplikacija u kojoj je omogućen ANGLE nije postavljena"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikacija u kojoj je omogućen ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Pristup direktorijima"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"pristup direktorijima"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4215,7 +4223,7 @@
<string name="prevent_ringing_option_none" msgid="4656046650769569175">"Ne čini ništa"</string>
<string name="prevent_ringing_option_vibrate_summary" msgid="1157524435626890116">"Uključeno (vibracija)"</string>
<string name="prevent_ringing_option_mute_summary" msgid="4472465110708640980">"Uključeno (isključen zvuk)"</string>
- <string name="prevent_ringing_option_none_summary" msgid="5013718946609276137">"Isključi"</string>
+ <string name="prevent_ringing_option_none_summary" msgid="5013718946609276137">"Isključeno"</string>
<string name="pref_title_network_details" msgid="7186418845727358964">"Detalji o mreži"</string>
<string name="about_phone_device_name_warning" msgid="8885670415541365348">"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="devices_title" msgid="7701726109334110391">"Uređaji"</string>
@@ -4223,24 +4231,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Omogućite Virtuelnu ploču visoke frekventnosti"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Sve postavke"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Vaše postavke"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS podaci"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS podaci"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Odaberite mrežu"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Veza je prekinuta"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Povezano"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Povezivanje…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Povezivanje nije uspjelo"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nije pronađena nijedna mreža."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Nisu pronađene mreže. Pokušajte ponovo."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(zabranjeno)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Nema SIM kartice"</string>
</resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 33a2989..2e8122b 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dispositius connectats prèviament"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Connectats prèviament"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"S\'ha activat el Bluetooth"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Mostra-ho tot"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data i hora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Selecció de la zona horària"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -274,7 +275,7 @@
<string name="action_drag_label_move_up" msgid="9052210023727612540">"Mou amunt"</string>
<string name="action_drag_label_move_down" msgid="7448713844582912157">"Mou avall"</string>
<string name="action_drag_label_move_top" msgid="557081389352288310">"Mou a la part superior"</string>
- <string name="action_drag_label_move_bottom" msgid="2468642142414126482">"Mou al final"</string>
+ <string name="action_drag_label_move_bottom" msgid="2468642142414126482">"Mou a la part inferior"</string>
<string name="action_drag_label_remove" msgid="2861038147166966206">"Suprimeix l\'idioma"</string>
<string name="activity_picker_label" msgid="6295660302548177109">"Selecció de l\'activitat"</string>
<string name="device_info_label" msgid="6551553813651711205">"Informació del dispositiu"</string>
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Fet"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Utilitza la cara per"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Desbloqueja el dispositiu"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Inici de sessió i pagaments"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Obre els ulls per desbloquejar"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Els ulls han d\'estar oberts durant l\'autenticació facial"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Suprimeix les dades facials"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Millora les dades facials"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Pots utilitzar la cara per desbloquejar el dispositiu i accedir a aplicacions. "<annotation id="url">"Més informació"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Aplicacions predeterminades"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Idiomes, hora, còpia de seguretat, actualitzacions"</string>
<string name="search_results_title" msgid="1796252422574886932">"Configuració"</string>
- <string name="search_menu" msgid="6283419262313758339">"Cerca a la configuració"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wi-fi, Wi-Fi, connexió de xarxa, Internet, sense fil, dades, wifi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, commutador, control"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"missatge de text, enviar missatges de text, missatges, enviar missatges, predeterminat"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"paga, toca, pagaments"</string>
<string name="keywords_backup" msgid="470070289135403022">"còpia de seguretat, crear una còpia de seguretat"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gest"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"cara, desbloqueig"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"cara, desbloquejar, autenticació, iniciar la sessió"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versió de prl, versió de software d\'imei"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"xarxa, estat de la xarxa mòbil, estat del servei, intensitat del senyal, tipus de xarxa mòbil, itinerància, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"número de sèrie, versió de maquinari"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personals"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Professionals"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplicacions: totes"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplicacions: desactivades"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Desactivades"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categories: urgents"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categories: importància baixa"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categories: desactivades"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Aixeca per consultar-lo"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Per consultar la tauleta, aixeca-la"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Aixeca el dispositiu per consultar-lo"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Activa la pantalla"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Per veure l\'hora, les notificacions i altres dades, agafa el telèfon."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Per veure l\'hora, les notificacions i altres dades, agafa la tauleta."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Per veure l\'hora, les notificacions i altres dades, agafa el dispositiu."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gest d\'abast"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gest per activar la pantalla de bloqueig"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Fes lliscar el sensor d\'empremtes per veure notificacions"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Fes lliscar l\'empremta digital"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Per consultar les notificacions, llisca cap avall al sensor d\'empremtes digitals de la part posterior del telèfon."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"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="8889957119867262599">"Mostra sempre el quadre de diàleg de bloqueig"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Mostra el quadre de diàleg cada vegada que una aplicació es bloquegi"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Selecciona l\'aplicació compatible amb ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"No s\'ha definit cap aplicació compatible amb ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplicació compatible amb ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Accés al directori"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"accés al directori"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activa el tauler virtual d\'alta freqüència"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tota la configuració"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"La teva configuració"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Dades CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dades CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Tria la xarxa"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Desconnectada"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Connectada"</string>
+ <string name="network_connecting" msgid="76404590784733557">"S\'està connectant…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"No s\'ha pogut connectar"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"No s\'ha trobat cap xarxa."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"No s\'ha pogut trobar cap xarxa. Torna-ho a provar."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(prohibida)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"No hi ha cap targeta SIM"</string>
</resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 2d0eca7..816bfe4 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -181,6 +181,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dříve připojená zařízení"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Dříve připojeno"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth je zapnuto"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Zobrazit vše"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datum a čas"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Vybrat časové pásmo"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -407,6 +408,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Hotovo"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Použití obličeje"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Odemknutí zařízení"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Přihlašování do aplikací a platby"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Mějte otevřené oči"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Při ověřování pomocí obličeje musíte mít otevřené oči"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Odstranit obličej"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Upřesnění údajů o obličeji"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Pomocí obličeje můžete odemykat zařízení a používat aplikace. "<annotation id="url">"Další informace"</annotation></string>
@@ -3021,7 +3025,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Výchozí aplikace"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Jazyky, čas, zálohování, aktualizace"</string>
<string name="search_results_title" msgid="1796252422574886932">"Nastavení"</string>
- <string name="search_menu" msgid="6283419262313758339">"Prohledat nastavení"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, síť, připojení, internet, bezdrátové, data"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, přepnout, ovládání"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"sms, zprávy, výchozí"</string>
@@ -3066,7 +3069,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"platit, klepnout, platby"</string>
<string name="keywords_backup" msgid="470070289135403022">"záloha, zálohování"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesto"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"obličej, odemknutí"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"obličej, odemknutí, autorizace, přihlášení"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, verze prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"síť, stav mobilní sítě, stav služby, síla signálu, typ mobilní sítě, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"sériové číslo, verze hardwaru"</string>
@@ -3587,7 +3590,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Osobní"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Práce"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikace: Vše"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikace: vypnuto"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Vypnuto"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorie: Urgentní důležitost"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorie: Nízká důležitost"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorie: Vypnuto"</string>
@@ -4089,11 +4092,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Kontrola telefonu zvednutím"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Kontrola tabletu zvednutím"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Kontrola zařízení zvednutím"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Zobrazení po probuzení"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Chcete-li zobrazit čas, oznámení a další informace, zvedněte telefon."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Chcete-li zobrazit čas, oznámení a další informace, zvedněte tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Chcete-li zobrazit čas, oznámení a další informace, zvedněte zařízení."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gesto sáhnutí"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gesto blokování přechodu do režimu spánku"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Otisk prstu pro oznámení"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Přejeďte po otisku"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Chcete-li zkontrolovat oznámení, přejeďte prstem dolů po snímači otisků prstů na zadní straně telefonu."</string>
@@ -4252,6 +4257,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"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="8889957119867262599">"Vždy zobrazit dialog o pádu"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Zobrazit dialog při každém pádu aplikace"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Vyberte aplikaci podporující ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Není nastavena žádná aplikace podporující ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikace podporující ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Přístup k adresářům"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"přístup k adresářům"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4296,24 +4304,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Povolit virtuální panel vysoké frekvence"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Všechna nastavení"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Nastavení"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Data CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Vybrat síť"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Odpojeno"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Připojeno"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Připojování…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Nelze se připojit"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Žádná síť nebyla nalezena."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Nebyla nalezena žádná síť. Zkuste to znovu."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(zakázáno)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Není vložena SIM karta"</string>
</resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 37e3b6b..e0ab541 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Tidligere forbundne enheder"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Tidligere forbindelser"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth er aktiveret"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Se alle"</string>
<string name="date_and_time" msgid="9062980487860757694">"Dato og klokkeslæt"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Vælg tidszone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Udfør"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Brug ansigtet til at"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Låse din enhed op"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Applogin og betaling"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Åbn øjnene for at låse op"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Dine øjne skal være åbne, når du bruger ansigtsgodkendelse"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Fjern ansigtsdata"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Gør dine ansigtsdata bedre"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Du kan låse din enhed op og få adgang til apps ved hjælp af dit ansigt. "<annotation id="url">"Få flere oplysninger"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Standardapps"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Sprog, tid, sikkerhedskopiering, opdateringer"</string>
<string name="search_results_title" msgid="1796252422574886932">"Indstillinger"</string>
- <string name="search_menu" msgid="6283419262313758339">"Søg i indstillinger"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, netværksforbindelse, internet, trådløs, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, skift, styring"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"sms, sende sms-beskeder, beskeder, sende beskeder, standard"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"betal, tryk, betalinger"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, sikkerhedskopiér"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"bevægelse"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ansigt, lås op"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ansigt, oplåsning, godkendelse, log ind"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl version, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"netværk, mobilnetværkstilstand, netværkstilstand, signalstyrke, type mobilnetværk, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serienummer, hardwareversion"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personlig"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Arbejde"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: Alle"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: Slået fra"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Slået fra"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorier: Stor vigtighed"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorier: Lav vigtighed"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorier: Slået fra"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Løft for at tjekke telefon"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Løft for at tjekke din tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Løft for at tjekke enheden"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Aktivering af skærm"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Se klokkeslæt, underretninger og andre oplysninger, når du samler din telefon op."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Se klokkeslæt, underretninger og andre oplysninger, når du samler din tablet op."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Se klokkeslæt, underretninger og andre oplysninger, når du samler din enhed op."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Ræk ud-bevægelse"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Bevægelse til aktivering af låseskærm"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Stryg over fingeraftrykslæser for at se underretninger"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Stryg fingeraftrykslæser"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Du kan tjekke dine underretninger ved at stryge nedad på fingeraftrykslæseren på bagsiden af telefonen."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Registrer alle GNSS-konstellationer og -frekvenser uden opgavegennemløb"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Vis altid dialogboks med nedbrud"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Vis dialogboks, hver gang en app går ned"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Vælg ANGLE-aktiveret app"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Der er ikke angivet nogen ANGLE-aktiveret app"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-aktiveret app: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Mappeadgang"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"mappeadgang"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktivér det virtuelle panel for høj frekvens"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle indstillinger"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Dine indstillinger"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-data"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-data"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Vælg netværk"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Afbrudt"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Tilsluttet"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Opretter forbindelse…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Der kunne ikke oprettes forbindelse"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Der blev ikke fundet nogen netværk."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Der kunne ikke findes nogen netværk. Prøv igen."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(forbudt)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Intet SIM-kort"</string>
</resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index bb1a89e..e6ab188 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -178,6 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Zuvor verbundene Geräte"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Zuvor verbundene Geräte"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth aktiviert"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Alle ansehen"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datum & Uhrzeit"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Zeitzone wählen"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -402,6 +403,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Fertig"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Gesichtserkennung nutzen"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Gerät entsperren"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"App-Anmeldung & Zahlungen"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Bei offenen Augen entsperren"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Zur Verwendung der Gesichtserkennung müssen deine Augen geöffnet sein"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Gesichtsdaten entfernen"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Gesichtsdaten verbessern"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Du kannst dein Gerät per Gesichtserkennung entsperren und auf deine Apps zugreifen. "<annotation id="url">"Weitere Informationen"</annotation></string>
@@ -1383,7 +1387,7 @@
<string name="storage_wizard_migrate_confirm_body" msgid="4212060581792135962"><b>"Das Verschieben dauert etwa <xliff:g id="TIME">^1</xliff:g>. Dabei werden <xliff:g id="SIZE">^2</xliff:g> auf <xliff:g id="NAME">^3</xliff:g> freigegeben."</b></string>
<string name="storage_wizard_migrate_confirm_next" msgid="5509475628423823202">"Verschieben"</string>
<string name="storage_wizard_migrate_progress_title" msgid="1665479429044202868">"Daten werden verschoben…"</string>
- <string name="storage_wizard_migrate_details" msgid="3709728824651136227">"Beachte beim Verschieben deiner Daten Folgendes: \n• Entferne nicht den Datenspeicher (<xliff:g id="NAME">^1</xliff:g>). \n• Einige Apps funktionieren möglicherweise nicht. \n• Achte darauf, dass das Gerät dabei stets geladen wird."</string>
+ <string name="storage_wizard_migrate_details" msgid="3709728824651136227">"Beachte beim Verschieben deiner Daten Folgendes: \n• Entferne nicht den Datenspeicher (<xliff:g id="NAME">^1</xliff:g>). \n• Einige Apps funktionieren eventuell nicht. \n• Achte darauf, dass das Gerät dabei immer geladen wird."</string>
<string name="storage_wizard_ready_title" msgid="6553867088682695655">"<xliff:g id="NAME">^1</xliff:g> kann nun verwendet werden"</string>
<string name="storage_wizard_ready_external_body" msgid="2879508114260597474">"Du kannst deine <xliff:g id="NAME">^1</xliff:g> nun zum Speichern von Fotos und anderen Medien einsetzen."</string>
<string name="storage_wizard_ready_internal_body" msgid="122532674037860197">"Deine neue <xliff:g id="NAME">^1</xliff:g> steht nun für dich bereit. \n\nWenn du Fotos, Dateien und App-Daten auf dieses Gerät verschieben möchtest, gehe zu \"Einstellungen\" > \"Speicher\"."</string>
@@ -2692,7 +2696,7 @@
<string name="vpn_menu_delete" msgid="8098021690546891414">"Profil löschen"</string>
<string name="vpn_menu_lockdown" msgid="7863024538064268139">"Durchgehend aktives VPN"</string>
<string name="vpn_no_vpns_added" msgid="5002741367858707244">"Keine VPNs hinzugefügt"</string>
- <string name="vpn_always_on_summary" msgid="2821344524094363617">"Verbindung zu VPN stets beibehalten"</string>
+ <string name="vpn_always_on_summary" msgid="2821344524094363617">"Verbindung zu VPN immer beibehalten"</string>
<string name="vpn_always_on_summary_not_supported" msgid="592304911378771510">"Von dieser App nicht unterstützt"</string>
<string name="vpn_always_on_summary_active" msgid="8800736191241875669">"Always-On-Modus aktiviert"</string>
<string name="vpn_require_connection" msgid="8388183166574269666">"Verbindungen ohne VPN blockieren"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Standard-Apps"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Sprachen, Zeit, Sicherung und Updates"</string>
<string name="search_results_title" msgid="1796252422574886932">"Einstellungen"</string>
- <string name="search_menu" msgid="6283419262313758339">"Einstellungen durchsuchen"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wlan, wi-fi, netzwerkverbindung, internet, kabellos, daten, wifi, wi-fi, w-lan"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wlan, umschalten, steuern"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"textnachricht, sms, nachrichten, messaging, standard"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"Bezahlen, tippen, Zahlungen"</string>
<string name="keywords_backup" msgid="470070289135403022">"Sicherung, sicherung"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"Bewegung"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"per gesichtserkennung entsperren"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"Face, Unlock, Gesichtserkennung, Anmeldung"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl version, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"netzwerk, status des mobilfunknetz, servicestatus, signalstärke, art des mobilfunknetzes, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"seriennummer, hardwareversion"</string>
@@ -3112,7 +3115,7 @@
<string name="zen_mode_block_effect_summary_sound" msgid="1065107568053759972">"Töne und Vibration"</string>
<string name="zen_mode_block_effect_summary_some" msgid="3635646031575107456">"Töne, Vibration und einige visuelle Elemente von Benachrichtigungen"</string>
<string name="zen_mode_block_effect_summary_all" msgid="1213328945418248026">"Töne, Vibration und visuelle Elemente von Benachrichtigungen"</string>
- <string name="zen_mode_blocked_effects_footer" msgid="5710896246703497760">"Benachrichtigungen für grundlegende Smartphone-Aktivitäten und den Smartphone-Status werden niemals ausgeblendet"</string>
+ <string name="zen_mode_blocked_effects_footer" msgid="5710896246703497760">"Benachrichtigungen für grundlegende Smartphone-Aktivitäten und den Smartphone-Status werden nie ausgeblendet"</string>
<string name="zen_mode_no_exceptions" msgid="7653433997399582247">"Keine"</string>
<string name="zen_mode_other_options" msgid="520015080445012355">"sonstige Optionen"</string>
<string name="zen_mode_add" msgid="90014394953272517">"Hinzufügen"</string>
@@ -3198,7 +3201,7 @@
<string name="notification_group_title" msgid="7180506440133859601">"Kategoriegruppe für Benachrichtigungen"</string>
<string name="notification_importance_title" msgid="4368578960344731828">"Verhalten"</string>
<string name="notification_importance_unspecified" msgid="6622173510486113958">"Akustisches Signal erlauben"</string>
- <string name="notification_importance_blocked" msgid="7938180808339386300">"Niemals Benachrichtigungen anzeigen"</string>
+ <string name="notification_importance_blocked" msgid="7938180808339386300">"Nie Benachrichtigungen anzeigen"</string>
<string name="notification_importance_min" msgid="9054819132085066824">"Lautlos anzeigen und minimieren"</string>
<string name="notification_importance_low" msgid="2445139943005315690">"Ohne Ton anzeigen"</string>
<string name="notification_importance_default" msgid="5958338024601957516">"Akustisches Signal"</string>
@@ -3271,9 +3274,9 @@
<string name="notification_toggle_on" msgid="650145396718191048">"Aktiviert"</string>
<string name="notification_toggle_off" msgid="2142010737190671762">"Deaktiviert"</string>
<string name="app_notification_block_title" msgid="4069351066849087649">"Alle blockieren"</string>
- <string name="app_notification_block_summary" msgid="4744020456943215352">"Diese Benachrichtigungen niemals anzeigen"</string>
+ <string name="app_notification_block_summary" msgid="4744020456943215352">"Diese Benachrichtigungen nie anzeigen"</string>
<string name="notification_content_block_title" msgid="5854232570963006360">"Benachrichtigungen anzeigen"</string>
- <string name="notification_content_block_summary" msgid="7746185794438882389">"Benachrichtigungen niemals in der Leiste oder auf Peripheriegeräten anzeigen"</string>
+ <string name="notification_content_block_summary" msgid="7746185794438882389">"Benachrichtigungen nie in der Leiste oder auf Peripheriegeräten anzeigen"</string>
<string name="notification_badge_title" msgid="6370122441168519809">"App-Benachrichtigungspunkt erlauben"</string>
<string name="notification_channel_badge_title" msgid="2240827899882847087">"App-Benachrichtigungspunkt anzeigen"</string>
<string name="app_notification_override_dnd_title" msgid="7867458246395884830">"\"Nicht stören\" deaktivieren"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Nutzer"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Geschäftlich"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: alle"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: deaktiviert"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Deaktiviert"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorien: sehr hohe Wichtigkeit"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorien: geringe Wichtigkeit"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorien: deaktiviert"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Beim Hochnehmen des Telefons Display anzeigen"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Tablet hochnehmen, um das Display anzusehen"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Gerät hochnehmen, um das Display anzusehen"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Bildschirm aktivieren"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Smartphone in die Hand nehmen, um Uhrzeit, Benachrichtigungen und andere Informationen anzusehen."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Tablet in die Hand nehmen, um Uhrzeit, Benachrichtigungen und andere Informationen anzusehen."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Gerät in die Hand nehmen, um Uhrzeit, Benachrichtigungen und andere Informationen anzusehen."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Greifbewegung"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Bewegung zum Aktivieren des Sperrbildschirms"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Benachrichtigungen durch Wischen über Fingerabdrucksensor öffnen"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Fingerabdrucksensor verwenden"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Auf der Rückseite des Smartphones über den Fingerabdrucksensor nach unten wischen, um Benachrichtigungen zu lesen."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Alle GNSS-Konstellationen und -Frequenzen ohne GNSS-Zyklus erfassen"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Absturzdialogfeld immer anzeigen"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Dialogfeld bei App-Abstürzen immer anzeigen"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE-App auswählen"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Keine ANGLE-App festgelegt"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-App: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Verzeichniszugriff"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"verzeichniszugriff"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Virtuelles High-Frequency-Steuerfeld aktivieren"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle Einstellungen"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Meine Einstellungen"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-Daten"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-Daten"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Netzwerk auswählen"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Nicht verbunden"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Verbunden"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Verbindung wird hergestellt…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Verbindung nicht möglich"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Keine Netzwerke gefunden."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Netzwerke nicht gefunden. Bitte versuch es noch einmal."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(nicht zulässig)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Keine SIM-Karte"</string>
</resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index d9ee09e..a9bf0c3 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Συσκευές που έχουν συνδεθεί στο παρελθόν"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Συνδέθηκαν στο παρελθόν"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Ενεργοποιημένο Bluetooth"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Προβολή όλων"</string>
<string name="date_and_time" msgid="9062980487860757694">"Ημερομηνία & ώρα"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Επιλέξτε ζώνη ώρας"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Τέλος"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Χρήση προσώπου για"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Ξεκλείδωμα συσκευής"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Σύνδεση και πληρωμές σε εφαρμ."</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Ανοιχτά μάτια για ξεκλείδωμα"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Για τον έλεγχο ταυτ. προσώπου, τα μάτια σας θα πρέπει να είναι ανοιχτά"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Κατάργ. δεδομ. προσ."</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Βελτίωση δεδομένων προσώπου"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Το πρόσωπό σας μπορεί να χρησιμοποιηθεί για το ξεκλείδωμα της συσκευής σας και για πρόσβαση στις εφαρμογές. "<annotation id="url">"Μάθετε περισσότερα"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Προεπιλεγμένες εφ."</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Γλώσσες, ώρα, δημιουργία αντιγράφων ασφαλείας, ενημερώσεις"</string>
<string name="search_results_title" msgid="1796252422574886932">"Ρυθμίσεις"</string>
- <string name="search_menu" msgid="6283419262313758339">"Αναζήτηση ρυθμίσεων"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, σύνδεση δικτύου, διαδίκτυο, ασύρματο, δεδομένα, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, ενλλαγή, έλεγχος"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"μήνυμα κειμένου, ανταλλαγή γραπτών μηνυμάτων, μηνύματα, ανταλλαγή μηνυμάτων, προεπιλογή"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"πληρωμή, πάτημα, πληρωμές"</string>
<string name="keywords_backup" msgid="470070289135403022">"αντίγραφο ασφαλείας, δημιουργία αντιγράφου ασφαλείας"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"κίνηση"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"πρόσωπο, ξεκλείδωμα"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"πρόσωπο, ξεκλείδωμα, εξουσιοδότηση, σύνδεση"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"αριθμός imei, meid, min, έκδοση prl, sv αριθμού imei"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"δίκτυο, κατάσταση δικτύου κινητής τηλεφωνίας, κατάσταση υπηρεσίας, ισχύς σήματος, τύπος δικτύου κινητής τηλεφωνίας, περιαγωγή, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"σειριακός αριθμός, έκδοση εξοπλισμού"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Προσωπικό"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Εργασία"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Εφαρμογές: Όλες"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Εφαρμογές: Απενεργοποιημένες"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Απενεργοποιημένες"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Κατηγορίες: Επείγουσες"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Κατηγορίες: Μικρής βαρύτητας"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Κατηγορίες: Απενεργοποιημένες"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Σηκώστε το για να δείτε"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Σηκώστε το tablet για να το ελέγξετε"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Σηκώστε τη συσκευή για να την ελέγξετε"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Οθόνη ξυπνήματος"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Για να ελέγξετε την ώρα, τις ειδοποιήσεις και άλλες πληροφορίες, σηκώστε το τηλέφωνό σας."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Για να ελέγξετε την ώρα, τις ειδοποιήσεις και άλλες πληροφορίες, σηκώστε το tablet σας."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Για να ελέγξετε την ώρα, τις ειδοποιήσεις και άλλες πληροφορίες, σηκώστε τη συσκευή σας."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Κίνηση προσέγγισης"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Κίνηση για wake lock οθόνης"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Σύρετε στον αισθητήρα δακτυλικών αποτυπωμάτων για ειδοποιήσεις"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Ολίσθηση δακτυλ. αποτυπ."</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Για να ελέγξετε τις ειδοποιήσεις σας, σύρετε προς τα κάτω στον αισθητήρα δακτυλικών αποτυπωμάτων στο πίσω μέρος του τηλεφώνου."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Παρακολούθηση όλων των πανοραμικών συνθέσεων και των συχνοτήτων GNSS χωρίς κύκλο λειτουργιών"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Να εμφανίζεται πάντα το παράθυρο διαλόγου σφάλματος"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Να εμφανίζεται το παράθυρο διαλόγου κάθε φορά που παρουσιάζεται σφάλμα σε κάποια εφαρμογή"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Επιλογή εφαρμογής με δυνατότητα χρήσης ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Δεν έχει οριστεί κάποια εφαρμογή με δυνατότητα χρήσης ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Εφαρμογή με δυνατότητα χρήσης ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Πρόσβαση στον κατάλογο"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"πρόσβαση στον κατάλογο"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ενεργοποίηση εικονικού πίνακα υψηλών συχνοτήτων"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Όλες οι ρυθμίσεις"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Οι ρυθμίσεις σας"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Δεδομένα CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Δεδομένα CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Επιλογή δικτύου"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Αποσυνδέθηκε"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Συνδέθηκε"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Σύνδεση…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Αδυναμία σύνδεσης"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Δεν βρέθηκαν δίκτυα."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Δεν ήταν δυνατή η εύρεση δικτύων. Δοκιμάστε ξανά."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(απαγορευμένο)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Δεν υπάρχει κάρτα SIM"</string>
</resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index e338450..a442510 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Previously connected devices"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Previously connected"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth turned on"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"See all"</string>
<string name="date_and_time" msgid="9062980487860757694">"Date & time"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Choose time zone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Done"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Use your face to"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Unlock your device"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"App sign-in & payments"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Eyes open to unlock"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"When using face authentication, your eyes must be open"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Remove face data"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Improve your face data"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Your face can be used to unlock your device and access apps. "<annotation id="url">"Learn more"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Default apps"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Languages, time, backup, updates"</string>
<string name="search_results_title" msgid="1796252422574886932">"Settings"</string>
- <string name="search_menu" msgid="6283419262313758339">"Search in Settings"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, network connection, internet, wireless, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, toggle, control"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"text message, texting, messages, messaging, default"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pay, tap, payments"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesture"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"face, unlock"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"face, unlock, auth, sign in"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl version, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"network, mobile network state, service state, signal strength, mobile network type, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serial number, hardware version"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personal"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Work"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: All"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: Turned off"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Turned off"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categories: Urgent importance"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categories: Low importance"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categories: Turned off"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Lift to check phone"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Lift to check tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Lift to check device"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Wake up display"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"To check time, notifications and other info, pick up your phone."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"To check time, notifications and other info, pick up your tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"To check time, notifications and other info, pick up your device."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Reach gesture"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Wake lock screen gesture"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Swipe fingerprint for notifications"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Swipe fingerprint"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"To check your notifications, swipe down on the fingerprint sensor on the back of your phone."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Always show crash dialogue"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Show dialogue every time an app crashes"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Select ANGLE enabled app"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"No ANGLE enabled application set"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE enabled application: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Directory access"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"directory access"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Enable Virtual High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"All Settings"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Your Settings"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Data"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Data"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Choose network"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Disconnected"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Connected"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Connecting…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Couldn’t connect"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"No networks found."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
</resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 662cdbd..dbb84e2 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Previously connected devices"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Previously connected"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth turned on"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"See all"</string>
<string name="date_and_time" msgid="9062980487860757694">"Date & time"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Choose time zone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Done"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Use your face to"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Unlock your device"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"App sign-in & payments"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Eyes open to unlock"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"When using face authentication, your eyes must be open"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Remove face data"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Improve your face data"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Your face can be used to unlock your device and access apps. "<annotation id="url">"Learn more"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Default apps"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Languages, time, backup, updates"</string>
<string name="search_results_title" msgid="1796252422574886932">"Settings"</string>
- <string name="search_menu" msgid="6283419262313758339">"Search in Settings"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, network connection, internet, wireless, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, toggle, control"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"text message, texting, messages, messaging, default"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pay, tap, payments"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesture"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"face, unlock"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"face, unlock, auth, sign in"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl version, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"network, mobile network state, service state, signal strength, mobile network type, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serial number, hardware version"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personal"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Work"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: All"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: Turned off"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Turned off"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categories: Urgent importance"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categories: Low importance"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categories: Turned off"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Lift to check phone"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Lift to check tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Lift to check device"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Wake up display"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"To check time, notifications and other info, pick up your phone."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"To check time, notifications and other info, pick up your tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"To check time, notifications and other info, pick up your device."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Reach gesture"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Wake lock screen gesture"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Swipe fingerprint for notifications"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Swipe fingerprint"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"To check your notifications, swipe down on the fingerprint sensor on the back of your phone."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Always show crash dialogue"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Show dialogue every time an app crashes"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Select ANGLE enabled app"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"No ANGLE enabled application set"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE enabled application: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Directory access"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"directory access"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Enable Virtual High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"All Settings"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Your Settings"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Data"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Data"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Choose network"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Disconnected"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Connected"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Connecting…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Couldn’t connect"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"No networks found."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
</resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index e338450..a442510 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Previously connected devices"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Previously connected"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth turned on"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"See all"</string>
<string name="date_and_time" msgid="9062980487860757694">"Date & time"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Choose time zone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Done"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Use your face to"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Unlock your device"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"App sign-in & payments"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Eyes open to unlock"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"When using face authentication, your eyes must be open"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Remove face data"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Improve your face data"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Your face can be used to unlock your device and access apps. "<annotation id="url">"Learn more"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Default apps"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Languages, time, backup, updates"</string>
<string name="search_results_title" msgid="1796252422574886932">"Settings"</string>
- <string name="search_menu" msgid="6283419262313758339">"Search in Settings"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, network connection, internet, wireless, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, toggle, control"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"text message, texting, messages, messaging, default"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pay, tap, payments"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesture"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"face, unlock"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"face, unlock, auth, sign in"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl version, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"network, mobile network state, service state, signal strength, mobile network type, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serial number, hardware version"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personal"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Work"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: All"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: Turned off"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Turned off"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categories: Urgent importance"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categories: Low importance"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categories: Turned off"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Lift to check phone"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Lift to check tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Lift to check device"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Wake up display"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"To check time, notifications and other info, pick up your phone."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"To check time, notifications and other info, pick up your tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"To check time, notifications and other info, pick up your device."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Reach gesture"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Wake lock screen gesture"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Swipe fingerprint for notifications"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Swipe fingerprint"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"To check your notifications, swipe down on the fingerprint sensor on the back of your phone."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Always show crash dialogue"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Show dialogue every time an app crashes"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Select ANGLE enabled app"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"No ANGLE enabled application set"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE enabled application: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Directory access"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"directory access"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Enable Virtual High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"All Settings"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Your Settings"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Data"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Data"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Choose network"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Disconnected"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Connected"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Connecting…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Couldn’t connect"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"No networks found."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
</resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index e338450..a442510 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Previously connected devices"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Previously connected"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth turned on"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"See all"</string>
<string name="date_and_time" msgid="9062980487860757694">"Date & time"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Choose time zone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Done"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Use your face to"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Unlock your device"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"App sign-in & payments"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Eyes open to unlock"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"When using face authentication, your eyes must be open"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Remove face data"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Improve your face data"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Your face can be used to unlock your device and access apps. "<annotation id="url">"Learn more"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Default apps"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Languages, time, backup, updates"</string>
<string name="search_results_title" msgid="1796252422574886932">"Settings"</string>
- <string name="search_menu" msgid="6283419262313758339">"Search in Settings"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, network connection, internet, wireless, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, toggle, control"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"text message, texting, messages, messaging, default"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pay, tap, payments"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesture"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"face, unlock"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"face, unlock, auth, sign in"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl version, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"network, mobile network state, service state, signal strength, mobile network type, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serial number, hardware version"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personal"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Work"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: All"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: Turned off"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Turned off"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categories: Urgent importance"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categories: Low importance"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categories: Turned off"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Lift to check phone"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Lift to check tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Lift to check device"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Wake up display"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"To check time, notifications and other info, pick up your phone."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"To check time, notifications and other info, pick up your tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"To check time, notifications and other info, pick up your device."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Reach gesture"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Wake lock screen gesture"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Swipe fingerprint for notifications"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Swipe fingerprint"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"To check your notifications, swipe down on the fingerprint sensor on the back of your phone."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Always show crash dialogue"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Show dialogue every time an app crashes"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Select ANGLE enabled app"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"No ANGLE enabled application set"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE enabled application: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Directory access"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"directory access"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Enable Virtual High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"All Settings"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Your Settings"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Data"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Data"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Choose network"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Disconnected"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Connected"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Connecting…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Couldn’t connect"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"No networks found."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
</resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index d89c39d..5c0edeb 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -178,6 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Previously connected devices"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Previously connected"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth turned on"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"See all"</string>
<string name="date_and_time" msgid="9062980487860757694">"Date & time"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Choose time zone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -402,6 +403,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Done"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Use your face to"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Unlock your device"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"App sign-in & payments"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Eyes open to unlock"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"When using face authentication, your eyes must be open"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Remove face data"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Improve your face data"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Your face can be used to unlock your device and access apps. "<annotation id="url">"Learn more"</annotation>""</string>
@@ -2944,7 +2948,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Default apps"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Languages, time, backup, updates"</string>
<string name="search_results_title" msgid="1796252422574886932">"Settings"</string>
- <string name="search_menu" msgid="6283419262313758339">"Search settings"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, network connection, internet, wireless, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, toggle, control"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"text message, texting, messages, messaging, default"</string>
@@ -2989,7 +2992,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pay, tap, payments"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesture"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"face, unlock"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"face, unlock, auth, sign in"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl version, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"network, mobile network state, service state, signal strength, mobile network type, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serial number, hardware version"</string>
@@ -3482,7 +3485,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personal"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Work"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: All"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: Turned off"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Turned off"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categories: Urgent importance"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categories: Low importance"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categories: Turned off"</string>
@@ -3956,11 +3959,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Lift to check phone"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Lift to check tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Lift to check device"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Wake up display"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"To check time, notifications, and other info, pick up your phone."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"To check time, notifications, and other info, pick up your tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"To check time, notifications, and other info, pick up your device."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Reach gesture"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Wake lock screen gesture"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Swipe fingerprint for notifications"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Swipe fingerprint"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"To check your notifications, swipe down on the fingerprint sensor on the back of your phone."</string>
@@ -4105,6 +4110,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Track all GNSS constellations and frequencies with no duty cycling"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Always show crash dialog"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Show dialog every time an app crashes"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Select ANGLE enabled app"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"No ANGLE enabled application set"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE enabled application: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Directory access"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"directory access"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4159,4 +4167,5 @@
<string name="empty_networks_list" msgid="2578752112731781190">"No networks found."</string>
<string name="network_query_error" msgid="7487714485362598410">"Couldn’t find networks. Try again."</string>
<string name="forbidden_network" msgid="4626592887509826545">"(forbidden)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"No SIM card"</string>
</resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 96b5e4d..28e2ed1 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dispositivos conectados previamente"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Conectados anteriormente"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Se activó el Bluetooth"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Ver todo"</string>
<string name="date_and_time" msgid="9062980487860757694">"Fecha y hora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Elige la zona horaria"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Listo"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Usa el rostro para"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Desbloquea el disp."</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Acceso a apps y pagos"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Ojos abiertos para desbloquear"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Si usas la autenticación facial, debes mantener los ojos abiertos"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Quitar datos rostro"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Mejora los datos faciales"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Usa el reconocimiento facial para desbloquear el dispositivo y acceder a las apps. "<annotation id="url">"Más información"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Apps predeterminadas"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Idiomas, hora, copia de seguridad, actualizaciones"</string>
<string name="search_results_title" msgid="1796252422574886932">"Configuración"</string>
- <string name="search_menu" msgid="6283419262313758339">"Buscar en la configuración"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"Wi-Fi, wi-fi, conexión de red, Internet, inalámbrico, datos, wifi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"Wi-Fi, activar o desactivar, control"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mensaje de texto, mensajes de texto, mensajes, mensajería, predeterminado"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pagar, presionar, pagos"</string>
<string name="keywords_backup" msgid="470070289135403022">"copia de seguridad, copia"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesto"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"desbloqueo, facial"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"rostro, desbloqueo, autorización, acceder"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versión de prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"red, estado de la red móvil, estado del servicio, potencia de la señal, tipo de red móvil, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"número de serie, versión de hardware"</string>
@@ -3481,7 +3484,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personales"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Trabajo"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: Todas"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: Desactivadas"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Desactivadas"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categoría: Urgente"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categoría: Poca importancia"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categoría: Desactivadas"</string>
@@ -3955,11 +3958,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Levantar el teléfono para revisarlo"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Levanta la tablet para revisarla"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Levanta el dispositivo para revisarlo"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Activar pantalla"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Para consultar la hora, las notificaciones y otra información, levanta el teléfono."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Para consultar la hora, las notificaciones y otra información, levanta la tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Para consultar la hora, las notificaciones y otra información, levanta el dispositivo."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gesto tomar"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gesto para activar la pantalla bloqueada"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Deslizar tu huella para ver notificaciones"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Deslizar huella digital"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Para ver las notificaciones, desliza el dedo hacia abajo en el sensor de huellas digitales ubicado en la parte posterior del teléfono."</string>
@@ -4104,6 +4109,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Seguir todas las frecuencias y constelaciones de GNSS sin ciclo de funciones"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Mostrar siempre el cuadro de diálogo de bloqueos"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Mostrar el cuadro de diálogo cada vez que falle una app"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Seleccionar app compatible con ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"No se estableció ninguna app compatible con ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"App compatible con ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Acceso al directorio"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"acceso al directorio"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4148,24 +4156,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Habilitar panel virtual de alta frecuencia"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Toda la configuración"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Tu configuración"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Datos de CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Datos de CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Elegir una red"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Desconectado"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Conectado"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Conectando…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"No se pudo establecer conexión"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"No se encontraron redes."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"No se encontraron redes. Vuelve a intentarlo."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(prohibida)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Sin tarjeta SIM"</string>
</resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 767fbb3..7693839 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dispositivos conectados previamente"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Conectados previamente"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth activado"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Ver todo"</string>
<string name="date_and_time" msgid="9062980487860757694">"Fecha y hora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Elige una zona horaria"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -191,7 +192,7 @@
<string name="proxy_settings_title" msgid="9049437837600320881">"Proxy"</string>
<string name="proxy_clear_text" msgid="5555400754952012657">"Borrar"</string>
<string name="proxy_port_label" msgid="5655276502233453400">"Puerto del proxy"</string>
- <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Omitir proxy para"</string>
+ <string name="proxy_exclusionlist_label" msgid="7700491504623418701">"Saltarproxy para"</string>
<string name="proxy_defaultView_text" msgid="6387985519141433291">"Restaurar valores predeterminados"</string>
<string name="proxy_action_text" msgid="2957063145357903951">"Ok"</string>
<string name="proxy_hostname_label" msgid="8490171412999373362">"Nombre de host del proxy"</string>
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Listo"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Usa el reconocimiento facial para"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Desbloquear el dispositivo"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Inicio de sesión y pagos"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Ojos abiertos para desbloquear"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Cuando uses la autenticación facial, abre los ojos"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Eliminar datos faciales"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Mejorar tus datos faciales"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Puedes desbloquear el dispositivo y acceder a tus aplicaciones mediante el reconocimiento facial. "<annotation id="url">"Más información"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Aplicaciones predeter."</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Idioma, hora, copias de seg. y actualizaciones"</string>
<string name="search_results_title" msgid="1796252422574886932">"Ajustes"</string>
- <string name="search_menu" msgid="6283419262313758339">"Buscar ajustes"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi‑fi, conexión de red, internet, inalámbrica, datos, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi‑fi, alternar, controlar"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mensaje de texto, enviar mensajes, mensajes, sms, predeterminado"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pagar, tocar, pagos"</string>
<string name="keywords_backup" msgid="470070289135403022">"copia de seguridad, copia seguridad"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesto"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"desbloqueo facial"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"cara, desbloquear, autorización, iniciar sesión"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versión de prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"red, estado de la red móvil, estado del servicio, intensidad de la señal, tipo de red móvil, itinerancia, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"número de serie, versión de hardware"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personales"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Trabajo"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplicaciones: todas"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplicaciones: desactivadas"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Desactivadas"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categorías: urgente"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categorías: poca importancia"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categorías: desactivadas"</string>
@@ -3908,7 +3911,7 @@
<string name="bluetooth_disabled" msgid="6244000672828617410">"Desactivado"</string>
<string name="bluetooth_connected_summary" msgid="7672528674593152862">"Conectado a <xliff:g id="ID_1">%1$s</xliff:g>"</string>
<string name="bluetooth_connected_multiple_devices_summary" msgid="9173661896296663932">"Conectado a varios dispositivos"</string>
- <string name="demo_mode" msgid="2798762752209330277">"Modo de demostración de IU del sistema"</string>
+ <string name="demo_mode" msgid="2798762752209330277">"Modo de demostración de UI del sistema"</string>
<string name="dark_ui_mode" msgid="4176511670311366886">"Modo oscuro"</string>
<string name="dark_ui_mode_title" msgid="3471395820322819817">"Establecer modo oscuro"</string>
<string name="quick_settings_developer_tiles" msgid="5947788063262762448">"Ajustes rápidos de mosaicos de desarrolladores"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Levantar el teléfono para consultarlo"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Levantar el tablet para comprobar las notificaciones"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Levantar el dispositivo para comprobar las notificaciones"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Activar pantalla"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Coge el teléfono para consultar la hora, las notificaciones y otra información."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Coge el tablet para consultar la hora, las notificaciones y otra información."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Coge el dispositivo para consultar la hora, las notificaciones y otra información."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gesto de alcance"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gesto para mostrar pantalla de bloqueo"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Deslizar por el sensor de huellas para abrir notificaciones"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Deslizar huella digital"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Para ver tus notificaciones, desliza el dedo hacia abajo en el sensor de huellas digitales situado en la parte trasera del teléfono."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Registrar todas las frecuencias y constelaciones de GNSS sin ciclo de servicio"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Mostrar siempre el cuadro de diálogo de bloqueos"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Mostrar el cuadro de diálogo cuando una aplicación falle"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Seleccionar una aplicación para usar ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"No se ha seleccionado ninguna aplicación para usar ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplicación para usar ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Acceso al directorio"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"acceso al directorio"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Habilitar el panel virtual de alta frecuencia"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Todos los ajustes"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Tus ajustes"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Datos de CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Datos de CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Elegir red"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Desconectada"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Conectada"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Conectando…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"No se ha podido conectar"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"No se ha encontrado ninguna red."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"No se ha encontrado ninguna red. Vuelve a intentarlo."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(prohibida)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"No hay ninguna tarjeta SIM"</string>
</resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 6e0d50f..bd7a4a4 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Varem ühendatud seadmed"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Eelnevalt ühendatud"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth on sisse lülitatud"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Kuva kõik"</string>
<string name="date_and_time" msgid="9062980487860757694">"Kuupäev ja kellaaeg"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Ajavööndi valimine"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Valmis"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Kasutage oma nägu"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Seadme avamine"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Rakendusse sisselog. ja maksed"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Avamiseks silmad avatud"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Näotuvastuse kasutamiseks peavad teie silmad olema avatud"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Eemalda näoandmed"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Näoandmete täiustamine"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Võite oma nägu kasutada seadme avamiseks ja rakendustele juurdepääsemiseks. "<annotation id="url">"Lisateave"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Vaikerakendused"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Keeled, aeg, varundamine, värskendused"</string>
<string name="search_results_title" msgid="1796252422574886932">"Seaded"</string>
- <string name="search_menu" msgid="6283419262313758339">"Otsige seadetest"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, võrguühendus, internet, juhtmeta, andmed, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, WiFi, lüliti, juhtimine"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"tekstsõnum, tekstsõnumi saatmine, sõnumid, sõnumside, vaikeseade"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"maksa, puuduta, maksed"</string>
<string name="keywords_backup" msgid="470070289135403022">"varukoopia, varundamine"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"liigutus"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"Face Unlock"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"nägu, avamine, autentimine, sisselogimine"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl-i versioon, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"võrk, mobiilsidevõrgu olek, teenuse olek, signaali tugevus, mobiilsidevõrgu tüüp, rändlus, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"seerianumber, riistvaraversioon"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Isiklik"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Töö"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Rakendused: kõik"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Rakendused: välja lülitatud"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Välja lülitatud"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategooriad: kiireloomuline"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategooriad: vähetähtis"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategooriad: välja lülitatud"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Telefoni kontrollimiseks tõstmine"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Tahvelarvuti kontrollimiseks tõstke seda"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Seadme kontrollimiseks tõstke seda"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Ekraani äratamine"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Kellaaja, märguannete ja muu teabe vaatamiseks võtke telefon kätte."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Kellaaja, märguannete ja muu teabe vaatamiseks võtke tahvelarvuti kätte."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Kellaaja, märguannete ja muu teabe vaatamiseks võtke seade kätte."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Kättevõtmisliigutus"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Äratuslukuekraani liigutus"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Sõrmejälje pühkimine märguannete vaatamiseks"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Sõrmejälje pühkimine"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Märguannete kontrollimiseks pühkige telefoni tagaküljel oleval sõrmejäljeanduril alla."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Jälgi kõiki GNSS-i radu ja sagedusi ilma töötsüklita"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Kuva alati kokkujooksmise dialoog"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Dialoog kuvatakse alati, kui rakendus kokku jookseb"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Valige rakendus, milles ANGLE on lubatud"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Seadistatud pole ühtegi rakendust, milles ANGLE on lubatud"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Rakendus, milles ANGLE on lubatud: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Juurdepääs kaustale"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"juurdepääs kataloogile"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Luba virtuaalne kõrgsageduslik paneel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Kõik seaded"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Teie seaded"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-i andmed"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-i andmed"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Vali võrk"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Ühendus on katkestatud"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Ühendatud"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Ühendamine …"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Ühendust ei saanud luua"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Võrke ei leitud."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Võrke ei õnnestunud leida. Proovige uuesti."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(keelatud)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM-kaarti pole"</string>
</resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index e86b44c..f5e6e61 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Aurrez konektatutako gailuak"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Aurretik konektatutakoak"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Aktibatu da Bluetooth konexioa"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Ikusi guztiak"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data eta ordua"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Aukeratu ordu-zona"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Eginda"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Erabili aurpegia hauetarako:"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Desblokeatu gailua"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Aplikazioetan saioa hastea eta ordainketak"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Desblokeatzeko, ireki begiak"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Aurpegiaren bidez autentifikatzeko, ireki begiak"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Kendu aurpegiaren datuak"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Hobetu aurpegiaren datuak"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Gailua desblokeatzeko eta aplikazioetan sartzeko erabil dezakezu aurpegia. "<annotation id="url">"Lortu informazio gehiago"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Aplikazio lehenetsiak"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Hizkuntzak, ordua, babeskopiak, eguneratzeak"</string>
<string name="search_results_title" msgid="1796252422574886932">"Ezarpenak"</string>
- <string name="search_menu" msgid="6283419262313758339">"Bilatu ezarpenetan"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, sareko konexioa, internet, haririk gabekoa, datuak, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, aldatu, kontrola"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"testu-mezua, testu-mezuak bidali, mezuak, mezularitza, lehenetsia"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ordaindu, ukitu, ordainketak"</string>
<string name="keywords_backup" msgid="470070289135403022">"babeskopia, segurtasun kopia"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"keinua"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"aurpegia, desblokeatzea"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"aurpegia, desblokeatzea, autentifikazioa, hasi saioa"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl bertsioa, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"sarea, sare mugikorraren egoera, zerbitzuaren egoera, seinalearen indarra, sare mugikor mota, ibiltaritza, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serie-zenbakia, hardwarearen bertsioa"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Pertsonalak"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Lanekoak"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikazioak: guztiak"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikazioak: desaktibatutakoak"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Desaktibatuta"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategoriak: premiazkoak"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategoriak: garrantzi txikikoak"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategoriak: desaktibatutakoak"</string>
@@ -3950,18 +3953,20 @@
<string name="swipe_up_to_switch_apps_summary" msgid="5367798220225997418">"Aplikazioz aldatzeko, pasatu hatza gora Hasiera botoian, eta pasa ezazu berriro aplikazio guztiak ikusteko. Edozein pantailatan funtzionatzen du. Jada ez dago ikuspegi orokorraren botoia pantailaren behealdean eskuinetara."</string>
<string name="swipe_up_to_switch_apps_suggestion_title" msgid="1465200107913259595">"Probatu Hasiera botoi berria"</string>
<string name="swipe_up_to_switch_apps_suggestion_summary" msgid="4825314186907812743">"Aktibatu aplikazioz aldatzeko keinu berria"</string>
- <string name="ambient_display_title" product="default" msgid="5144814600610448504">"Sakatu birritan telefonoa bertan dagoela ikusteko"</string>
+ <string name="ambient_display_title" product="default" msgid="5144814600610448504">"Sakatu birritan telefonoa bertan dagoena ikusteko"</string>
<string name="ambient_display_title" product="tablet" msgid="8688795028609563837">"Sakatu birritan tableta bertan dagoela ikusteko"</string>
<string name="ambient_display_title" product="device" msgid="3423781975742145894">"Sakatu birritan gailua bertan dagoela ikusteko"</string>
<string name="ambient_display_summary" msgid="8534654210539169707">"Ordua, jakinarazpenak eta bestelako informazioa ikusteko, sakatu pantaila birritan."</string>
- <string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Jaso telefonoa bertan dagoela ikusteko"</string>
+ <string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Jaso telefonoa bertan dagoena ikusteko"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Jaso tableta bertan dagoela ikusteko"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Jaso gailua bertan dagoela ikusteko"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Esnarazi pantaila"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Ordua, jakinarazpenak eta bestelako informazioa ikusteko, hartu telefonoa."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Ordua, jakinarazpenak eta bestelako informazioa ikusteko, hartu tableta."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Ordua, jakinarazpenak eta bestelako informazioa ikusteko, hartu gailua."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Hartzeko keinua"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Pantaila esnarazteko keinua"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Pasatu hatza sentsoretik jakinarazpenak ikusteko"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Pasatu hatza sentsoretik"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Jakinarazpenei begiratu bat emateko, pasatu hatza behera telefonoaren atzealdeko hatz-marken sentsorean."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Egin GNSS konstelazio eta maiztasun guztien jarraipena, eginbeharren ziklorik gabe"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Erakutsi beti hutsegiteen leihoak"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Erakutsi leiho bat aplikazioren batek huts egiten duen bakoitzean"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Gaitu ANGLE-rekiko bateragarritasuna"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Ez da gaitu ANGLE-rekiko bateragarritasuna"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-rekin bateragarria den aplikazioa: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Direktoriorako sarbidea"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"direktoriorako sarbidea"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Gaitu zehaztasun handiko panel birtuala"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Ezarpen guztiak"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Ezarpenak"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS datuak"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS datuak"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Aukeratu sarea"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Deskonektatuta"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Konektatuta"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Konektatzen…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Ezin izan da konektatu"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Ez da aurkitu sarerik."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Ezin izan da aurkitu sarerik. Saiatu berriro."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(debekatuta)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Ez dago SIM txartelik"</string>
</resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 4d89593..5ac72e3 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"دستگاههایی که قبلاً متصل شدهاند"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"قبلاً متصلشده"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"بلوتوث روشن شد"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"دیدن همه"</string>
<string name="date_and_time" msgid="9062980487860757694">"تاریخ و زمان"</string>
<string name="choose_timezone" msgid="1362834506479536274">"انتخاب منطقهٔ زمانی"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"تمام"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"استفاده از چهره برای"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"باز کردن قفل دستگاه"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ورودبهسیستم برنامه و پرداختها"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"برای باز کردن قفل، چشمهایتان را باز کنید"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"هنگام استفاده از احراز هویت چهره، چشمهایتان باید باز باشد"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"حذف دادههای چهره"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"بهبود دادههای چهره"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"میتوانید از چهرهتان برای باز کردن قفل دستگاه و دسترسی به برنامهها استفاده کنید. "<annotation id="url">"بیشتر بدانید"</annotation></string>
@@ -1956,7 +1960,7 @@
<string name="accessibility_screen_magnification_short_summary" msgid="3411979839172752057">"برای بزرگنمایی، ۳ بار ضربه بزنید"</string>
<string name="accessibility_screen_magnification_navbar_short_summary" msgid="3693116360267980492">"برای بزرگنمایی، روی دکمهای ضربه بزنید"</string>
<string name="accessibility_screen_magnification_summary" msgid="5258868553337478505"><b>"برای بزرگ کردن"</b>"، ۳ ضربه سریع روی صفحه بزنید.\n"<ul><li>"برای پیمایش، دو یا چند انگشتتان را روی صفحه بکشید"</li>\n<li>"برای تنظیم بزرگنمایی، دو یا چند انگشتتان را نزدیک یا دور کنید"</li></ul>\n\n<b>"برای بزرگنمایی موقت"</b>"، ۳ ضربه سریع روی صفحه بزنید و ضربه سوم انگشتتان را نگهدارید.\n"<ul><li>"برای حرکت در صفحه، روی صفحه بکشید"</li>\n<li>"برای کوچک کردن صفحه، انگشتتان را بردارید"</li></ul>\n\n"برای بزرگ کردن صفحه، نمیتوانید از صفحهکلید و نواز پیمایش استفاده کنید."</string>
- <string name="accessibility_screen_magnification_navbar_summary" msgid="1996584694050087161">"زمانیکه درشتنمایی روشن است، برای درشتنمایی سریع از دکمه «دسترسپذیری» در پایین صفحه استفاده کنید.\n\n"<b>"برای بزرگنمایی"</b>"، روی دکمه «دسترسپذیری» ضربه بزنید، سپس روی جایی از صفحه ضربه بزنید.\n"<ul><li>"برای پیمایش، دو یا چند انگشتتان را روی صفحه بکشید"</li>\n<li>"برای تنظیم بزرگنمایی، دو یا چند انگشتتان را نزدیک یا دور کنید"</li></ul>\n\n<b>"برای بزرگنمایی موقت"</b>"، روی دکمه «دسترسپذیری» ضربه بزنید، سپس جایی از صفحه را لمس کنید و نگهدارید.\n"<ul><li>"برای حرکت در صفحه، روی آن بکشید"</li>\n<li>"برای کوچک کردن صفحه، انگشتتان را بلند کنید"</li></ul>\n\n"برای بزرگ کردن صفحه، نمیتوانید از صفحهکلید یا نوار پیمایش استفاده کنید."</string>
+ <string name="accessibility_screen_magnification_navbar_summary" msgid="1996584694050087161">"زمانیکه درشتنمایی روشن است، برای درشتنمایی سریع از دکمه «دسترسپذیری» در پایین صفحه استفاده کنید.\n\n"<b>"برای بزرگنمایی"</b>"، روی دکمه «دسترسپذیری» ضربه بزنید، سپس روی جایی از صفحه ضربه بزنید.\n"<ul><li>"برای پیمایش، دو یا چند انگشتتان را روی صفحه بکشید"</li>\n<li>"برای تنظیم بزرگنمایی، دو یا چند انگشتتان را نزدیک یا دور کنید"</li></ul>\n\n<b>"برای بزرگنمایی موقت"</b>"، روی دکمه «دسترسپذیری» ضربه بزنید، سپس جایی از صفحه را لمس کنید و نگهدارید.\n"<ul><li>"برای حرکت در صفحه، روی آن بکشید"</li>\n<li>"برای دورنمایی، انگشتتان را بلند کنید"</li></ul>\n\n"برای نزدیکنمایی، نمیتوانید از صفحهکلید یا نوار پیمایش استفاده کنید."</string>
<string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="70533120652758190">"دکمه دسترسپذیری روی <xliff:g id="SERVICE">%1$s</xliff:g> تنظیم شده است. برای استفاده از درشتنمایی، دکمه دسترسپذیری را لمس کنید و نگهدارید، سپس درشتنمایی را انتخاب کنید."</string>
<string name="accessibility_global_gesture_preference_title" msgid="2048884356166982714">"میانبر کلید بلندی صدا"</string>
<string name="accessibility_shortcut_service_title" msgid="4779360749706905640">"سرویس میانبر"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"برنامههای پیشفرض"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"زبان، زمان، پشتیبانگیری و بهروزرسانی"</string>
<string name="search_results_title" msgid="1796252422574886932">"تنظیمات"</string>
- <string name="search_menu" msgid="6283419262313758339">"جستجوی تنظیمات"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi، Wi-Fi، اتصال شبکه، اینترنت، بیسیم، داده، wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi، wi-fi، روشن/خاموش کردن، کنترل کردن"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"پیامک، ارسال پیامک، پیامها، پیامرسانی، پیشفرض"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"پرداخت کردن، ضربه زدن، پرداختها"</string>
<string name="keywords_backup" msgid="470070289135403022">"پشتیبانگیری، پشتیبان"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"اشاره"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"چهره، باز کردن قفل"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"چهره، باز کردن قفل، احراز هویت، ورود به سیستم"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei، meid، min، نسخه prl، imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"شبکه، وضعیت شبکه همراه، وضعیت سرویس، شدت سیگنال، نوع شبکه همراه، رومینگ، iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"شماره سریال، نسخه سختافزار"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"شخصی"</string>
<string name="filter_work_apps" msgid="24519936790795574">"کاری"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"برنامهها: همه موارد"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"برنامهها: موارد خاموش"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"خاموش"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"دستهها: موارد با اهمیت فوری"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"دستهها: موارد کماهمیت"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"دستهها: موارد خاموش"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"برای بررسی تلفن، آن را بردارید"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"برای بررسی رایانه لوحی، آن را بردارید"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"برای بررسی دستگاه، آن را بردارید"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"روشن کردن نمایشگر"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"برای بررسی زمان، اعلانها و اطلاعات دیگر، تلفنتان را انتخاب کنید"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"برای بررسی زمان، اعلانها و اطلاعات دیگر، رایانه لوحیتان را انتخاب کنید"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"برای بررسی زمان، اعلانها و اطلاعات دیگر، دستگاهتان را انتخاب کنید"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"اشاره دست بردن بهسمت چیزی"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"اشاره بیدار کردن صفحه قفل"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"تند کشیدن اثرانگشت برای اعلانها"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"تند کشیدن اثرانگشت"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"برای بررسی اعلانها، انگشتتان را روی حسگر اثرانگشت (در پشت تلفن) تند به پایین بکشید."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"بدون دوره کاری همه زنجیره عکسهای پانوراما و فرکانسها را ردیابی کنید."</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"همیشه کادر گفتگوی خرابی نمایش داده شود"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"نمایش کادر گفتگو هنگامی که برنامهای خراب میشود"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"برنامه دارای ANGLE فعال انتخاب کنید"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"هیچ برنامه دارای ANGLE فعال تنظیم نشده است"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"برنامه دارای ANGLE فعال: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"دسترسی به فهرست راهنما"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"دسترسی به فهرست راهنما"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"فعال کردن پانل مجازی بسامد بالا"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"همه تنظیمات"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"تنظیمات شما"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"دادههای CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"دادههای CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"انتخاب شبکه"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"اتصال قطع شد"</string>
+ <string name="network_connected" msgid="4943925032253989621">"متصل"</string>
+ <string name="network_connecting" msgid="76404590784733557">"درحال اتصال…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"متصل نشد"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"شبکهای پیدا نشد."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"شبکهها پیدا نشدند. دوباره امتحان کنید."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ممنوع است)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"سیمکارت موجود نیست"</string>
</resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 901469d..a5c4519 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Aiemmin liitetyt laitteet"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Aiemmin liitetyt"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth käytössä"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Näytä kaikki"</string>
<string name="date_and_time" msgid="9062980487860757694">"Päivämäärä ja aika"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Valitse aikavyöhyke"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Valmis"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Kasvotoiminnot"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Laitteen avaaminen"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Sovelluskirjautuminen, maksut"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Tunnistus silmät auki"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Silmien on oltava auki kasvojentunnistusta varten"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Poista kasvodata"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Paranna kasvodataa"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Voit avata laitteesi ja käyttää sovelluksia kasvojesi avulla. "<annotation id="url">"Lisätietoja"</annotation></string>
@@ -993,7 +997,7 @@
<string name="wifi_tether_disabled_by_airplane" msgid="414480185654767932">"Ei käytettävissä, koska lentokonetila on päällä"</string>
<string name="wifi_calling_settings_title" msgid="4102921303993404577">"Wi-Fi-puhelut"</string>
<string name="wifi_calling_suggestion_title" msgid="5702964371483390024">"Laajenna puhelumahdollisuuksia Wi‑Fillä"</string>
- <string name="wifi_calling_suggestion_summary" msgid="1331793267608673739">"Paranna kattavuutta ottamalla Wi-Fi-puhelut käyttöön"</string>
+ <string name="wifi_calling_suggestion_summary" msgid="1331793267608673739">"Paranna tavoittavuutta ottamalla Wi-Fi-puhelut käyttöön"</string>
<string name="wifi_calling_mode_title" msgid="2164073796253284289">"Puheluasetus"</string>
<string name="wifi_calling_mode_dialog_title" msgid="8149690312199253909">"Wi-Fi-puhelutila"</string>
<string name="wifi_calling_roaming_mode_title" msgid="1565039047187685115">"Roaming-asetus"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Oletussovellukset"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Kielet, aika, varmuuskopiointi, päivitykset"</string>
<string name="search_results_title" msgid="1796252422574886932">"Asetukset"</string>
- <string name="search_menu" msgid="6283419262313758339">"Hae asetuksista"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, verkkoyhteys, internet, langaton, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, päälle/pois, hallinta"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"tekstiviesti, tekstailu, viestit, viestittely, oletus"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"maksa, napauta, maksut"</string>
<string name="keywords_backup" msgid="470070289135403022">"varmuuskopiointi, varmuuskopio"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ele"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"kasvot, avaaminen"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"kasvot, avaaminen, todennus, kirjautuminen"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl-versio, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"verkko, mobiiliverkon tila, yhteyden tila, signaalinvoimakkuus, mobiiliverkon tyyppi, verkkovierailu, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"sarjanumero, laitteistoversio"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Henkilökohtaiset"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Työ"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Sovellukset: kaikki"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Sovellukset: ei käytössä"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Poistettu käytöstä"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Luokat: kiireellinen"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Luokat: ei kovin tärkeä"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Luokat: ei käytössä"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Tarkista ilmoitukset nostamalla puhelimesi"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Tarkista ilmoitukset nostamalla tablettisi"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Tarkista ilmoitukset nostamalla laitteesi"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Näytön aktivointi"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Ota puhelin käteesi, niin näet ajan, ilmoitukset ja muita tietoja."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Ota tabletti käteesi, niin näet ajan, ilmoitukset ja muita tietoja."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Ota laite käteesi, niin näet ajan, ilmoitukset ja muita tietoja."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Tavoitteluele"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Lukitusnäytön aktivointiele"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Pyyhkäise ilmoitukset esiin"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Sormenjäljen pyyhkäisy"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Voit katsoa ilmoitukset pyyhkäisemällä puhelimen takaosassa olevasta sormenjälkitunnistimesta alaspäin."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Seuraa kaikkia GNSS-kuvioita ja ‑taajuuksia, joissa ei ole pulssisuhdetta."</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Näytä aina kaatumisikkuna"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Näytä valintaikkuna aina, kun sovellus kaatuu."</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Valitse ANGLE-yhteensopiva sovellus"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Ei määritettyä ANGLE-yhteensopivaa sovellusta"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-yhteensopiva sovellus: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Hakemiston käyttöoikeus"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"hakemiston käyttöoikeus"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ota käyttöön virtuaalinen korkeataajuuspaneeli"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Kaikki asetukset"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Omat asetukset"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-data"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-data"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Valitse verkko"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Yhteys katkaistu"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Yhdistetty"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Yhdistetään…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Yhdistäminen epäonnistui"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Ei verkkoja"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Verkkoja ei löytynyt. Yritä uudelleen."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(kielletty)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Ei SIM-korttia"</string>
</resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 0483273..63e1f61 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Appareils précédemment connectés"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Connecté précedemment"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth activé"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Tout afficher"</string>
<string name="date_and_time" msgid="9062980487860757694">"Date et heure"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Sélectionner le fuseau horaire"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Terminé"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Util. votre visage pour"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Déverrouiller votre appareil"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Connex. et paiements dans applis"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Yeux ouverts pour déverrouillage"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Lorsque vous utilisez l\'authent. visage, vos yeux doivent être ouverts"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Suppr. données visage"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Améliorer données des visages"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Votre visage peut être utilisé pour déverrouiller votre appareil et accéder aux applications. "<annotation id="url">"En savoir plus"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Applications par défaut"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Langues, sauvegardes, mises à jour"</string>
<string name="search_results_title" msgid="1796252422574886932">"Paramètres"</string>
- <string name="search_menu" msgid="6283419262313758339">"Rechercher dans les paramètres"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, connexion réseau, internet, sans fil, données, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, activer, désactiver, gestion"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"message texte, SMS, messages, messagerie, par défaut"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"payer, toucher, paiements"</string>
<string name="keywords_backup" msgid="470070289135403022">"sauvegarde, sauvegarder"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"geste"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"visage, déverrouiller"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"visage, déverrouiller, authentification, se connecter"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"iiem, idem, min, version de la liste d\'itinérance préférée, iiem sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"réseau, état du réseau cellulaire, état du service, puissance du signal, type de réseau cellulaire, itinérance, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"numéro de série, version matérielle"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personnel"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Travail"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Applications : toutes"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Applis : notifications bloquées"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Désactivées"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Catégories : importance urgente"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Catégories : importance faible"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Catégories : notif. bloquées"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Saisir pour consulter le téléphone"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Saisissez la tablette pour consulter les notifications"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Saisissez l\'appareil pour consulter les notifications"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Réactiver l\'écran"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Pour vérifier l\'heure, vos notifications et d\'autres renseignements, saisissez votre téléphone."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Pour vérifier l\'heure, vos notifications et d\'autres renseignements, saisissez votre tablette."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Pour vérifier l\'heure, vos notifications et d\'autres renseignements, saisissez votre appareil."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Geste atteindre"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Geste de verrou de réveil de l\'écran"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Balayer lecteur d\'empreintes pour voir notif."</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Balayer empreinte"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Pour consulter vos notifications, passer votre doigt de haut en bas sur le capteur d\'empreintes digitales à l\'arrière du téléphone."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"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="8889957119867262599">"Toujours afficher la fenêtre de plantage"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Afficher la fenêtre chaque fois qu\'une application plante"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Sélectionnez l\'application compatible avec ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Aucune application compatible avec ANGLE n\'a été définie"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Application compatible avec ANGLE : <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Accès au répertoire"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"accès au répertoire"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activer le panneau virtuel haute fréquence"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tous les paramètres"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Vos paramètres"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Données CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Données CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Choisir un réseau"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Déconnecté"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Connecté"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Connexion en cours…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Impossible de se connecter"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Aucun réseau trouvé."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Impossible de trouver des réseaux. Réessayez."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(interdit)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Aucune carte SIM"</string>
</resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index e77767f..a8aef53 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Appareils connectés précédemment"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Connecté précedemment"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth activé"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Tout afficher"</string>
<string name="date_and_time" msgid="9062980487860757694">"Date et heure"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Sélectionner le fuseau horaire"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"OK"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Utiliser visage pour"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Déverrouiller appareil"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Connexion applis et paiements"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Yeux ouverts pour déverrouil."</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Si vous utilisez l\'authentification faciale, vous devez avoir les yeux ouverts"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Suppr. données visage"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Améliorer les données du visage"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Vous pouvez utiliser votre visage pour déverrouiller votre appareil et accéder à des applications. "<annotation id="url">"En savoir plus"</annotation></string>
@@ -1094,7 +1098,7 @@
<string name="color_mode_option_natural" msgid="5013837483986772758">"Naturel"</string>
<string name="color_mode_option_boosted" msgid="8588223970257287524">"Contrasté"</string>
<string name="color_mode_option_saturated" msgid="4569683960058798843">"Saturé"</string>
- <string name="color_mode_option_automatic" msgid="7996505473528529568">"Adaptative"</string>
+ <string name="color_mode_option_automatic" msgid="7996505473528529568">"Adaptatif"</string>
<string name="color_mode_summary_natural" msgid="6624188642920403099">"N\'utiliser que des couleurs proches de la réalité"</string>
<string name="color_mode_summary_automatic" msgid="4669516973360709431">"Ajuster entre les couleurs vives et proches de la réalité"</string>
<string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"Changer automatiquement d\'orientation lors de la rotation de la tablette"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Applications par défaut"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Langues, date et heure, sauvegarde, mises à jour"</string>
<string name="search_results_title" msgid="1796252422574886932">"Paramètres"</string>
- <string name="search_menu" msgid="6283419262313758339">"Rechercher dans les paramètres"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, connexion réseau, internet, sans fil, données, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, activer/désactiver, contrôle"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, envoyer un SMS, messages, envoyer un message, par défaut"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"payer, appuyer, paiements"</string>
<string name="keywords_backup" msgid="470070289135403022">"sauvegarde, sauvegarder"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"geste"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"Face Unlock"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"visage, déverrouiller, authentifier, se connecter"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, version prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"réseau, état du réseau mobile, état du service, force du signal, type de réseau mobile, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"numéro de série, version logicielle"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personnelles"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Professionnelles"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Applications : toutes"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Applications désactivées"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Désactivées"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Catégories : urgent"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Catégories : importance faible"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Catégories : désactivées"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Saisir le téléphone pour le consulter"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Saisir la tablette pour la consulter"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Saisir l\'appareil pour le consulter"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Activer l\'écran"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Pour afficher l\'heure, les notifications et d\'autres informations, saisissez votre téléphone."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Pour afficher l\'heure, les notifications et d\'autres informations, saisissez votre tablette."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Pour afficher l\'heure, les notifications et d\'autres informations, saisissez votre appareil."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Geste de saisie"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Geste pour afficher l\'écran wakelock"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Utiliser le lecteur d\'empreinte pour afficher les notifications"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Balayer lecteur empreinte"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Pour consulter vos notifications, passez votre doigt de haut en bas sur le lecteur d\'empreinte digitale à l\'arrière du téléphone."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Effectuer le suivi de toutes les fréquences et constellations GNSS sans rapport cyclique"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Toujours afficher une boîte de dialogue en cas de plantage"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Afficher une boîte de dialogue chaque fois qu\'une application plante"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Sélectionner une application compatible avec ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Aucune application compatible avec ANGLE n\'est définie"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Application compatible avec ANGLE : <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Accès à l\'annuaire"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"accès à l\'annuaire"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activer le panneau virtuel haute fréquence"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tous les paramètres"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Vos paramètres"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Données CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Données CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Sélectionner un réseau"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Déconnecté"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Connecté"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Connexion…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Impossible de se connecter"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Aucun réseau trouvé."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Réseaux introuvables. Veuillez réessayer."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(interdit)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Pas de carte SIM"</string>
</resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 100d315..ac4007d 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dispositivos previamente conectados"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Dispositivos conectados previamente"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"O Bluetooth está activado"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Ver todos os dispositivos"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data e hora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Seleccionar zona horaria"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Feito"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Usar a cara para"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Desbloquear dispos."</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Pagos/inicio de sesión en apps"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Ollos abertos para desbloquear"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Ao usar a autenticación facial, debes ter os ollos abertos"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Quitar datos da cara"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Mellorar datos da túa cara"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Podes usar a cara para desbloquear o teu dispositivo e acceder ás aplicacións. "<annotation id="url">"Máis información"</annotation></string>
@@ -2946,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Aplicacións predeterminadas"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Idiomas, hora, copia de seguranza, actualizacións"</string>
<string name="search_results_title" msgid="1796252422574886932">"Configuración"</string>
- <string name="search_menu" msgid="6283419262313758339">"Buscar na configuración"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, conexión de rede, Internet, sen fíos, datos"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, activar, desactivar, control"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mensaxe de texto, envío de mensaxes de texto, mensaxes, mensaxería, predeterminado"</string>
@@ -2991,7 +2994,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pagar, tocar, pagos"</string>
<string name="keywords_backup" msgid="470070289135403022">"copia de seguranza, facer copia de seguranza"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"xesto"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"facial, desbloqueo"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"cara, desbloqueo, autenticar, iniciar sesión"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versión de prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"rede, estado da rede de telefonía móbil, estado do servizo, intensidade do sinal, tipo de rede de telefonía móbil, itinerancia, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"número de serie, versión do hardware"</string>
@@ -3246,7 +3249,7 @@
<string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Pantalla superposta"</string>
<string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permitir pantalla superposta"</string>
<string name="picture_in_picture_app_detail_summary" msgid="1264019085827708920">"Permite que esta aplicación cree unha ventá de pantalla superposta mentres estea aberta ou despois de saír dela (por exemplo, para continuar visualizando un vídeo). A ventá móstrase sobre as demais aplicacións que esteas utilizando."</string>
- <string name="manage_zen_access_title" msgid="2611116122628520522">"Acceso en modo Non molestar"</string>
+ <string name="manage_zen_access_title" msgid="2611116122628520522">"Acceso a Non molestar"</string>
<string name="zen_access_empty_text" msgid="8772967285742259540">"Ningunha aplicación instalada solicitou acceso en modo Non molestar"</string>
<string name="loading_notification_apps" msgid="5031818677010335895">"Cargando aplicacións..."</string>
<string name="app_notifications_off_desc" msgid="8289223211387083447">"Segundo solicitaches, Android bloquea a visualización de notificacións desta aplicación neste dispositivo"</string>
@@ -3305,9 +3308,9 @@
<string name="zen_mode_unknown_app_set_behavior" msgid="2558968232814237874">"Agora non se poden cambiar estas opcións de configuración. Unha aplicación activou automaticamente o modo Non molestar co comportamento personalizado."</string>
<string name="zen_mode_qs_set_behavior" msgid="6200424436456086312">"Agora non se poden cambiar estas opcións de configuración. Activouse manualmente o modo Non molestar co comportamento personalizado."</string>
<string name="zen_schedule_rule_type_name" msgid="6163149826036287324">"Hora"</string>
- <string name="zen_schedule_rule_enabled_toast" msgid="3379499360390382259">"Estableceuse a norma automática para activar Non molestar durante as horas especificadas"</string>
+ <string name="zen_schedule_rule_enabled_toast" msgid="3379499360390382259">"Estableceuse a norma automática para activar o modo Non molestar durante as horas especificadas"</string>
<string name="zen_event_rule_type_name" msgid="6503468472212606158">"Evento"</string>
- <string name="zen_event_rule_enabled_toast" msgid="6910577623330811480">"Norma automática establecida para activar Non molestar durante os eventos especificados"</string>
+ <string name="zen_event_rule_enabled_toast" msgid="6910577623330811480">"Norma automática establecida para activar o modo Non molestar durante os eventos especificados"</string>
<string name="zen_mode_event_rule_calendar" msgid="8787906563769067418">"Durante os eventos de"</string>
<string name="zen_mode_event_rule_summary_calendar_template" msgid="5135844750232403975">"Durante os eventos de <xliff:g id="CALENDAR">%1$s</xliff:g>"</string>
<string name="zen_mode_event_rule_summary_any_calendar" msgid="4936646399126636358">"calquera calendario"</string>
@@ -3484,7 +3487,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Persoais"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Do traballo"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplicacións: todas"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplicacións: desactivadas"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Notificacións desactivadas"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categorías: relevancia urxente"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categorías: relevancia baixa"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categorías: desactivadas"</string>
@@ -3951,18 +3954,20 @@
<string name="swipe_up_to_switch_apps_summary" msgid="5367798220225997418">"Para cambiar de aplicacións, pasa o dedo cara arriba no botón de inicio. Pásao de novo para ver todas as aplicacións. Este xesto funciona en calquera pantalla, así que na parte inferior dereita, xa non terás o botón Visión xeral."</string>
<string name="swipe_up_to_switch_apps_suggestion_title" msgid="1465200107913259595">"Proba o novo botón de inicio"</string>
<string name="swipe_up_to_switch_apps_suggestion_summary" msgid="4825314186907812743">"Activa o novo xesto para cambiar de aplicacións"</string>
- <string name="ambient_display_title" product="default" msgid="5144814600610448504">"Tocar dúas veces para consultar o teléfono"</string>
+ <string name="ambient_display_title" product="default" msgid="5144814600610448504">"Dobre toque para consultar o teléfono"</string>
<string name="ambient_display_title" product="tablet" msgid="8688795028609563837">"Tocar dúas veces para consultar a tableta"</string>
<string name="ambient_display_title" product="device" msgid="3423781975742145894">"Tocar dúas veces para consultar o dispositivo"</string>
<string name="ambient_display_summary" msgid="8534654210539169707">"Para consultar a hora, as notificacións e outra información, toca a pantalla dúas veces."</string>
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Levantar teléfono para consultalo"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Levantar a tableta para consultala"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Levantar o dispositivo para consultalo"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Activar a pantalla de bloqueo"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Para consultar a hora, as notificacións e outros datos, colle o teléfono."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Para consultar a hora, as notificacións e outros datos, colle a tableta."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Para consultar a hora, as notificacións e outros datos, colle o dispositivo."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Xesto de alcance coa man"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Xesto para activar a pantalla de bloqueo"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Dedo no sensor para ver notificacións"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Pasar dedo impr. dixital"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Para consultar as notificacións, pasa o dedo cara abaixo sobre o sensor de impresión dixital situado na parte traseira do teléfono."</string>
@@ -4107,6 +4112,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"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="8889957119867262599">"Mostrar sempre o cadro de diálogo de fallos"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Mostra o cadro de diálogo cada vez que falla unha aplicación"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Seleccionar aplicación compatible con ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Non se definiu ningunha aplicación compatible con ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplicación compatible con ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Acceso ao directorio"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"acceso ao directorio"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4135,9 +4143,9 @@
<string name="battery_suggestion_title" product="device" msgid="1507272328369733005">"Mellora a vida útil da batería do dispositivo"</string>
<string name="battery_suggestion_title" product="default" msgid="4038053023336285165">"Mellora a vida útil da batería do teléfono"</string>
<string name="battery_suggestion_summary" msgid="4585677159811722359"></string>
- <string name="gesture_prevent_ringing_screen_title" msgid="7840226017975251549">"Silenciar o son"</string>
+ <string name="gesture_prevent_ringing_screen_title" msgid="7840226017975251549">"Evitar que soe"</string>
<string name="gesture_prevent_ringing_title" msgid="2483159069038138740">"Manter premidos os botóns de acendido e subir volume ao mesmo tempo"</string>
- <string name="gesture_prevent_ringing_sound_title" msgid="5724512060316688779">"Atallo para evitar facer soar o dispositivo"</string>
+ <string name="gesture_prevent_ringing_sound_title" msgid="5724512060316688779">"Atallo para evitar que soe o dispositivo"</string>
<string name="prevent_ringing_option_vibrate" msgid="7286821846542822661">"Vibrar"</string>
<string name="prevent_ringing_option_mute" msgid="7551545579059879853">"Silenciar"</string>
<string name="prevent_ringing_option_none" msgid="4656046650769569175">"Non facer nada"</string>
@@ -4151,24 +4159,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activa o panel virtual de alta frecuencia"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Toda a configuración"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"A túa configuración"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Datos de CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Datos de CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Escoller rede"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Rede desconectada"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Rede conectada"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Conectando…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Non se puido establecer conexión"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Non se atopou ningunha rede."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Non se puido encontrar ningunha rede. Téntao de novo."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(rede non-permitida)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Non hai ningunha tarxeta SIM"</string>
</resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 3aabd1a..a58b73ff 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -179,6 +179,8 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"પહેલાં કનેક્ટ થયેલા ઉપકરણો"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"પહેલાં કનેક્ટ કરેલા"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"બ્લૂટૂથ ચાલુ કર્યું"</string>
+ <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
+ <skip />
<string name="date_and_time" msgid="9062980487860757694">"તારીખ અને સમય"</string>
<string name="choose_timezone" msgid="1362834506479536274">"સમય ઝોન પસંદ કરો"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +405,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"થઈ ગયું"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"ચહેરાનો ઉપયોગ આમ કરો"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ઉપકરણ અનલૉક કરો"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ઍપ્લિકેશન સાઇન ઇન અને ચુકવણીઓ"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"અનલૉક કરવા માટે આંખો ખુલ્લી"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"ચહેરા પ્રમાણીકરણનો ઉપયોગ કરતી વખતે, તમારી આંખો ખુલ્લી હોવી જરૂરી છે"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"ચહેરાના ડેટાને કાઢો"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"ચહેરાના ડેટામાં સુધારણા કરો"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"તમારું ઉપકરણ અનલૉક કરવા અને ઍપ ઍક્સેસ કરી શકવા માટે તમારા ચહેરાનો ઉપયોગ થઈ શકે છે. "<annotation id="url">"વધુ જાણો"</annotation></string>
@@ -2945,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ડિફૉલ્ટ ઍપ્લિકેશનો"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ભાષાઓ, સમય, બૅકઅપ, અપડેટ"</string>
<string name="search_results_title" msgid="1796252422574886932">"સેટિંગ્સ"</string>
- <string name="search_menu" msgid="6283419262313758339">"સેટિંગ્સ શોધો"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"વાઇફાઇ, વાઇ-ફાઇ, નેટવર્ક કનેક્શન, ઇન્ટરનેટ, વાયરલેસ, ડેટા, વાઇ-ફાઇ"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"વાઇફાઇ, વાઇ-ફાઇ, ટૉગલ કરો, નિયંત્રિત કરો"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"ટેક્સ્ટ સંદેશ, ટેક્સ્ટિંગ, સંદેશા, મેસેજિંગ, ડિફૉલ્ટ"</string>
@@ -2990,7 +2994,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ચુકવણી કરો, ટૅપ કરો, ચુકવણીઓ"</string>
<string name="keywords_backup" msgid="470070289135403022">"બૅકઅપ, બૅક અપ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"સંકેત"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ફેસ, અનલૉક"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ફેસ, અનલૉક, પ્રમાણીકરણ, સાઇન ઇન"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl વર્ઝન, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"નેટવર્ક, મોબાઇલ નેટવર્કની સ્થિતિ, સેવાની સ્થિતિ, સિગ્નલ પ્રબળતા, મોબાઇલ નેટવર્કનો પ્રકાર, રોમિંગ, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"અનુક્રમ નંબર, હાર્ડવેર વર્ઝન"</string>
@@ -3483,7 +3487,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"વ્યક્તિગત"</string>
<string name="filter_work_apps" msgid="24519936790795574">"કાર્યાલય"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"ઍપ્લિકેશનો: તમામ"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"ઍપ્લિકેશનો: બંધ કરી"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"બંધ કરેલી છે"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"કૅટેગરી: તાત્કાલિક મહત્વની"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"કૅટેગરી: ઓછી મહત્વની"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"કૅટેગરી: બંધ કરી"</string>
@@ -3957,11 +3961,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ફોનને જોવા માટે ઉઠાવો"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ટેબ્લેટને જોવા માટે ઉઠાવો"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"ઉપકરણને જોવા માટે ઉઠાવો"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ડિસ્પ્લેને સક્રિય કરો"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"સમય, નોટિફિકેશન અને અન્ય માહિતી ચેક કરવા માટે, તમારો ફોન ઉપાડો."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"સમય, નોટિફિકેશન અને અન્ય માહિતી ચેક કરવા માટે, તમારું ટૅબ્લેટ ઉપાડો."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"સમય, નોટિફિકેશન અને અન્ય માહિતી ચેક કરવા માટે, તમારું ઉપકરણ ઉપાડો."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"પહોંચવાનો સંકેત"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"સ્ક્રીન સક્રિય રાખવાનો સંકેત"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"નોટિફિકેશનો માટે ફિંગરપ્રિન્ટને સ્વાઇપ કરો"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ફિંગરપ્રિન્ટને સ્વાઇપ કરો"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"તમારા નોટિફિકેશનને જોવા માટે, તમારા ફોનની પાછળની બાજુએ ફિંગરપ્રિન્ટ સેન્સર પર નીચે સ્વાઇપ કરો."</string>
@@ -4106,6 +4112,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"કોઈપણ ડ્યૂટી-સાઈક્લિંગ વગર બધા GNSS તારામંડળો અને આવર્તનો ટ્રૅક કરો"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"હંમેશા ક્રૅશ સંવાદ બતાવો"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"જયારે પણ કોઈ ઍપ ક્રૅશ થાય ત્યારે સંવાદ બતાવો"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE દ્વારા ચાલુ ઍપ્લિકેશન પસંદ કરો"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"કોઈ ANGLE દ્વારા ચાલુ ઍપ્લિકેશન સેટ નથી"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE દ્વારા ચાલુ ઍપ્લિકેશન: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"ડિરેક્ટરીનો ઍક્સેસ"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ડિરેક્ટરીનો ઍક્સેસ"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4159,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"વર્ચ્યુઅલ ઉચ્ચ આવર્તન પૅનલ ચાલુ કરો"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"બધી સેટિંગ"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"તમારી સેટિંગ"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ડેટા"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ડેટા"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"નેટવર્ક પસંદ કરો"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"ડિસ્કનેક્ટેડ"</string>
+ <string name="network_connected" msgid="4943925032253989621">"કનેક્ટ થયું"</string>
+ <string name="network_connecting" msgid="76404590784733557">"કનેક્ટ કરી રહ્યાં છીએ..."</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"કનેક્ટ કરી શકાયું નથી"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"કોઈ નેટવર્ક મળ્યું નથી."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"નેટવર્ક શોધી શક્યાં નથી. ફરી પ્રયાસ કરો."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(પ્રતિબંધિત)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"કોઈ સિમ કાર્ડ નથી"</string>
</resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index d60043f..839773f 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"पहले कनेक्ट किए गए डिवाइस"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"पहले कनेक्ट किए गए डिवाइस"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ब्लूटूथ चालू किया गया"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"सभी देखें"</string>
<string name="date_and_time" msgid="9062980487860757694">"तारीख और समय"</string>
<string name="choose_timezone" msgid="1362834506479536274">"समय क्षेत्र चुनें"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"हो गया"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"चेहरे के ज़रिए"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"डिवाइस अनलॉक करें"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ऐप्लिकेशन साइन इन और भुगतान"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"अनलॉक करने के लिए आंखें खुली हैं"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"चेहरे की पहचान करते समय, आपकी आंखें खुली होनी चाहिए"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"चेहरे का डेटा हटाएं"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"अपने चेहरे का डेटा अपडेट करें"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"आप अपने चेहरे के ज़रिए अपने डिवाइस को अनलॉक कर सकते हैं और ऐप्लिकेशन एक्सेस कर सकते हैं. "<annotation id="url">"ज़्यादा जानें"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"डिफ़ॉल्ट ऐप्लिकेशन"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"भाषाएं, समय, बैकअप, अपडेट"</string>
<string name="search_results_title" msgid="1796252422574886932">"सेटिंग"</string>
- <string name="search_menu" msgid="6283419262313758339">"सेटिंग में खोजें"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"वाईफ़ाई, वाई-फ़ाई, नेटवर्क कनेक्शन, इंटरनेट, वायरलेस, डेटा, वाई फ़ाई"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"वाईफ़ाई, वाई-फ़ाई, टॉगल, नियंत्रण"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"मैसेज, मैसेज करें, मैसेज, मैसेज करना, डिफ़ॉल्ट"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"भुगतान करें, टैप करें, भुगतान"</string>
<string name="keywords_backup" msgid="470070289135403022">"बैकअप, बैक अप"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"जेस्चर"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"चेहरा, अनलॉक करें"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"चेहरा, अनलॉक, अनुमति देना, साइन इन"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl वर्शन, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"नेटवर्क, मोबाइल नेटवर्क किस राज्य का है, सेवा किस राज्य से ली जा रही है, सिग्नल की ताकत, मोबाइल नेटवर्क का प्रकार, रोमिंग, ICCID"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"सीरियल नंबर, हार्डवेयर वर्शन"</string>
@@ -3429,8 +3432,7 @@
<string name="encrypt_talkback_dialog_message_pin" msgid="7582096542997635316">"जब आप इस डिवाइस को प्रारंभ करने के लिए अपना पिन डालते हैं, तो <xliff:g id="SERVICE">%1$s</xliff:g> जैसी सरल उपयोग सेवाएं अभी भी उपलब्ध नहीं होंगी."</string>
<string name="encrypt_talkback_dialog_message_pattern" msgid="2020083142199612743">"जब आप इस डिवाइस को प्रारंभ करने के लिए अपना पैटर्न डालते हैं, तो <xliff:g id="SERVICE">%1$s</xliff:g> जैसी सरल उपयोग सेवाएं अभी भी उपलब्ध नहीं होंगी."</string>
<string name="encrypt_talkback_dialog_message_password" msgid="4155875981789127796">"जब आप इस डिवाइस को प्रारंभ करने के लिए अपना पासवर्ड डालते हैं, तो <xliff:g id="SERVICE">%1$s</xliff:g> जैसी सरल उपयोग सेवाएं अभी भी उपलब्ध नहीं होंगी."</string>
- <!-- no translation found for direct_boot_unaware_dialog_message (2433632805847985867) -->
- <skip />
+ <string name="direct_boot_unaware_dialog_message" msgid="2433632805847985867">"ध्यान दें: अगर फ़ोन को रीस्टार्ट करते समय उसकी स्क्रीन लॉक है, तो यह ऐप्लिकेशन तब तक शुरू नहीं होगा, जब तक आप फ़ोन को अनलॉक नहीं करते"</string>
<string name="imei_information_title" msgid="8499085421609752290">"IMEI की जानकारी"</string>
<string name="imei_information_summary" msgid="2074095606556565233">"IMEI से जुड़ी जानकारी"</string>
<string name="slot_number" msgid="3762676044904653577">"(स्लॉट<xliff:g id="SLOT_NUM">%1$d</xliff:g>)"</string>
@@ -3484,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"व्यक्तिगत"</string>
<string name="filter_work_apps" msgid="24519936790795574">"कार्यस्थल"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"ऐप्लिकेशन: सभी"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"ऐप: बंद हैं"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"सूचनाएं बंद कर दी गई हैं"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"श्रेणियां: अत्यंत महत्वपूर्ण"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"श्रेणियां: कम महत्व के"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"श्रेणियां: बंद हैं"</string>
@@ -3910,10 +3912,8 @@
<string name="bluetooth_connected_summary" msgid="7672528674593152862">"<xliff:g id="ID_1">%1$s</xliff:g> से कनेक्ट है"</string>
<string name="bluetooth_connected_multiple_devices_summary" msgid="9173661896296663932">"कई डिवाइस से कनेक्ट है"</string>
<string name="demo_mode" msgid="2798762752209330277">"सिस्टम यूज़र इंटरफ़ेस (यूआई) डेमो मोड"</string>
- <!-- no translation found for dark_ui_mode (4176511670311366886) -->
- <skip />
- <!-- no translation found for dark_ui_mode_title (3471395820322819817) -->
- <skip />
+ <string name="dark_ui_mode" msgid="4176511670311366886">"डार्क मोड"</string>
+ <string name="dark_ui_mode_title" msgid="3471395820322819817">"डार्क मोड सेट करें"</string>
<string name="quick_settings_developer_tiles" msgid="5947788063262762448">"त्वरित सेटिंग डेवलपर टाइल"</string>
<string name="winscope_trace_quick_settings_title" msgid="1294290008255732032">"Winscope ट्रेस"</string>
<string name="managed_profile_settings_title" msgid="2729481936758125054">"कार्य प्रोफ़ाइल सेटिंग"</string>
@@ -3960,12 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"फ़ोन चेक करने के लिए उसे उठाएं"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"टैबलेट देखने के लिए लिफ़्ट करें"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"डिवाइस देखने के लिए लिफ़्ट करें"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"चालू करने का डिसप्ले"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"समय, सूचनाएं और दूसरी जानकारी देखने के लिए, अपना फ़ोन इस्तेमाल करें."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"समय, सूचनाएं और दूसरी जानकारी देखने के लिए, अपना टैबलेट इस्तेमाल करें."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"समय, सूचनाएं और दूसरी जानकारी देखने के लिए, अपना डिवाइस इस्तेमाल करें."</string>
- <!-- no translation found for ambient_display_reach_title (6519700935117799437) -->
- <skip />
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"चालू लॉक स्क्रीन जेस्चर"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"सूचनाओं के लिए फ़िंगरप्रिंट स्वाइप करें"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"फ़िंगरप्रिंट स्वाइप करें"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"अपनी सूचनाएं देखने के लिए, अपने फ़ोन के पीछे फ़िंगरप्रिंट सेंसर पर नीचे की तरफ़ स्वाइप करें."</string>
@@ -4110,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"बिना ड्यूटी-साइक्लिंग के जीएनएसएस के सभी तारामंडल (कॉन्स्टलेशन) और फ़्रीक्वेंसी ट्रैक करें"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"क्रैश होने की सूचना हर बार दिखाएं"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"जब भी कोई ऐप्लिकेशन क्रैश हो, उसकी सूचना दिखाएं"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"कोण की सुविधा वाला ऐप्लिकेशन चुनें"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"कोण की सुविधा वाला कोई ऐप्लिकेशन सेट नहीं है"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"कोण की सुविधा वाला ऐप्लिकेशन: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"निर्देशिका का एक्सेस"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"निर्देशिका का एक्सेस"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4152,28 +4156,17 @@
<string name="devices_title" msgid="7701726109334110391">"डिवाइस"</string>
<string name="high_frequency_display_device_title" msgid="2327369124536178715">"हाई फ़्रीक्वेंसी पैनल"</string>
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"वर्चुअल \'हाई फ़्रीक्वेंसी पैनल\' को चालू करें"</string>
- <!-- no translation found for homepage_all_settings (1245540304900512919) -->
- <skip />
- <!-- no translation found for homepage_personal_settings (3998213046366125494) -->
- <skip />
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="homepage_all_settings" msgid="1245540304900512919">"सभी सेटिंग"</string>
+ <string name="homepage_personal_settings" msgid="3998213046366125494">"आपकी सेटिंग"</string>
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS डेटा"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS डेटा"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"नेटवर्क चुनें"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"डिसकनेक्ट किया गया"</string>
+ <string name="network_connected" msgid="4943925032253989621">"कनेक्ट किया गया"</string>
+ <string name="network_connecting" msgid="76404590784733557">"कनेक्ट हो रहा है..."</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"कनेक्ट नहीं किया जा सका"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"कोई नेटवर्क नहीं मिला."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"कोई नेटवर्क नहीं मिला. फिर से कोशिश करें."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(मना है)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"कोई SIM कार्ड नहीं है"</string>
</resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index c655ce9..4781da9 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -180,6 +180,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Prethodno povezani uređaji"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Prethodno povezano"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth je uključen"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Prikaži sve"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datum i vrijeme"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Odabir vremenske zone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -405,6 +406,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Gotovo"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Pomoću lica možete"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Otključajte uređaj"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Prijava u aplikaciju i plaćanja"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Oči otvorene za otključavanje"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Prilikom autentifikacije licem oči moraju biti otvorene"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Ukloni podatke lica"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Poboljšajte podatke o licu"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Za otključavanje uređaja i pristup aplikacijama može se upotrijebiti vaše lice. "<annotation id="url">"Saznajte više"</annotation></string>
@@ -2983,7 +2987,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Zadane aplikacije"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Jezici, vrijeme, sigurnosna kopija, ažuriranja"</string>
<string name="search_results_title" msgid="1796252422574886932">"Postavke"</string>
- <string name="search_menu" msgid="6283419262313758339">"Pretraži postavke"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, mrežna veza, internet, bežično, podaci, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, promjena, upravljanje"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"tekstna poruka, slanje tekstnih poruka, poruke, slanje poruka, zadano"</string>
@@ -3028,7 +3031,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"plati, dodir, plaćanja"</string>
<string name="keywords_backup" msgid="470070289135403022">"sigurnosno kopirati, sigurnosna kopija"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"pokret"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"lice, otključavanje"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"otključavanje, lice, autentifikacija, prijava"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"IMEI, MEID, min, verzija PRL-a, IMEI SV"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"mreža, stanje mobilne mreže, stanje usluge, jačina signala, vrsta mobilne mreže, roaming, ICCID"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serijski broj, verzija hardvera"</string>
@@ -3535,7 +3538,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Osobno"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Posao"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikacije: sve"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikacije: isključene"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Isključeno"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorije: hitno"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorije: mala važnost"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorije: isključene"</string>
@@ -4023,11 +4026,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Podizanje telefona za provjeru"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Podignite da biste provjerili tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Podignite da biste provjerili uređaj"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Probudite zaslon"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Da biste pogledali vrijeme, obavijesti i druge informacije, podignite telefon."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Da biste pogledali vrijeme, obavijesti i druge informacije, podignite tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Da biste pogledali vrijeme, obavijesti i druge informacije, podignite uređaj."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Pokret dohvaćanja"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Pokret za zaključavanje aktivacije zaslona"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Otisak prsta za obavijesti"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Pokret za otisak prsta"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Da biste pogledali obavijesti, prijeđite prstom prema dolje po senzoru otiska prsta na stražnjoj strani telefona."</string>
@@ -4179,6 +4184,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Prati sve konstelacije i frekvencije GNSS-a bez određivanja radnog omjera"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Uvijek prikaži dijaloški okvir o rušenju"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Prikaži dijaloški okvir svaki put kada se aplikacija sruši"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Upotrijebite aplikaciju omogućenu za ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nema skupa aplikacija omogućenog za ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikacija omogućena za ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Pristup direktoriju"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"pristup direktoriju"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4223,24 +4231,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Omogući virtualnu ploču visoke frekvencije"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Sve postavke"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Vaše postavke"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Podaci CBRS-a"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Podaci CBRS-a"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Odaberite mrežu"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Nije povezano"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Povezano"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Povezivanje…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Povezivanje nije uspjelo"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nije pronađena nijedna mreža."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Nije pronađena nijedna mreža. Pokušajte ponovo."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(zabranjeno)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Nema SIM kartice"</string>
</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index d64b007..da26fe4 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Korábban csatlakoztatott eszközök"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Korábban csatlakoztatva"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth bekapcsolva"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Az összes megtekintése"</string>
<string name="date_and_time" msgid="9062980487860757694">"Dátum és idő"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Válasszon időzónát"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Kész"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Használja arcát"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Az eszköz feloldása"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Alkalmazásbejelentkezés, fizetés"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Feloldás nyitott szemmel"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Az arcalapú hitelesítés használatakor nyitva kell tartania a szemét"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Arcadatok törlése"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Arcadatok javítása"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Lehetősége van az arcát használni az eszköz feloldásához és az alkalmazásokhoz való hozzáféréshez. "<annotation id="url">"További információ"</annotation>"."</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Alapértelmezett alkalmazások"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Nyelvek, idő, biztonsági másolat, frissítések"</string>
<string name="search_results_title" msgid="1796252422574886932">"Beállítások"</string>
- <string name="search_menu" msgid="6283419262313758339">"Keresés a beállításokban"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"WiFi, Wi-Fi, hálózati kapcsolat, internet, vezeték nélküli, adatok, Wi Fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, kapcsoló, vezérlés"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, SMS-küldés, üzenetek, üzenetküldés, alapértelmezett"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"fizetés, koppintás, kifizetések"</string>
<string name="keywords_backup" msgid="470070289135403022">"biztonsági másolat, biztonsági mentés"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"kézmozdulat"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"arc, feloldás"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"arc, feloldás, hitelesítés, bejelentkezés"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl-verzió, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"hálózat, mobilhálózat állapota, szolgáltatás állapota, jelerősség, mobilhálózat típusa, barangolás, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"sorozatszám, hardververzió"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Személyes"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Munkahelyi"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Alkalmazások: Mind"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Alkalmazások: Kikapcsolva"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Kikapcsolva"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategóriák: Sürgős"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategóriák: Kevésbé fontos"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategóriák: Kikapcsolva"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Ellenőrzés felemeléssel"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Ellenőrzés a táblagép felemelésével"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Ellenőrzés az eszköz felemelésével"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Kijelző ébresztése"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Az idő, az értesítések és egyéb információk megtekintéséhez vegye kezébe telefonját."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Az idő, az értesítések és egyéb információk megtekintéséhez vegye a kezébe táblagépét."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Az idő, az értesítések és egyéb információk megtekintéséhez vegye kezébe eszközét."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Közelítő kézmozdulat"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Lezárási képernyőt ébresztő kézmozdulat"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Értesítések ujjlenyomattal"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Ujjlenyomat csúsztatása"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Megtekintheti értesítéseit, ha ujját lefelé húzza a telefonja hátulján található ujjlenyomat-érzékelőn."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"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="8889957119867262599">"Összeomlási párbeszédablak megjelenítése minden alkalommal"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Mindig megjeleníti a párbeszédablakot, amikor valamelyik alkalmazás összeomlik"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE-kompatibilis alkalmazás kiválasztása"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nincs beállítva ANGLE-kompatibilis alkalmazás"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-kompatibilis alkalmazás: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Mappahozzáférés"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"mappahozzáférés"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Gyakori frissítésű virtuális panel engedélyezése"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Minden beállítás"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Saját beállítások"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-adatok"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-adatok"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Hálózat kiválasztása"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Leválasztva"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Csatlakozva"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Csatlakozás…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Nem sikerült csatlakozni"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nem található hálózat."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Nincs hálózat. Próbálja újra."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(tiltott)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Nincs SIM-kártya"</string>
</resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index f4233cc..cd083f1 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Նախկինում միացված սարքեր"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Նախկինում միացված սարքեր"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth-ը միացված է"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Տեսնել բոլորը"</string>
<string name="date_and_time" msgid="9062980487860757694">"Ամսաթիվ և ժամ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Ընտրել ժամային գոտին"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -301,10 +302,10 @@
<string name="sms_messages_title" msgid="1778636286080572535">"SMS հաղորդագրություններ"</string>
<string name="cellular_data_summary" msgid="4660351864416939504">"Թույլատրել տվյալների օգտագործումը բջջային ցանցի միջոցով"</string>
<string name="allow_data_usage_title" msgid="2238205944729213062">"Թույլ տալ տվյալների կապի օգտագործումը ռոումինգում"</string>
- <string name="roaming" msgid="3596055926335478572">"Տվյալների ռոումինգ"</string>
+ <string name="roaming" msgid="3596055926335478572">"Բջջային ինտերնետ ռոումինգում"</string>
<string name="roaming_enable" msgid="3737380951525303961">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում"</string>
<string name="roaming_disable" msgid="1295279574370898378">"Միանալ տվյալների փոխանցման ծառայություններին ռոումինգում"</string>
- <string name="roaming_reenable_message" msgid="9141007271031717369">"Դուք կորցրել եք տվյալների կապը, քանի որ անջատված եք թողել ձեր գլխավոր ցանցի տվյալների ռոումինգը:"</string>
+ <string name="roaming_reenable_message" msgid="9141007271031717369">"Ինտերնետ կապ չկա, քանի որ ռոումինգում ինտերնետ կապն անջատված է կարգավորումներից։"</string>
<string name="roaming_turn_it_on_button" msgid="4387601818162120589">"Միացնել"</string>
<string name="roaming_warning" msgid="4275443317524544705">"Դրա համար ձեզանից կարող են խոշոր վճարներ գանձվել:"</string>
<string name="roaming_warning_multiuser" product="tablet" msgid="6458990250829214777">"Երբ դուք թույլատրում եք տվյալների ռոումինգը, հնարավոր է` ձեզնից գանձվեն զգալի գումարային վճարներ:\n\nԱյս կարգավորումը վերաբերում է պլանշետի բոլոր օգտատերերին:"</string>
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Փակել"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Հնարավորություններ"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Ապակողպել"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Մուտք հավելվածներ և վճարումներ"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Ապակողպել, երբ աչքերը բաց են"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Դեմքի ճանաչումը կիրառելիս ձեր աչքերը պետք է բաց լինեն"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Հեռացնել դեմքի տվյալները"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Թարմացնել դեմքի տվյալները"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Ապակողպեք ձեր սարքի էկրանը և բացեք հավելվածները դեմքի ճանաչման միջոցով։ "<annotation id="url">"Մանրամասն"</annotation></string>
@@ -2558,7 +2562,7 @@
<string name="data_usage_data_limit" msgid="1193930999713192703">"Սահմանել թրաֆիկի օգտագործման սահմանաչափը"</string>
<string name="data_usage_cycle" msgid="5652529796195787949">"Տվյալների օգտագործման աշխատաշրջան"</string>
<string name="data_usage_app_items_header_text" msgid="5017850810459372828">"Սպառումը ըստ ծրագրի"</string>
- <string name="data_usage_menu_roaming" msgid="8042359966835203296">"Տվյալների ռոումինգ"</string>
+ <string name="data_usage_menu_roaming" msgid="8042359966835203296">"Բջջային ինտերնետ ռոումինգում"</string>
<string name="data_usage_menu_restrict_background" msgid="1989394568592253331">"Սահմանափակել ֆոնային տվյալները"</string>
<string name="data_usage_menu_allow_background" msgid="2694761978633359223">"Թույլ տալ ֆոնային տվյալները"</string>
<string name="data_usage_menu_split_4g" msgid="5322857680792601899">"Առանձնացնել 4G-ի օգտագործումը"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Կանխադրված հավելվածներ"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Լեզուներ, ժամանակ, պահուստավորում, թարմացումներ"</string>
<string name="search_results_title" msgid="1796252422574886932">"Կարգավորումներ"</string>
- <string name="search_menu" msgid="6283419262313758339">"Կարգավորումների որոնում"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"Wi-Fi, WiFi, ցանցային կապ, ինտերնետ, անլար կապ, բջջային ինտերնետ, Wi Fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, միացնել/անջատել, կառավարել"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"տեքստային հաղորդագրություն, SMS, հաղորդագրություններ, հաղորդագրում, կանխադրված"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"վճարել, հպել, վճարումներ"</string>
<string name="keywords_backup" msgid="470070289135403022">"պահուստավորում, պահուստավորել"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ժեստ"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"դեմք, ապակողպել"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"դեմք, ապակողպում, ճանաչում, մուտք"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl-ի տարբերակ, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ցանց, բջջային ցանցի կարգավիճակ, ազդանշանի հզորություն, բջջային ցանցի տեսակ, ռոումինգ, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"սերիական համար, սարքակազմի տարբերակ"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Անձնական"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Աշխատանքային"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Հավելվածներ՝ բոլորը"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Հավելվածներ՝ անջատած"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Ծանուցումներն անջատած են"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Կատեգորիաներ՝ հրատապ կարևորություն"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Կատեգորիաներ՝ ցածր կարևորություն"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Կատեգորիաներ՝ անջատված"</string>
@@ -3563,7 +3566,7 @@
<string name="battery_power_management" msgid="5571519699679107523">"Սնուցման կառավարում"</string>
<string name="no_battery_summary" msgid="3528036835462846814">"Վերջին լրիվ լիցքավորումից հետո մարտկոցը չի օգտագործվել"</string>
<string name="app_notification_preferences" msgid="1599319335092722613">"Հավելվածի կարգավորումներ"</string>
- <string name="system_ui_settings" msgid="579824306467081123">"Ցուցադրել Համակարգի ՕՄ-ի ընդունիչը"</string>
+ <string name="system_ui_settings" msgid="579824306467081123">"Ցուցադրել Համակարգի ՕՄ-ի կարգավորիչը"</string>
<string name="additional_permissions" msgid="6463784193877056080">"Լրացուցիչ թույլտվություններ"</string>
<string name="additional_permissions_more" msgid="3538612272673191451">"Եվս <xliff:g id="COUNT">%1$d</xliff:g>"</string>
<string name="share_remote_bugreport_dialog_title" msgid="1124840737776588602">"Տրամադրե՞լ վրիպակի զեկույցը:"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Բարձրացնել՝ հեռախոսը ստուգելու համար"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Բարձրացրեք՝ պլանշետը ստուգելու համար"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Բարձրացրեք՝ սարքը ստուգելու համար"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Անջատել էկրանի քնի ռեժիմը"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Ժամանակը, ծանուցումները և այլ տեղեկություններ տեսնելու համար վերցնել հեռախոսը:"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Ժամանակը, ծանուցումները և այլ տեղեկություններ տեսնելու համար վերցնել պլանշետը:"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Ժամանակը, ծանուցումները և այլ տեղեկություններ տեսնելու համար վերցնել սարքը:"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"«Ձեռքի մեկնում» ժեստ"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Կողպէկրանի քնի ռեժիմի անջատման ժեստ"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Ծանուցումները դիտելու համար օգտագործել մատնահետքերի սկաները"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Մատնահետքերի սկաներ"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Ծանուցումները տեսնելու համար՝ մատը սահեցրեք ներքև հեռախոսի հետևի մասում գտնվող մատնահետքերի սկաների վրա"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Հետագծել GNSS-ի բոլոր սխեմաներն ու հաճախականությունները՝ առանց աշխատաշրջանի"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Միշտ ցույց տալ խափանման մասին ծանուցումը"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Ցույց տալ ծանուցումը հավելվածի խափանման դեպքում"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Ընտրեք ANGLE-ի աջակցմամբ հավելված"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE-ի աջակցմամբ հավելված նշված չէ"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-ի աջակցմամբ հավելված՝ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Գրացուցակի մուտքի թույլտվություն"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"գրացուցակի մուտքի թույլտվություն"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Միսցնել բարձր հաճախականության վիրտուալ վահանակը"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Բոլոր կարգավորումները"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Իմ կարգավորումները"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS տվյալներ"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS տվյալներ"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Ընտրել ցանց"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Անջատած է"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Միացած է"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Միացում…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Չհաջողվեց միանալ"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Ցանցեր չեն գտնվել:"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Չհաջողվեց ցանցեր գտնել: Նորից փորձեք:"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(արգելված)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM քարտ չկա"</string>
</resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index d6f8d03..ac496a6 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Perangkat yang terhubung sebelumnya"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Perangkat yang terhubung sebelumnya"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth diaktifkan"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Lihat semua"</string>
<string name="date_and_time" msgid="9062980487860757694">"Tanggal & waktu"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Pilih zona waktu"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Selesai"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Gunakan wajah Anda untuk"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Membuka kunci perangkat"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Login apl & pembayaran"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Buka mata untuk membuka kunci"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Saat menggunakan autentikasi wajah, mata Anda harus terbuka"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Hapus data wajah"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Tingkatkan data wajah Anda"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Wajah Anda bisa digunakan untuk membuka kunci perangkat Anda dan mengakses aplikasi. "<annotation id="url">"Pelajari lebih lanjut"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Aplikasi default"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Bahasa, waktu, backup, update"</string>
<string name="search_results_title" msgid="1796252422574886932">"Setelan"</string>
- <string name="search_menu" msgid="6283419262313758339">"Telusuri setelan"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, sambungan jaringan, internet, nirkabel, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, beralih, kontrol"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"pesan teks, SMS, pesan, messaging, default"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"bayar, tap, pembayaran"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gestur"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"wajah, membuka kunci"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"wajah, buka kunci, autentikasi, login"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versi prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"jaringan, status jaringan seluler, status layanan, kekuatan sinyal, jenis jaringan seluler, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"nomor seri, versi hardware"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Pribadi"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Kantor"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikasi: Semua"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikasi: Dinonaktifkan"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Dinonaktifkan"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategori: Tingkat kepentingan darurat"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategori: Tingkat kepentingan rendah"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategori: Dinonaktifkan"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Angkat untuk memeriksa ponsel"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Angkat untuk memeriksa tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Angkat untuk memeriksa perangkat"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Aktifkan tampilan"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Untuk memeriksa waktu, notifikasi, dan info lainnya, ambil ponsel Anda."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Untuk memeriksa waktu, notifikasi, dan info lainnya, ambil tablet Anda."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Untuk memeriksa waktu, notifikasi, dan info lainnya, ambil perangkat Anda."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gestur jangkauan"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gestur untuk menampilkan layar kunci"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Usapkan sidik jari untuk melihat notifikasi"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Usapkan sidik jari"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Untuk memeriksa notifikasi, usapkan jari ke bawah pada sensor sidik jari di bagian belakang ponsel."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Lacak semua konstelasi dan frekuensi GNSS tanpa siklus tugas"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Selalu tampilkan dialog error"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Tampilkan dialog setiap kali aplikasi tidak bekerja"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Pilih aplikasi yang berkemampuan ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Tidak ada aplikasi berkemampuan ANGLE yang ditetapkan"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikasi yang berkemampuan ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Akses direktori"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"akses direktori"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktifkan Panel Frekuensi Tinggi Virtual"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Semua Setelan"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Setelan Anda"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Data CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Pilih jaringan"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Terputus"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Terhubung"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Menghubungkan…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Tidak dapat terhubung"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Jaringan tidak ditemukan."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Tidak dapat menemukan jaringan. Coba lagi."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(terlarang)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Tidak ada kartu SIM"</string>
</resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 4316207..1e00af1 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Tæki sem hafa áður verið tengd"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Áður tengt"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Kveikt á Bluetooth"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Sjá allt"</string>
<string name="date_and_time" msgid="9062980487860757694">"Dagsetning og tími"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Veldu tímabelti"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Lokið"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Nota andlitið til að"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Taka tækið úr lás"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Innskr. í forrit og greiðslur"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Opin augu til að taka úr lás"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Þegar andlitsgreining er notuð verða augu þín að vera opin"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Fjarl. andlitsgögn"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Bæta andlitsgögn"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Þú getur notað andlitið þitt til að taka símann úr lás og fá aðgang að forritum. "<annotation id="url">"Frekari upplýsingar"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Sjálfgefin forrit"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Tungumál, tími, öryggisafrit, uppfærslur"</string>
<string name="search_results_title" msgid="1796252422574886932">"Stillingar"</string>
- <string name="search_menu" msgid="6283419262313758339">"Leita í stillingum"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, Wi-Fi, nettenging, internet, þráðlaust, gögn, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, kveikja, slökkva, stjórna"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"textaskilaboð, senda skilaboð, skilaboð, skilaboð, sjálfgefið"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"borga, ýta, greiðslur"</string>
<string name="keywords_backup" msgid="470070289135403022">"afrita, afritun"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"bendingar"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"andlit, opnun, taka úr lás"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"andlit, opna, taka úr lás, sannvottun, innskráning, skrá inn"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl-útgáfa, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"netkerfi, staða farsímakerfis, staða þjónustu, sendistyrkur, tegund farsímakerfis, reiki, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"raðnúmer, vélbúnaðarútgáfa"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Persónulegt"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Vinna"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Forrit: Öll"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Forrit: Slökkt"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Slökkt"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Flokkar: Afar áríðandi"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Flokkar: Ekki svo mikilvægt"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Flokkar: Slökkt"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Taka upp til að skoða"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Taka upp til að athuga spjaldtölvu"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Taka upp til að athuga tæki"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Skjár sem vaknað er við"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Til að sjá hvað klukkan er og sjá tilkynningar og aðrar upplýsingar skaltu taka símann upp."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Til að sjá hvað klukkan er og sjá tilkynningar og aðrar upplýsingar skaltu taka spjaldtölvuna upp."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Til að sjá hvað klukkan er og sjá tilkynningar og aðrar upplýsingar skaltu taka tækið upp."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Teygja eftir"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Bending fyrir skjávökulás"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Fingrafar til að opna tilkynningar"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Lesa fingrafar"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Strjúktu niður á fingrafaraskynjaranum aftan á símanum til að skoða tilkynningarnar."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Rekja öll GNSS söfn og tíðnir með engum vinnulotum"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Sýna alltaf hrunglugga"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Sýna glugga í hvert sinn sem forrit hrynur"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Velja forrit sem styður ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Ekkert forrit sem styður ANGLE hefur verið stillt"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Forrit sem styður ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Aðgangur að skráasafni"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"aðgangur að skráasafni"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Kveikja á sýndarhátíðnisvæði"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Allar stillingar"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Stillingar þínar"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-gögn"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-gögn"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Velja símkerfi"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Aftengt"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Tengt"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Tengist…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Ekki tókst að tengjast"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Engin símkerfi fundust."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Ekkert símkerfi fannst. Reyndu aftur."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(bannað)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Ekkert SIM-kort"</string>
</resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index db1df9f..07899dd 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dispositivi connessi in precedenza"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Connessi in precedenza"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth attivato"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Mostra tutto"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data e ora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Scegli il fuso orario"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Fine"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Usa il viso per"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Sblocca dispositivo"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Accesso all\'app e pagamenti"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Occhi aperti per sbloccare"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Quando usi l\'autenticazione volti, gli occhi devono essere aperti"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Rimuovi dati viso"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Migliora i dati del viso"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Il tuo viso può essere utilizzato per sbloccare il tuo dispositivo e accedere alle app. "<annotation id="url">"Ulteriori informazioni"</annotation></string>
@@ -1616,7 +1620,7 @@
<string name="lockpassword_confirm_passwords_dont_match" msgid="5140892109439191415">"Le password non corrispondono"</string>
<string name="lockpassword_confirm_pins_dont_match" msgid="7226244811505606217">"I PIN non corrispondono"</string>
<string name="lockpassword_draw_your_pattern_again_header" msgid="2872194349688886781">"Traccia di nuovo la sequenza"</string>
- <string name="lockpassword_choose_lock_generic_header" msgid="3811438094903786145">"Selezione metodo di sblocco"</string>
+ <string name="lockpassword_choose_lock_generic_header" msgid="3811438094903786145">"Seleziona metodo di sblocco"</string>
<string name="lockpassword_password_set_toast" msgid="4875050283108629383">"Password impostata"</string>
<string name="lockpassword_pin_set_toast" msgid="6011826444725291475">"PIN impostato"</string>
<string name="lockpassword_pattern_set_toast" msgid="6867259621331406236">"Sequenza impostata"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"App predefinite"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Lingue, ora, backup, aggiornamenti"</string>
<string name="search_results_title" msgid="1796252422574886932">"Impostazioni"</string>
- <string name="search_menu" msgid="6283419262313758339">"Cerca nelle impostazioni"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, connessione di rete, internet, wireless, dati, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, attivazione/disattivazione, controllo"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, inviare SMS, messaggi, inviare messaggi, predefinita"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"paga, tocca, pagamenti"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesto"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"Sblocco col sorriso"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"viso, sblocco, autenticazione, accesso"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versione prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"rete, stato rete mobile, stato servizio, intensità segnale, tipo di rete mobile, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"numero di serie, versione hardware"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personali"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Lavoro"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"App: Tutte"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"App: disattivate"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Disattivate"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categorie: Importanza urgente"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categorie: Importanza scarsa"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categorie: Disattivate"</string>
@@ -3756,7 +3759,7 @@
<string name="night_display_suggestion_title" msgid="6602129097059325291">"Programma Luminosità notturna"</string>
<string name="night_display_suggestion_summary" msgid="228346372178218442">"Riduci automaticamente la luminosità dello schermo ogni notte"</string>
<string name="condition_night_display_title" msgid="5599814941976856183">"Luminosità notturna attiva"</string>
- <string name="condition_night_display_summary" msgid="5443722724310650381">"Lo schermo è diventato color ambra. Potrebbe conciliare il sonno."</string>
+ <string name="condition_night_display_summary" msgid="5443722724310650381">"Lo schermo è diventato color ambra per aiutare a conciliare il sonno."</string>
<string name="suggestions_title_v2" msgid="5601181602924147569">"Consigliate per te"</string>
<string name="suggestions_title" msgid="7280792342273268377">"Suggerimenti"</string>
<string name="suggestions_summary" msgid="2509040178581728056">"+ <xliff:g id="ID_1">%1$d</xliff:g>"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Solleva per controllare il telefono"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Solleva il tablet per controllare le notifiche"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Solleva il dispositivo per controllare le notifiche"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Riattiva schermo"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Per controllare l\'ora, le notifiche e altre informazioni, solleva il telefono."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Per controllare l\'ora, le notifiche e altre informazioni, solleva il tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Per controllare l\'ora, le notifiche e altre informazioni, solleva il dispositivo."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gesto per l\'avvicinamento"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gesto sullo schermo per wakelock"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Usa l\'impronta digitale per le notifiche"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Usa l\'impronta digitale"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Per controllare le notifiche, scorri verso il basso sul sensore di impronte digitali sul retro del telefono."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Monitora tutte le costellazioni e le frequenze GNSS senza ciclo di lavoro utile"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Mostra sempre finestra di dialogo di arresti anomali"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Mostra finestra di dialogo a ogni arresto anomalo delle app"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Seleziona le app che supportano ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nessuna app che supporta ANGLE impostata"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"App che supporta ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Accesso alla directory"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"accesso alla directory"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Attiva il riquadro virtuale Alta frequenza"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tutte le impostazioni"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Le tue impostazioni"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Dati CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dati CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Scegli rete"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Scollegato"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Connessi"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Connessione…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Impossibile collegarsi"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nessuna rete trovata."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Impossibile trovare reti. Riprova."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(vietato)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Nessuna scheda SIM"</string>
</resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 4dcc051..d242d78 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -181,6 +181,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"מכשירים שהיו מחוברים בעבר"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"מכשירים שחוברו בעבר"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth הופעל"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"הצגת הכל"</string>
<string name="date_and_time" msgid="9062980487860757694">"תאריך ושעה"</string>
<string name="choose_timezone" msgid="1362834506479536274">"בחירת אזור זמן"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -407,6 +408,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"סיום"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"שימוש בנתוני הפנים"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ביטול נעילת המכשיר"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"כניסה לאפליקציה ותשלומים"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"עיניים פקוחות לביטול נעילה"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"כשמשתמשים באימות פנים, יש לפקוח עיניים"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"הסרת נתוני הפנים"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"שיפור נתוני הפנים"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"ניתן להשתמש בפנים שלך כדי לבטל את נעילת המכשיר ולגשת לאפליקציות. "<annotation id="url">"מידע נוסף"</annotation></string>
@@ -3023,7 +3027,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"אפליקציות ברירת מחדל"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"שפות, זמן, גיבוי, עדכונים"</string>
<string name="search_results_title" msgid="1796252422574886932">"הגדרות"</string>
- <string name="search_menu" msgid="6283419262313758339">"חפש בהגדרות"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, Wi-Fi, חיבור רשת, אינטרנט, אלחוטי, נתונים, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, Wi-Fi, החלפת מצב, שליטה"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"הודעת טקסט, שליחת הודעות טקסט, הודעות, העברת הודעות, ברירת מחדל"</string>
@@ -3068,7 +3071,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"שלם, הקש, תשלומים"</string>
<string name="keywords_backup" msgid="470070289135403022">"גיבוי, לגבות, backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"תנועה"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"שחרור נעילה על ידי זיהוי פנים"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"פנים, ביטול נעילה, אימות, כניסה"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, גרסת prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"רשת, מצב הרשת הסלולרית, מצב השירות, עוצמת האות, סוג הרשת הסלולרית, נדידה, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"מספר סידורי, גרסת חומרה"</string>
@@ -3589,7 +3592,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"אישיות"</string>
<string name="filter_work_apps" msgid="24519936790795574">"עבודה"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"אפליקציות: הכל"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"אפליקציות: כבויות"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ההודעות הושבתו"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"קטגוריות: חשיבות דחופה"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"קטגוריות: חשיבות נמוכה"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"קטגוריות: כבויות"</string>
@@ -4091,11 +4094,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"הרמה להצצה"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"הרמה לבדיקת הטאבלט"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"הרמה לבדיקת המכשיר"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Wake up display"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"כדי להתעדכן מה השעה, לבדוק הודעות ולהציג מידע נוסף, צריך להרים את הטלפון."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"כדי להתעדכן מה השעה, לבדוק הודעות ולהציג מידע נוסף, צריך להרים את הטאבלט."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"כדי להתעדכן מה השעה, לבדוק הודעות ולהציג מידע נוסף, צריך להרים את המכשיר."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"תנועות של הושטת יד"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Wake lock screen gesture"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"החלקת טביעת אצבע לקריאת הודעות"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"החלקה של טביעת אצבע"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"כדי לבדוק הודעות יש להחליק כלפי מטה בחיישן טביעות האצבע שבחלק האחורי של הטלפון."</string>
@@ -4254,6 +4259,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"מעקב אחר כל מערכות הניווט והתדרים של GNSS ללא מחזור פעילות"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"הצג תמיד דו-שיח של קריסות מחשב"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"הצג דו-שיח בכל פעם שאפליקציה קורסת"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"בחירת אפליקציה המותאמת ל-ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"לא הוגדרה אפליקציה המותאמת ל-ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"אפליקציה המותאמת ל-ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"גישה לספרייה"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"גישה ספרייה"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4298,24 +4306,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"הפעלה של חלונית וירטואלית בתדר גבוה"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"כל ההגדרות"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"ההגדרות שלך"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"נתוני CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"נתוני CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"בחירת רשת"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"מנותק"</string>
+ <string name="network_connected" msgid="4943925032253989621">"מחובר"</string>
+ <string name="network_connecting" msgid="76404590784733557">"מתחבר…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"לא ניתן להתחבר"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"לא נמצאו רשתות."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"לא נמצאו רשתות. אפשר לנסות שוב."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(אסור)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"אין כרטיס SIM"</string>
</resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 811ae38..2b64b9c 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"以前接続されていたデバイス"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"以前に接続"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth を ON にしました"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"すべて表示"</string>
<string name="date_and_time" msgid="9062980487860757694">"日付と時刻"</string>
<string name="choose_timezone" msgid="1362834506479536274">"タイムゾーンの選択"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"完了"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"顔認証による操作"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"端末のロック解除"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"アプリのログインと支払い"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"目を開いた状態でロック解除"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"顔認証時には目を開いていなければなりません"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"顔認証データを削除"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"顔認証データの改善"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"顔認証で端末のロックを解除したり、アプリにアクセスしたりできます。"<annotation id="url">"詳細"</annotation></string>
@@ -500,7 +504,7 @@
<string name="crypt_keeper_failed_title" msgid="7133499413023075961">"暗号化できませんでした"</string>
<string name="crypt_keeper_failed_summary" product="tablet" msgid="8219375738445017266">"暗号化処理が中断されて完了できなかったためタブレット上のデータにアクセスできなくなりました。\n\nタブレットの使用を再開するには出荷時設定にリセットする必要があります。リセット後、タブレットのセットアップの段階で、Googleアカウントにバックアップしたデータの復元を選択できます。"</string>
<string name="crypt_keeper_failed_summary" product="default" msgid="3270131542549577953">"暗号化処理が中断されて完了できなかったため端末上のデータにアクセスできなくなりました。\n\n端末の使用を再開するには出荷時設定にリセットする必要があります。リセット後、端末のセットアップの段階で、Googleアカウントにバックアップしたデータの復元を選択できます。"</string>
- <string name="crypt_keeper_data_corrupt_title" msgid="8759119849089795751">"復号化の失敗"</string>
+ <string name="crypt_keeper_data_corrupt_title" msgid="8759119849089795751">"復号の失敗"</string>
<string name="crypt_keeper_data_corrupt_summary" product="tablet" msgid="840107296925798402">"入力したパスワードは正しいのですが、データが破損しています。\n\nタブレットの使用を再開するには出荷時設定にリセットする必要があります。リセット後、タブレットのセットアップの段階で、Googleアカウントにバックアップしたデータの復元を選択できます。"</string>
<string name="crypt_keeper_data_corrupt_summary" product="default" msgid="8843311420059663824">"入力したパスワードは正しいのですが、データが破損しています。\n\nスマートフォンの使用を再開するには出荷時設定にリセットする必要があります。リセット後、スマートフォンのセットアップの段階で、Googleアカウントにバックアップしたデータの復元を選択できます。"</string>
<string name="crypt_keeper_switch_input_method" msgid="4168332125223483198">"入力方法の切り替え"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"デフォルト アプリ"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"言語、時間、バックアップ、アップデート"</string>
<string name="search_results_title" msgid="1796252422574886932">"設定"</string>
- <string name="search_menu" msgid="6283419262313758339">"検索"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, ネットワーク接続, インターネット, ワイヤレス, データ, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, 切り替え, 管理"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"テキスト メッセージ, テキスト送信, メッセージ, メッセージ送信, デフォルト"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"支払い, タップ, ペイメント"</string>
<string name="keywords_backup" msgid="470070289135403022">"バックアップ, バック アップ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"操作"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"フェイス, アンロック"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"顔, フェイス, ロック解除, アンロック, 認証, ログイン"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"IMEI, MEID, MIN, PRL バージョン, IMEI SV"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ネットワーク, モバイル ネットワークの状態, サービスの状態, 電波強度, モバイル ネットワークの種類, ローミング, ICCID"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"シリアル番号, ハードウェア バージョン"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"個人用"</string>
<string name="filter_work_apps" msgid="24519936790795574">"仕事用"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"アプリ: すべて"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"アプリ: OFF"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"OFF にしました"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"カテゴリ: 重要度「緊急」"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"カテゴリ: 重要度「低」"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"カテゴリ: OFF"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"端末を持ち上げて通知をチェック"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"タブレットを持ち上げて通知をチェック"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"端末を持ち上げて通知をチェック"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ディスプレイの復帰"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"時刻、通知などの情報を確認するには、スマートフォンを持ち上げます。"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"時刻、通知などの情報を確認するには、タブレットを持ち上げます。"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"時刻、通知などの情報を確認するには、端末を持ち上げます。"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"リーチ操作"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"wake lock 画面のジェスチャー"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"指紋センサーをスワイプして通知を表示"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"指紋センサーのスワイプ"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"通知を確認するには、スマートフォンの背面にある指紋認証センサーを下にスワイプします。"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"デューティ サイクリングを無効にした状態で、すべての GNSS コンステレーションと頻度をトラッキングします"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"クラッシュ ダイアログを常に表示"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"アプリのクラッシュが発生するごとにダイアログを表示します"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE 対応のアプリを選択してください"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE 対応のアプリは設定されていません"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE 対応のアプリ: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"ディレクトリへのアクセス"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ディレクトリ アクセス"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g>(<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"高頻度仮装パネルを有効にする"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"すべての設定"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"カスタマイズした設定"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS データ"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS データ"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"ネットワークを選択"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"接続が解除されました"</string>
+ <string name="network_connected" msgid="4943925032253989621">"接続しました"</string>
+ <string name="network_connecting" msgid="76404590784733557">"接続しています…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"接続できませんでした"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"ネットワークが見つかりません。"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"ネットワークが見つかりませんでした。もう一度お試しください。"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(禁止)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM カードなし"</string>
</resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 4b0192c..af7f3c7 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"წარსულში დაკავშირებული მოწყობილობები"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"წარსულში დაკავშირებული"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth ჩაირთო"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"ყველას ნახვა"</string>
<string name="date_and_time" msgid="9062980487860757694">"თარიღი და დრო"</string>
<string name="choose_timezone" msgid="1362834506479536274">"დროის ზონის არჩევა"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"მზადაა"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"სახის გამოყენება"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"თქვენი მოწყობილობის განბლოკვა"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"აპებში შესვლა და გადახდა"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"განსაბლოკად გახელილი თვალები"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"სახის ამოცნობის გამოყენებისას თვალები გახელელი უნდა იყოს"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"სახის მონაცემების ამოშლა"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"სახის მონაცემების გაუმჯობესება"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"სახის გამოყენება შეგიძლიათ მოწყობილობის განბლოკვის და აპებზე წვდომის მიზნით. "<annotation id="url">"შეიტყვეთ მეტი"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ნაგულისხმევი აპები"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ენები, დრო, სარეზერვო კოპირება, განახლებები"</string>
<string name="search_results_title" msgid="1796252422574886932">"პარამეტრები"</string>
- <string name="search_menu" msgid="6283419262313758339">"ძიების პარამეტრები"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"WiFi, Wi-Fi, ქსელის კავშირი, ინტერნეტი, უსადენო, მონაცემები, Wi Fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"WiFi, Wi-Fi, გადართვა, მართვა"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"ტექსტური შეტყობინება, ტექსტურ შეტყობინებათა გაგზავნა, შეტყობინებები, მიმოწერა, ნაგულისხმევი"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"გადახდა, შეხება, გადახდები"</string>
<string name="keywords_backup" msgid="470070289135403022">"სარეზერვო ასლი, სარეზერვო ასლის შექმნა"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ჟესტი"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"სახე, განბლოკვა"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"სახე, განბლოკვა, ავტორიზაცია, შესვლა"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"IMEI, MEID, MIN, PRL ვერსია, IMEI SV"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ქსელი, მობილური ქსელის მდგომარეობა, სერვისის მდგომარეობა, სიგნალის სიძლიერე, მობილური ქსელის ტიპი, როუმინგი, ICCID"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"სერიული ნომერი, აპარატურის ვერსია"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"პირადი"</string>
<string name="filter_work_apps" msgid="24519936790795574">"სამუშაო"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"აპები: ყველა"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"აპები: გამორთული"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"გამორთული"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"კატეგორიები: გადაუდებელი"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"კატეგორიები: დაბალი პრიორიტეტი"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"კატეგორიები: გამორთული"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ასწიეთ ტელეფონის შესამოწმებლად"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ასწიეთ ტაბლეტის შესამოწმებლად"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"ასწიეთ მოწყობილობის შესამოწმებლად"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ეკრანის გამოღვიძება"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"დროის, შეტყობინებებისა და სხვა ინფორმაციის სანახავად, აიღეთ ტელეფონი."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"დროის, შეტყობინებებისა და სხვა ინფორმაციის სანახავად, აიღეთ ტაბლეტი."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"დროის, შეტყობინებებისა და სხვა ინფორმაციის სანახავად, აიღეთ მოწყობილობა."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"მიწვდენის ჟესტი"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"ჩაკეტილი ეკრანის გამოღვიძების ჟესტი"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"თითის ანაბეჭდით გადაფურცვლა შეტყობინებების შესამოწმებლად"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ანაბეჭდით გადაფურცვლა"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"თქვენი შეტყობინებების შესამოწმებლად, ჩამოუსვით თითი თითის ანაბეჭდის სენსორს, რომელიც თქვენი ტელეფონის უკანა ნაწილზე მდებარეობს."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ყველა GNSS კონსტელაციისა და სიხშირის აღრიცხვა, დატვირთვის კოეფიციენტის გარეშე"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"ავარიულად გათიშვის დიალოგური ფანჯრის ყოველთვის ჩვენება"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"დიალოგური ფანჯრის ყოველთვის ჩვენება, როცა აპი ავარიულად ითიშება"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"აირჩიეთ ANGLE-ის მხარდაჭერის მქონე აპი"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE-ის მხარდაჭერის მქონე აპლიკაცია არ არის მითითებული"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-ის მხარდაჭერის მქონე აპლიკაცია: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"კატალოგზე წვდომა"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"კატალოგზე წვდომა"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"მაღალი სიხშირეების ვირტუალური პანელის ჩართვა"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ყველა პარამეტრი"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"თქვენი პარამეტრები"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS მონაცემები"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS მონაცემები"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"ქსელის არჩევა"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"კავშირი გაწყვეტილია"</string>
+ <string name="network_connected" msgid="4943925032253989621">"დაკავშირებულია"</string>
+ <string name="network_connecting" msgid="76404590784733557">"მიმდინარეობს დაკავშირება…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"დაკავშირება ვერ მოხერხდა"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"ქსელები ვერ მოიძებნა."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"ქსელები ვერ მოიძებნა. ცადეთ ხელახლა."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(აკრძალული)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM ბარათი არ არის"</string>
</resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 0269f64..46d73d6 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Бұрын байланысқан құрылғылар"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Бұрын қосылған"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth қосылды"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Барлығын көру"</string>
<string name="date_and_time" msgid="9062980487860757694">"Күн және уақыт"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Уақыт аймағын таңдау"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Дайын"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Мүмкіндіктер"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Құрылғы құлпын ашу"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Қолданбаға кіру және төлемдер"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Құлыпты ашу үшін көзіңізді ашыңыз"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Бет аутентификациясын пайдаланған кезде көздеріңізді ашып тұрыңыз"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Бет деректерін өшіру"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Бет деректерін жақсарту"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Бетіңіз арқылы құрылғы құлпын ашуға және қолданбаларға кіруге болады. "<annotation id="url">"Толығырақ"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Әдепкі қолданбалар"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Тілдер, уақыт, сақтық көшірме, жаңартылған нұсқалар"</string>
<string name="search_results_title" msgid="1796252422574886932">"Параметрлер"</string>
- <string name="search_menu" msgid="6283419262313758339">"Параметрлерді іздеу"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"WiFi, Wi-Fi, желілік байланыс, интернет, сымсыз, дерек, Wi Fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, қосу/өшіру, басқару"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"мәтіндік хабар, хат жазу, хабарлар, хабар алмасу, әдепкі"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"төлеу, түрту, төлемдер"</string>
<string name="keywords_backup" msgid="470070289135403022">"сақтық көшірме, сақтық көшірме жасау"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"қимыл"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"бет, құлыпты ашу"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"бет, құлыпты ашу, авторизация, кіру"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, мин, prl нұсқасы, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"желі, мобильдік желі күйі, қызмет күйі, сигнал күші, мобильдік желі түрі, роуминг, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"сериялық нөмір, жабдық нұсқасы"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Жеке"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Жұмыс"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Қолданбалар: барлығы"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Қолданбалар: өшірілген"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Өшірулі"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Санаттар: аса маңызды"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Санаттар: маңыздылығы төмен"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Санаттар: өшірілген"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Телефонды тексеру үшін көтеру"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Планшетті тексеру үшін оны көтеріңіз"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Құрылғыны тексеру үшін оны көтеріңіз"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Экранды ояту"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Уақытты, хабарландыруларды және басқа ақпаратты көру үшін телефоныңызды таңдаңыз."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Уақытты, хабарландыруларды және басқа ақпаратты көру үшін планшетіңізді таңдаңыз."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Уақытты, хабарландыруларды және басқа ақпаратты көру үшін құрылғыңызды таңдаңыз."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Кіру мүмкіндігін алуға арналған қимыл"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Құлып экранын ояту қимылы"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Хабарландыруларды көру үшін саусақ ізін пайдалану"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Саусақ ізі сканері"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Хабарландыруларды көру үшін телефонның артындағы саусақ ізін оқу сканерін саусақпен төмен қарай сипап өтіңіз."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Жұмыс циклінсіз барлық GNSS тізбектері мен жиіліктерін қадағалау"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Ақау туралы хабарларды әрдайым көрсету"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Қолданбада ақау болған сайын, диалог көрсету"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE қолдайтын қолданбаны таңдау"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE қолдайтын ешқандай қолданба орнатылмады"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE қолдайтын қолданба: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Каталогке кіру"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"каталогке кіру"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Виртуалды жоғары жиілік панелін қосу"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Барлық параметрлер"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Параметрлеріңіз"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS деректері"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS деректері"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Желі таңдау"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Ажыратылған"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Жалғанған"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Жалғануда…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Жалғанбады"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Ешқандай желілер табылмады."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Желілер табылмады. Қайталап көріңіз."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(тыйым салынған)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM картасы салынбаған"</string>
</resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 3a42297..bb8e4b3 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"ឧបករណ៍ដែលបានភ្ជាប់ពីមុន"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"បានភ្ជាប់ពីមុន"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"បានបើកប៊្លូធូស"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"មើលទាំងអស់"</string>
<string name="date_and_time" msgid="9062980487860757694">"កាលបរិច្ឆេទ និង ម៉ោង"</string>
<string name="choose_timezone" msgid="1362834506479536274">"ជ្រើសតំបន់ពេលវេលា"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"រួចរាល់"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"ប្រើមុខរបស់អ្នកដើម្បី"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ដោះសោឧបករណ៍របស់អ្នក"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ការចូលកម្មវិធី និងការទូទាត់ប្រាក់"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"បើកភ្នែកដើម្បីដោះសោ"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"អ្នកត្រូវបើកភ្នែក នៅពេលប្រើការផ្ទៀងផ្ទាត់មុខ"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"លុបទិន្នន័យមុខ"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"កែលម្អទិន្នន័យមុខរបស់អ្នក"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"មុខរបស់អ្នកអាចប្រើដើម្បីដោះសោឧបករណ៍របស់អ្នក និងចូលប្រើកម្មវិធីបាន។ "<annotation id="url">"ស្វែងយល់បន្ថែម"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"កម្មវិធីលំនាំដើម"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ភាសា ពេលវេលា ការបម្រុងទុក កំណែថ្មី"</string>
<string name="search_results_title" msgid="1796252422574886932">"ការកំណត់"</string>
- <string name="search_menu" msgid="6283419262313758339">"ស្វែងរកការកំណត់"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, ការតភ្ជាប់បណ្តាញ អ៊ីនធឺណិត ឥតខ្សែ ទិន្នន័យ, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, បិទ/បើក, គ្រប់គ្រង"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"សារជាអក្សរ ការសរសេរសារ សារ ការផ្ញើសារ លំនាំដើម"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"បង់ប្រាក់, ចុច, ការបង់ប្រាក់"</string>
<string name="keywords_backup" msgid="470070289135403022">"ការបម្រុងទុក បម្រុងទុក"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ចលនា"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"មុខ ដោះសោ"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"មុខ ដោះសោ ផ្ទៀងផ្ទាត់ ចូល"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, កំណែ prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"បណ្តាញ, ស្ថានភាពបណ្តាញទូរសព្ទចល័ត, ស្ថានភាពសេវាកម្ម, កម្លាំងរលកសញ្ញា, ប្រភេទបណ្តាញទូរសព្ទចល័ត, រ៉ូមីង, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"លេខស៊េរី កំណែផ្នែករឹង"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ផ្ទាល់ខ្លួន"</string>
<string name="filter_work_apps" msgid="24519936790795574">"កន្លែងធ្វើការ"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"កម្មវិធី៖ ទាំងអស់"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"កម្មវិធី៖ បិទ"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"បានបិទ"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"ប្រភេទ៖ សំខាន់ជាបន្ទាន់"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"ប្រភេទ៖ មិនសូវសំខាន់"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"ប្រភេទ៖ បិទ"</string>
@@ -3885,8 +3888,8 @@
<string name="notification_log_details_none" msgid="184131801230614059">"គ្មាន"</string>
<string name="notification_log_details_ranking_null" msgid="244660392058720919">"បានបាត់វត្ថុដាក់ចំណាត់ថ្នាក់"</string>
<string name="notification_log_details_ranking_none" msgid="599607025882587844">"វត្ថុដាក់ចំណាត់ថ្នាក់មិនផ្ទុកគន្លឹះនេះទេ"</string>
- <string name="display_cutout_emulation" msgid="7466869822418376317">"ស្នាមចោះផ្ទាំងអេក្រង់"</string>
- <string name="display_cutout_emulation_keywords" msgid="4495418317471622562">"ស្នាមចោះផ្ទាំងអេក្រង់ ស្នាមក្រិត"</string>
+ <string name="display_cutout_emulation" msgid="7466869822418376317">"សក់សេះ"</string>
+ <string name="display_cutout_emulation_keywords" msgid="4495418317471622562">"សក់សេះ, ក្បាលឆក"</string>
<string name="display_cutout_emulation_device_default" msgid="7957250558326167503">"លំនាំដើមរបស់ឧបករណ៍"</string>
<string name="special_access" msgid="3458780842491881155">"ការចូលប្រើប្រាស់កម្មវិធីពិសេស"</string>
<plurals name="special_access_summary" formatted="false" msgid="260765309935675867">
@@ -3940,7 +3943,7 @@
<string name="gesture_preference_summary" product="default" msgid="8627850388011956901">"ធ្វើកាយវិការរហ័សដើម្បីគ្រប់គ្រងទូរស័ព្ទរបស់អ្នក"</string>
<string name="gesture_preference_summary" product="tablet" msgid="4717535378272065510">"ធ្វើកាយវិការរហ័សដើម្បីគ្រប់គ្រងថេប្លេតរបស់អ្នក"</string>
<string name="gesture_preference_summary" product="device" msgid="4205941452664950852">"ធ្វើកាយវិការរហ័សដើម្បីគ្រប់គ្រងឧបករណ៍របស់អ្នក"</string>
- <string name="double_tap_power_for_camera_title" msgid="64716226816032800">"លោតទៅកាមេរ៉ា"</string>
+ <string name="double_tap_power_for_camera_title" msgid="64716226816032800">"ប្តូរទៅកាមេរ៉ា"</string>
<string name="double_tap_power_for_camera_summary" msgid="242037150983277829">"ដើម្បីបើកកាមេរ៉ាឲ្យបានរហ័ស សូមចុចប៊ូតុងថាមពលពីរដង។ ដំណើរការនៅលើអេក្រង់ណាមួយក៏បាន។"</string>
<string name="double_tap_power_for_camera_suggestion_title" msgid="6500405261202883589">"បើកកាមេរ៉ាយ៉ាងរហ័ស"</string>
<string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"ត្រឡប់កាមេរ៉ា"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"លើកដើម្បីពិនិត្យទូរសព្ទ"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"លើកដើម្បីពិនិត្យថេប្លេត"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"លើកដើម្បីពិនិត្យឧបករណ៍"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ដាស់ផ្ទាំងអេក្រង់"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"ដើម្បីពិនិត្យមើលម៉ោង ការជូនដំណឹង និងព័ត៌មានផ្សេងទៀត សូមជ្រើសរើសទូរសព្ទរបស់អ្នក។"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"ដើម្បីពិនិត្យមើលម៉ោង ការជូនដំណឹង និងព័ត៌មានផ្សេងទៀត សូមជ្រើសរើសថេប្លេតរបស់អ្នក។"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"ដើម្បីពិនិត្យមើលម៉ោង ការជូនដំណឹង និងព័ត៌មានផ្សេងទៀត សូមជ្រើសរើសឧបករណ៍របស់អ្នក។"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"ចលនាឈោងចុច"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"ចលនាដាស់អេក្រង់ចាក់សោ"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"អូសលើឧបករណ៍ចាប់ស្នាមម្រាមដៃសម្រាប់ការជូនដំណឹង"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"អូសស្នាមម្រាមដៃ"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"ដើម្បីពិនិត្យមើលការជូនដំណឹងរបស់អ្នក សូមអូសចុះក្រោមនៅលើឧបករណ៍ចាប់ស្នាមម្រាមដៃ ដែលស្ថិតនៅផ្នែកខាងក្រោយទូរសព្ទរបស់អ្នក។"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"តាមដានក្រុមរូបថត និងហ្រេ្វកង់ GNSS ទាំងអស់ដែលគ្មានការបែងចែករយៈពេលដំណើរការ"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"បង្ហាញប្រអប់បញ្ចូលនៃការគាំងជានិច្ច"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"បង្ហាញប្រអប់បញ្ចូលរាល់ពេលដែលកម្មវិធីគាំង"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ជ្រើសរើសកម្មវិធីដែលអាចប្រើ ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"មិនមានការកំណត់កម្មវិធីដែលអាចប្រើ ANGLE ទេ"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"កម្មវិធីដែលអាចប្រើ ANGLE៖ <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"ការចូលប្រើបញ្ជី"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ការចូលប្រើបញ្ជី"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"បើកផ្ទាំងប្រេកង់ខ្ពស់និម្មិត"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ការកំណត់ទាំងអស់"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"ការកំណត់របស់អ្នក"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"ទិន្នន័យ CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"ទិន្នន័យ CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"ជ្រើសរើសបណ្តាញ"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"បានផ្ដាច់"</string>
+ <string name="network_connected" msgid="4943925032253989621">"បានភ្ជាប់"</string>
+ <string name="network_connecting" msgid="76404590784733557">"កំពុងភ្ជាប់…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"មិនអាចភ្ជាប់បានទេ"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"រកបណ្ដាញមិនឃើញទេ។"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"រកបណ្ដាញមិនឃើញទេ។ សូមព្យាយាមម្ដងទៀត។"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ហាម)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"គ្មានស៊ីមកាតទេ"</string>
</resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 8d4fd8c..e91aa18 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"ಹಿಂದೆ ಸಂಪರ್ಕಗೊಂಡಿದ್ದ ಸಾಧನಗಳು"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ಹಿಂದೆ ಸಂಪರ್ಕಗೊಂಡಿದ್ದ"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಲಾಗಿದೆ"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"ಎಲ್ಲವನ್ನೂ ನೋಡಿ"</string>
<string name="date_and_time" msgid="9062980487860757694">"ದಿನಾಂಕ & ಸಮಯ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"ಸಮಯದ ವಲಯವನ್ನು ಆರಿಸಿ"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ಮುಗಿದಿದೆ"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"ಇದಕ್ಕೆ ಮುಖ ಬಳಸಿ"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ನಿಮ್ಮ ಸಾಧನವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಿ"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ಆ್ಯಪ್ ಸೈನ್ ಇನ್ & ಪಾವತಿಗಳು"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"ಅನ್ಲಾಕ್ ಮಾಡಲು ಕಣ್ಣು ತೆರೆಯಿರಿ"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"ಮುಖ ದೃಢೀಕರಣವನ್ನು ಬಳಸುವಾಗ, ನಿಮ್ಮ ಕಣ್ಣುಗಳು ತೆರೆದಿರಬೇಕು"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"ಮುಖ ಡೇಟಾ ತೆಗೆದುಹಾಕಿ"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"ನಿಮ್ಮ ಮುಖದ ಡೇಟಾವನ್ನು ಸುಧಾರಿಸಿ"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"ನಿಮ್ಮ ಸಾಧನ ಮತ್ತು ಪ್ರವೇಶ ಆ್ಯಪ್ಗಳನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ನಿಮ್ಮ ಮುಖವನ್ನು ಬಳಸಬಹುದು. "<annotation id="url">"ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಿ"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ಡಿಫಾಲ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳು"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ಭಾಷೆಗಳು, ಸಮಯ, ಬ್ಯಾಕ್ಅಪ್, ಅಪ್ಡೇಟ್ಗಳು"</string>
<string name="search_results_title" msgid="1796252422574886932">"ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
- <string name="search_menu" msgid="6283419262313758339">"ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಹುಡುಕಿ"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"ವೈಫೈ, ವೈ-ಫೈ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕ, ಇಂಟರ್ನೆಟ್, ವೈರ್ಲೆಸ್, ಡೇಟಾ, ವೈ ಫೈ"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"ವೈಫೈ, ವೈ-ಫೈ, ಟಾಗಲ್, ನಿಯಂತ್ರಣ"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"ಪಠ್ಯ ಸಂದೇಶ, ಪಠ್ಯ ಸಂದೇಶ ಕಳುಹಿಸುವಿಕೆ, ಸಂದೇಶಗಳು, ಪಠ್ಯ ಸಂದೇಶ ಮಾಡುವಿಕೆ, ಡಿಫಾಲ್ಟ್"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ಪಾವತಿಸಿ, ಟ್ಯಾಪ್ ಮಾಡಿ, ಪಾವತಿಗಳು"</string>
<string name="keywords_backup" msgid="470070289135403022">"ಬ್ಯಾಕಪ್, ಬ್ಯಾಕ್ ಅಪ್"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ಗೆಸ್ಚರ್"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ಫೇಸ್ ಅನ್ಲಾಕ್"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ಮುಖ, ಅನ್ಲಾಕ್, ದೃಢೀಕರಣ, ಸೈನ್ ಇನ್"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl ಆವೃತ್ತಿ, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ನೆಟ್ವರ್ಕ್, ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ಸ್ಥಿತಿ, ಸೇವಾ ಸ್ಥಿತಿ, ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ, ಮೊಬೈಲ್ ನೆಟ್ವರ್ಕ್ ವಿಧ, ರೋಮಿಂಗ್, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"ಕ್ರಮ ಸಂಖ್ಯೆ, ಹಾರ್ಡ್ವೇರ್ ಆವೃತ್ತಿ"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ವೈಯಕ್ತಿಕ"</string>
<string name="filter_work_apps" msgid="24519936790795574">"ಕೆಲಸ"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"ಅಪ್ಲಿಕೇಶನ್ಗಳು: ಎಲ್ಲ"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"ಆಪ್ಗಳು: ಆಫ್ ಮಾಡಿರುವವು"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ಆಫ್ ಮಾಡಲಾಗಿದೆ"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"ವರ್ಗಗಳು: ತುರ್ತು ಪ್ರಾಮುಖ್ಯತೆ"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"ವರ್ಗಗಳು: ಕಡಿಮೆ ಪ್ರಾಮುಖ್ಯತೆ"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"ವರ್ಗಗಳು: ಆಫ್ ಮಾಡಲಾಗಿದೆ"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ಫೋನ್ ಪರಿಶೀಲಿಸಲು ಕೈಗೆತ್ತಿಕೊಳ್ಳಿ"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ಟ್ಯಾಬ್ಲೆಟ್ ಪರಿಶೀಲಿಸಲು ಎತ್ತಿರಿ"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"ಸಾಧನ ಪರಿಶೀಲಿಸಲು ಕೈಗೆತ್ತಿಕೊಳ್ಳಿ"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ಎಚ್ಚರಿಸುವ ಡಿಸ್ಪ್ಲೇ"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"ಸಮಯ, ಅಧಿಸೂಚನೆಗಳು ಮತ್ತು ಇತರ ಮಾಹಿತಿಯನ್ನು ವೀಕ್ಷಿಸಲು, ನಿಮ್ಮ ಫೋನ್ ಅನ್ನು ಎತ್ತಿಕೊಳ್ಳಿ."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"ಸಮಯ, ಅಧಿಸೂಚನೆಗಳು ಮತ್ತು ಇತರ ಮಾಹಿತಿಯನ್ನು ವೀಕ್ಷಿಸಲು, ನಿಮ್ಮ ಟ್ಯಾಬ್ಲೆಟ್ ಅನ್ನು ಎತ್ತಿಕೊಳ್ಳಿ."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"ಸಮಯ, ಅಧಿಸೂಚನೆಗಳು ಮತ್ತು ಇತರ ಮಾಹಿತಿಯನ್ನು ವೀಕ್ಷಿಸಲು, ನಿಮ್ಮ ಸಾಧನವನ್ನು ಎತ್ತಿಕೊಳ್ಳಿ."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"ಗೆಸ್ಚರ್ ಅನ್ನು ತಲುಪಿ"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"ವೇಕ್ ಲಾಕ್ ಸ್ಕ್ರೀನ್ ಗೆಸ್ಚರ್"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"ಅಧಿಸೂಚನೆಗಳಿಗಾಗಿ ಬೆರಳಚ್ಚು ಸ್ವೈಪ್ ಮಾಡಿ"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ಬೆರಳಚ್ಚು ಸ್ವೈಪ್ ಮಾಡಿ"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"ಅಧಿಸೂಚನೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲು, ನಿಮ್ಮ ಫೋನ್ ಹಿಂಭಾಗದಲ್ಲಿನ ಬೆರಳಚ್ಚು ಸೆನ್ಸರ್ನಲ್ಲಿ ಕೆಳಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡಿ."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ಯಾವುದೇ ಡ್ಯೂಟಿ ಸೈಕ್ಲಿಂಗ್ ಇಲ್ಲದೆ ಎಲ್ಲಾ GNSS ಕಾನ್ಸ್ಟಲೇಶನ್ಗಳು ಮತ್ತು ಆವರ್ತನೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"ಯಾವಾಗಲೂ ಕ್ರ್ಯಾಶ್ ಸಂವಾದವನ್ನು ತೋರಿಸಿ"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"ಅಪ್ಲಿಕೇಶನ್ ಕ್ರ್ಯಾಶ್ ಆಗುವಾಗ ಪ್ರತಿ ಬಾರಿ ಸಂವಾದವನ್ನು ತೋರಿಸಿ"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE ಸಕ್ರಿಯಗೊಳಿಸಿದ ಆ್ಯಪ್ ಆಯ್ಕೆಮಾಡಿ"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ಯಾವುದೇ ANGLE ಸಕ್ರಿಯಗೊಳಿಸದ ಆ್ಯಪ್ ಅನ್ನು ಹೊಂದಿಸಿ"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE ಸಕ್ರಿಯಗೊಳಿಸಿದ ಆ್ಯಪ್: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"ಡೈರೆಕ್ಟರಿ ಪ್ರವೇಶ"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ಡೈರೆಕ್ಟರಿ ಪ್ರವೇಶ"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ವರ್ಚುವಲ್ ಅಧಿಕ ಆವರ್ತನ ಫಲಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ಎಲ್ಲಾ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್ಗಳು"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ಡೇಟಾ"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ಡೇಟಾ"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"ನೆಟ್ವರ್ಕ್ ಆಯ್ಕೆಮಾಡಿ"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ"</string>
+ <string name="network_connected" msgid="4943925032253989621">"ಸಂಪರ್ಕಗೊಂಡಿದೆ"</string>
+ <string name="network_connecting" msgid="76404590784733557">"ಸಂಪರ್ಕಿಸುತ್ತಿದೆ…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"ಯಾವುದೇ ನೆಟ್ವರ್ಕ್ಗಳು ಕಂಡುಬಂದಿಲ್ಲ."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಹುಡುಕಲಾಗಲಿಲ್ಲ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ನಿಷೇಧಿತ)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"ಯಾವುದೇ ಸಿಮ್ ಕಾರ್ಡ್ ಇಲ್ಲ"</string>
</resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 7e6756a..c9dbc24 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"이전에 연결된 기기"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"이전에 연결됨"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"블루투스가 사용 설정됨"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"전체 보기"</string>
<string name="date_and_time" msgid="9062980487860757694">"날짜 및 시간"</string>
<string name="choose_timezone" msgid="1362834506479536274">"시간대 선택"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"완료"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"얼굴로 다음을 인증"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"기기 잠금 해제"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"앱 로그인 & 결제"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"눈을 떠 잠금 해제"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"얼굴 인증을 사용하는 경우 눈을 떠야 합니다."</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"얼굴 데이터 삭제"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"얼굴 데이터 향상"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"얼굴로 기기를 잠금 해제하고 앱에 액세스할 수 있습니다. "<annotation id="url">"자세히 알아보기"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"기본 앱"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"언어, 시간, 백업, 업데이트"</string>
<string name="search_results_title" msgid="1796252422574886932">"설정"</string>
- <string name="search_menu" msgid="6283419262313758339">"설정 검색"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, Wi-Fi, 네트워크 연결, 인터넷, 무선, 데이터, WiFi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"WiFi, Wi-Fi, 전환, 제어"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, 문자 메시지 보내기, 메시지, 메시지 보내기, 기본"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"결제, 탭, 결제"</string>
<string name="keywords_backup" msgid="470070289135403022">"백업, 백 업"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"동작"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"얼굴인식 잠금해제"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"얼굴, 잠금 해제, 승인, 로그인"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"IMEI, MEID, MIN, PRL 버전, IMEI SV"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"네트워크, 모바일 네트워크 상태, 서비스 상태, 신호 강도, 모바일 네트워크 유형, 로밍, ICCID"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"일련번호, 하드웨어 버전"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"개인"</string>
<string name="filter_work_apps" msgid="24519936790795574">"직장"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"앱: 전체"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"앱: 사용 중지됨"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"사용 중지됨"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"카테고리: 중요도 긴급"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"카테고리: 중요도 낮음"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"카테고리: 사용 중지됨"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"들어올려 휴대전화 확인"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"들어서 태블릿 확인"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"들어서 기기 확인"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"디스플레이 대기 모드 해제"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"시간, 알림, 기타 정보를 확인하려면 휴대전화를 들어 올리세요."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"시간, 알림, 기타 정보를 확인하려면 태블릿을 들어 올리세요."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"시간, 알림, 기타 정보를 확인하려면 기기를 들어 올리세요."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"손 뻗기 동작"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Wake lock 화면 동작"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"지문을 스와이프하여 알림 보기"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"지문 스와이프"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"알림을 확인하려면 휴대전화 뒷면의 지문 센서에서 아래로 스와이프합니다."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"사용률 없이 모든 GNSS 배열 및 빈도를 추적"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"비정상 종료 대화상자 항상 표시"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"앱이 비정상 종료될 때마다 대화상자 표시"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE 사용 앱 선택"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE을 사용하도록 설정된 애플리케이션 없음"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE 사용 애플리케이션: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"디렉토리 액세스"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"디렉토리 액세스"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g>(<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4135,7 +4143,7 @@
<string name="battery_suggestion_title" product="default" msgid="4038053023336285165">"휴대전화 배터리 수명 향상"</string>
<string name="battery_suggestion_summary" msgid="4585677159811722359"></string>
<string name="gesture_prevent_ringing_screen_title" msgid="7840226017975251549">"벨 울림 방지"</string>
- <string name="gesture_prevent_ringing_title" msgid="2483159069038138740">"전원 및 볼륨 크게 버튼 함께 누르기"</string>
+ <string name="gesture_prevent_ringing_title" msgid="2483159069038138740">"전원 및 볼륨 업 버튼 함께 누르기"</string>
<string name="gesture_prevent_ringing_sound_title" msgid="5724512060316688779">"벨 울림 방지 단축키"</string>
<string name="prevent_ringing_option_vibrate" msgid="7286821846542822661">"진동"</string>
<string name="prevent_ringing_option_mute" msgid="7551545579059879853">"음소거"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"고주사율 가상 패널을 사용 설정합니다."</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"모든 설정"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"내 설정"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS 데이터"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS 데이터"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"네트워크 선택"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"연결 끊김"</string>
+ <string name="network_connected" msgid="4943925032253989621">"연결됨"</string>
+ <string name="network_connecting" msgid="76404590784733557">"연결 중…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"연결할 수 없음"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"네트워크를 찾을 수 없습니다."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"네트워크를 찾지 못했습니다. 다시 시도해 주세요."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(금지됨)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM 카드 없음"</string>
</resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 92b7e21..220a949 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -178,6 +178,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Мурунтан туташкан түзмөктөр"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Мурда туташкан"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth күйгүзүлдү"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Баарын көрүү"</string>
<string name="date_and_time" msgid="9062980487860757694">"Күн жана убакыт"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Саат алкагын тандаңыз"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -402,6 +403,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Бүттү"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Жүзүңүздү төмөнкүгө колдонуңуз:"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Түзмөктүн кулпусун ачуу"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Колдонмого кирүү жана төлөмдөр"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Кулпуну ачуу үчүн көздү ачуу"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Жүздүн аныктыгын текшерип жатканда көздөрүңүздү ачып турушуңуз керек"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Жүздү өчүрүү"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Жүзүңүздүн сүрөтүн жакшыртыңыз"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Түзмөгүңүздүн кулпусун жүзүңүздү көрсөтүп ачып, колдонмолорго киресиз. "<annotation id="url">"Кеңири маалымат"</annotation></string>
@@ -2944,7 +2948,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Демейки колдонмолор"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Тилдер, убакыт, камдык көчүрмөлөр, жаңыртуулар"</string>
<string name="search_results_title" msgid="1796252422574886932">"Жөндөөлөр"</string>
- <string name="search_menu" msgid="6283419262313758339">"Жөндөөлөрдү издөө"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, тармак туташуусу, интернет, зымсыз, дайындар, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, өчүрүү/күйгүзүү, көзөмөлдөө"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, SMS жөнөтүү, билдирүүлөр, SMS/MMS, демейки"</string>
@@ -2989,7 +2992,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"төлөө, таптоо, төлөмдөр"</string>
<string name="keywords_backup" msgid="470070289135403022">"камдык көчүрмөнү сактоо, камдык көчүрмөнү сактоо"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"жаңсоо"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"жүз, кулпуну ачуу"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"жүз, кулпуну ачуу, аутентификация, кирүү"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl версиясы, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"тармак, мобилдик тармактын абалы, кызматтын абалы, сигналдын күчү, мобилдик тармактын түрү, роуминг, смарт-картанын идентификатору"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"сериялык номер, аппараттык камсыздоонун версиясы"</string>
@@ -3482,7 +3485,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Жеке"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Жумуш"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Колдонмолор: Баары"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Колдонмолор: Өчүрүлгөн"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Өчүрүлдү"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Категориялар: Өтө маанилүү"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Категориялар: Маанилүүлү эмес"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Категориялар: Өчүрүлгөн"</string>
@@ -3956,11 +3959,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Билдирмелерди текшерүү үчүн телефонду көтөрүү"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Планшетти текшерүү үчүн көтөрүңүз"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Түзмөктү текшерүү үчүн көтөрүңүз"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Дисплейди ачуу"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн телефонуңузду колуңузга алыңыз."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн планшетиңизди колуңузга алыңыз."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн түзмөгүңүздү колуңузга алыңыз."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Жетүү жаңсоосу"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Кулпуланган экранды ачуу жаңсоосу"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Билдирмелерди манжа изинин сенсору менен көрүү"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Манжа изинин сканери"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Билдирмелериңизди текшерүү үчүн телефондун аркасындагы манжа изинин сенсорун ылдый сүртүп коюңуз"</string>
@@ -4105,6 +4110,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Иштөө цикли өчүрүлүп, бардык GNSS топторуна жана жыштыктарга көз салынат"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Ката диалогун ар дайым көрсөтүү"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Колдонмо бузулган сайын диалог көрүнөт"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE иштетилген колдонмону тандоо"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE иштетилген колдонмо жөндөлгөн жок"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE иштетилген колдонмо: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Каталогго мүмкүнчүлүк алуу"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"катталууга мүмкүнчүлүк алуу"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4133,9 +4141,9 @@
<string name="battery_suggestion_title" product="device" msgid="1507272328369733005">"Түзмөктүн батареясынын кубатынын мөөнөтүн көбөйтүү"</string>
<string name="battery_suggestion_title" product="default" msgid="4038053023336285165">"Телефондун батареясынын кубатынын мөөнөтүн көбөйтүү"</string>
<string name="battery_suggestion_summary" msgid="4585677159811722359"></string>
- <string name="gesture_prevent_ringing_screen_title" msgid="7840226017975251549">"Шыңгыратууну өчүрүү"</string>
+ <string name="gesture_prevent_ringing_screen_title" msgid="7840226017975251549">"Шыңгырдын үнүн өчүрүү"</string>
<string name="gesture_prevent_ringing_title" msgid="2483159069038138740">"Кубат менен үнүн чоңойтуу баскычтарын чогуу басуу"</string>
- <string name="gesture_prevent_ringing_sound_title" msgid="5724512060316688779">"Шыңгыратууну өчүрүү баскычы"</string>
+ <string name="gesture_prevent_ringing_sound_title" msgid="5724512060316688779">"Шыңгырдын үнүн ыкчам өчүрүү"</string>
<string name="prevent_ringing_option_vibrate" msgid="7286821846542822661">"Дирилдөө"</string>
<string name="prevent_ringing_option_mute" msgid="7551545579059879853">"Үнсүз"</string>
<string name="prevent_ringing_option_none" msgid="4656046650769569175">"Эч нерсе кылынбасын"</string>
@@ -4149,24 +4157,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Виртуалдык жогорку жыштык панелин иштетүү"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Бардык жөндөөлөр"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Жөндөөлөр"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Жарандык радио кызматынын дайындары"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Жарандык радио кызматынын дайындары"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Тармакты тандоо"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Ажыратылды"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Туташты"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Туташууда…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Туташпай койду"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Эч тармак табылган жок."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Тармактар табылбай койду. Кайра аракет кылыңыз."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(тыюу салынган)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM-карта жок"</string>
</resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 79d3de3..00d0c7d 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"ອຸປະກອນທີ່ເຊື່ອມຕໍ່ກ່ອນໜ້າ"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ເຊື່ອມຕໍ່ກ່ອນໜ້ານີ້"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ເປີດ Bluetooth ແລ້ວ"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"ເບິ່ງທັງໝົດ"</string>
<string name="date_and_time" msgid="9062980487860757694">"ວັນທີ & ເວລາ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"ເລືອກເຂດເວລາ"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ແລ້ວໆ"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"ໃຊ້ໃບໜ້າຂອງທ່ານເພື່ອ"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ປົດລັອກອຸປະກອນຂອງທ່ານ"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ການເຂົ້າສູ່ລະບົບແອັບ ແລະ ການຈ່າຍເງິນ"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"ເປີດຕາເພື່ອປົດລັອກ"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"ເມື່ອໃຊ້ການພິສູດຢືນຢັນໃບໜ້າ, ທ່ານຕ້ອງມືນຕານຳ"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"ລຶບຂໍ້ມູນໃບໜ້າອອກ"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"ປັບປຸງຂໍ້ມູນໃບໜ້າຂອງທ່ານ"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"ໃບໜ້າຂອງທ່ານສາມາດໃຊ້ເພື່ອປົດລັອກອຸປະກອນ ແລະ ເຂົ້າເຖິງແອັບຕ່າງໆໄດ້. "<annotation id="url">"ສຶກສາເພີ່ມເຕີມ"</annotation></string>
@@ -2511,7 +2515,7 @@
<string name="sync_enabled" msgid="4551148952179416813">"ການຊິ້ງຂໍ້ມູນຖືກເປີດໃຊ້"</string>
<string name="sync_disabled" msgid="8511659877596511991">"ການຊິ້ງຂໍ້ມູນຖືກປິດຢູ່"</string>
<string name="sync_error" msgid="5060969083117872149">"ການຊິ້ງຂໍ້ມູນຜິດພາດ"</string>
- <string name="last_synced" msgid="4242919465367022234">"ຊິ້ງຂໍ້ມູນຄັ້ງຫຼ້າສຸດ <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string>
+ <string name="last_synced" msgid="4242919465367022234">"ຊິ້ງຂໍ້ມູນຫຼ້າສຸດ <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string>
<string name="sync_in_progress" msgid="5151314196536070569">"ກຳລັງຊິ້ງຂໍ້ມູນ..."</string>
<string name="settings_backup" msgid="2274732978260797031">"ສຳຮອງຂໍ້ມູນການຕັ້ງຄ່າ"</string>
<string name="settings_backup_summary" msgid="7916877705938054035">"ສຳຮອງຂໍ້ມູນການຕັ້ງຄ່າຂອງຂ້ອຍ"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ແອັບເລີ່ມຕົ້ນ"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ພາສາ, ເວລາ, ຂໍ້ມູນສຳຮອງ, ອັບເດດ"</string>
<string name="search_results_title" msgid="1796252422574886932">"ການຕັ້ງຄ່າ"</string>
- <string name="search_menu" msgid="6283419262313758339">"ຊອກຫາການຕັ້ງຄ່າ"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, ການເຊື່ອມຕໍ່ເຄືອຂ່າຍ, ອິນເຕີເນັດ, ໄຮ້ສາຍ, ຂໍ້ມູນ, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, ເປີດ/ປິດ, ຄວບຄຸມ"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"ຂໍ້ຄວາມ, ຄ່າເລີ່ມຕົ້ນ"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pay, tap, payments"</string>
<string name="keywords_backup" msgid="470070289135403022">"ສຳຮອງຂໍ້ມູນ, ສຳຮອງ ຂໍ້ມູນ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ທ່າທາງ"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ການປົດລັອກ, ໃບໜ້າ"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ໃບໜ້າ, ປົດລັອກ, ການຢືນຢັນ, ເຂົ້າສູ່ລະບົບ"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, ເວີຊັນ prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ເຄືອຂ່າຍ, ສະຖານະເຄືອຂ່າຍມືຖື, ສະຖານະບໍລິການ, ຄວາມແຮງສັນຍນານ, ປະເພດເຄືອຂ່າຍມືຖື, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"ໝາຍເລກຊີຣຽວ, ເວີຊັນຮາດແວ"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ສ່ວນໂຕ"</string>
<string name="filter_work_apps" msgid="24519936790795574">"ວຽກ"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"ແອັບ: ທັງໝົດ"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"ແອັບ: ປິດໄວ້ແລ້ວ"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ປິດໄວ້ແລ້ວ"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"ໝວດໝູ່: ຄວາມສຳຄັນເລັ່ງດ່ວນ"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"ໝວດໝູ່: ຄວາມສຳຄັນຕ່ຳ"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"ໝວດໝູ່: ປິດໄວ້ແລ້ວ"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ຍົກຂຶ້ນເພື່ອກວດສອບໂທລະສັບ"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ຍົກຂຶ້ນເພື່ອກວດສອບແທັບເລັດ"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"ຍົກຂຶ້ນເພື່ອກວດສອບອຸປະກອນ"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ໜ້າຈໍປຸກ"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"ເພື່ອກວດສອບເວລາ, ການແຈ້ງເຕືອນ ແລະ ຂໍ້ມູນອື່ນໆ, ໃຫ້ຍົກໂທລະສັບຂອງທ່ານຂຶ້ນ."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"ເພື່ອກວດສອບເວລາ, ການແຈ້ງເຕືອນ ແລະ ຂໍ້ມູນອື່ນໆ, ໃຫ້ຍົກແທັບເລັດຂອງທ່ານຂຶ້ນ."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"ເພື່ອກວດສອບເວລາ, ການແຈ້ງເຕືອນ ແລະ ຂໍ້ມູນອື່ນໆ, ໃຫ້ຍົກອຸປະກອນຂອງທ່ານຂຶ້ນ."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"ທ່ານທາງເຂົ້າເຖິງ"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"ທ່າທາງປຸກໜ້າຈໍລັອກ"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"ປັດລາຍນິ້ວມືສຳລັບການແຈ້ງເຕືອນ"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ປັດລາຍນິ້ວມື"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"ເພື່ອກວດເບິ່ງການແຈ້ງເຕືອນຂອງທ່ານ, ໃຫ້ເລື່ອນລົງໃສ່ເຊັນເຊີນລາຍນິ້ວມືທີ່ຢູ່ຫຼັງໂທລະສັບຂອງທ່ານ"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ຕິດຕາມກຸ່ມ ແລະ ຄວາມຖີ່ GNSS ທັງໝົດໂດຍບໍ່ມີຮອບຕາມພັນທະ"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"ສະແດງກ່ອງຂໍ້ຄວາມການເຮັດວຽກລົ້ມເຫລວທຸກເທື່ອ"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"ສະແດງກ່ອງຂໍ້ຄວາມທຸກເທື່ອທີ່ແອັບເຮັດວຽກລົ້ມເຫລວ"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ເລືອກແອັບທີ່ໃຊ້ ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ບໍ່ໄດ້ກຳນົດເອັບທີ່ເປີດໃຊ້ ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ແອັບທີ່ເປີດໃຊ້ ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"ການເຂົ້າເຖິງໄດເຣັກທໍຣີ"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ການເຂົ້າເຖິງໄດເຣັກທໍຣີ"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ເປີດໃຊ້ແຜງຄວາມຖີ່ສູງແບບສະເໝືອນ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ການຕັ້ງຄ່າທັງໝົດ"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"ການຕັ້ງຄ່າຂອງທ່ານ"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"ຂໍ້ມູນ CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"ຂໍ້ມູນ CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"ເລືອກເຄືອຂ່າຍ"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"ຕັດການເຊື່ອມຕໍ່ແລ້ວ"</string>
+ <string name="network_connected" msgid="4943925032253989621">"ເຊື່ອມຕໍ່ແລ້ວ"</string>
+ <string name="network_connecting" msgid="76404590784733557">"ກຳລັງເຊື່ອມຕໍ່…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"ບໍ່ສາມາດເຊື່ອມຕໍ່ໄດ້"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"ບໍ່ພົບເຄືອຂ່າຍ."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"ບໍ່ພົບເຄືອຂ່າຍ. ກະລຸນາລອງໃໝ່ອີກເທື່ອໜຶ່ງ."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ຕ້ອງຫ້າມ)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"ບໍ່ມີຊິມກາດ"</string>
</resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index b749636..df99679 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -286,7 +286,7 @@
<item msgid="1474039653814954902">"pridėti balso pašto pranešimą"</item>
<item msgid="7222837656938871633">"naudoti SIP"</item>
<item msgid="6108267038969274380">"apdoroti siunčiamąjį skambutį"</item>
- <item msgid="4823402479973873358">"kontrolinis kodas"</item>
+ <item msgid="4823402479973873358">"piršto antspaudas"</item>
<item msgid="5895843015407713543">"kūno jutikliai"</item>
<item msgid="1436446526955010826">"skaityti transliacijas mobiliuoju"</item>
<item msgid="884172201575690484">"imituoti vietovę"</item>
@@ -353,7 +353,7 @@
<item msgid="4542463358215230845">"Pridėti balso pašto pranešimą"</item>
<item msgid="864565065016166003">"Naudoti SIP"</item>
<item msgid="1958009349883195116">"Apdoroti siunčiamąjį skambutį"</item>
- <item msgid="8526563410140613458">"Kontrolinis kodas"</item>
+ <item msgid="8526563410140613458">"Piršto antspaudas"</item>
<item msgid="7864822459293570891">"Kūno jutikliai"</item>
<item msgid="6798698496904810960">"Skaityti transliacijas mobiliuoju"</item>
<item msgid="5242052845700875820">"Imituoti vietovę"</item>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 39cd0da..034fad7 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -181,6 +181,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Anksčiau prijungti įrenginiai"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Anksčiau susieti"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"„Bluetooth“ įjungtas"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Žr. viską"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data ir laikas"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Pasirinkite laiko juostą"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -358,7 +359,7 @@
<string name="security_enable_widgets_title" msgid="2754833397070967846">"Įgalinti valdiklius"</string>
<string name="security_enable_widgets_disabled_summary" msgid="6392489775303464905">"Išjungė administratorius"</string>
<string name="lockdown_settings_title" msgid="7393790212603280213">"Rodyti užrakinimo parinktį"</string>
- <string name="lockdown_settings_summary" msgid="429230431748285997">"Rodyti maitinimo mygtuko parinktį, kuri išjungia „Smart Lock“, atrakinimą naudojant kontrolinį kodą ir užrakinimo ekrano pranešimus"</string>
+ <string name="lockdown_settings_summary" msgid="429230431748285997">"Rodyti maitinimo mygtuko parinktį, kuri išjungia „Smart Lock“, atrakinimą naudojant piršto antspaudą ir užrakinimo ekrano pranešimus"</string>
<string name="owner_info_settings_summary" msgid="7472393443779227052">"Nėra"</string>
<string name="owner_info_settings_status" msgid="120407527726476378">"<xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
<string name="owner_info_settings_edit_text_hint" msgid="7591869574491036360">"Pvz., Tomo „Android“."</string>
@@ -383,7 +384,7 @@
<string name="disabled_by_administrator_summary" msgid="1601828700318996341">"Išjungė administratorius"</string>
<string name="security_status_title" msgid="5848766673665944640">"Saugos būsena"</string>
<string name="security_dashboard_summary_face" msgid="268234254306703218">"Ekrano užraktas, atrakinimas pagal veidą"</string>
- <string name="security_dashboard_summary" msgid="6757421634477554939">"Ekrano užraktas, kontrolinis kodas"</string>
+ <string name="security_dashboard_summary" msgid="6757421634477554939">"Ekrano užraktas, piršto antspaudas"</string>
<string name="security_dashboard_summary_no_fingerprint" msgid="8129641548372335540">"Ekrano užraktas"</string>
<string name="security_settings_face_preference_summary" msgid="1290187225482642821">"Veidas pridėtas"</string>
<string name="security_settings_face_preference_summary_none" msgid="5460349732790152186">"Palieskite, kad nust. veido autentifik."</string>
@@ -407,13 +408,16 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Atlikta"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Veido naudojimas"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Atrakinti įrenginį"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Prisij. prie progr. ir mokėj."</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Atrakinti, jei akys atmerktos"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Naudojant veido autentifikavimą, akys turi būti atmerktos"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Pašal. veido duom."</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Patobulinti veido duomenis"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Veidas gali būti naudojamas norint atrakinti įrenginį ir pasiekti programas. "<annotation id="url">"Sužinokite daugiau"</annotation></string>
<string name="security_settings_fingerprint_preference_title" msgid="2488725232406204350">"Kontr. kodo jutiklis"</string>
<string name="fingerprint_manage_category_title" msgid="8293801041700001681">"Kontrolin. kodų tvark."</string>
<string name="fingerprint_usage_category_title" msgid="8438526918999536619">"Kontrolinių kodų naud."</string>
- <string name="fingerprint_add_title" msgid="1926752654454033904">"Pridėti kontrolinį kodą"</string>
+ <string name="fingerprint_add_title" msgid="1926752654454033904">"Pridėti piršto antspaudą"</string>
<string name="fingerprint_enable_keyguard_toggle_title" msgid="5078060939636911795">"ekrano užraktas"</string>
<plurals name="security_settings_fingerprint_preference_summary" formatted="false" msgid="624961700033979880">
<item quantity="one">Nustatytas <xliff:g id="COUNT_1">%1$d</xliff:g> piršto atspaudas</item>
@@ -423,16 +427,16 @@
</plurals>
<string name="security_settings_fingerprint_preference_summary_none" msgid="1507739327565151923"></string>
<string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"Atrakinimas piršto atspaudu"</string>
- <string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7066417934622827305">"Kontrolinio kodo naudojimas"</string>
- <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"Tiesiog palieskite kontrolinio kodo jutiklį, kad galėtumėte atrakinti telefoną, įgalioti pirkimo operacijas arba prisijungti prie programų. Naudojant visus pridėtus kontrolinius kodus bus galima atlikti šiuos veiksmus, todėl atidžiai rinkitės, kieno kontrolinius kodus pridedate.\n\nPastaba: kontrolinis kodas gali būti ne toks saugus kaip sudėtingas atrakinimo piešinys ar PIN kodas."</string>
+ <string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7066417934622827305">"Piršto antspaudo naudojimas"</string>
+ <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"Tiesiog palieskite piršto antspaudo jutiklį, kad galėtumėte atrakinti telefoną, įgalioti pirkimo operacijas arba prisijungti prie programų. Naudojant visus pridėtus kontrolinius kodus bus galima atlikti šiuos veiksmus, todėl atidžiai rinkitės, kieno kontrolinius kodus pridedate.\n\nPastaba: piršto antspaudas gali būti ne toks saugus kaip sudėtingas atrakinimo piešinys ar PIN kodas."</string>
<string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1550756694054944874">"Atrakinkite telefoną ir patvirtinkite pirkimo operacijas piršto atspaudu.\n\nPastaba: negalite atrakinti šio įrenginio piršto atspaudu. Norėdami gauti daugiau informacijos, susisiekite su organizacijos administratoriumi."</string>
<string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6817326798834882531">"Atrakinkite telefoną ir patvirtinkite pirkimo operacijas piršto atspaudu.\n\nPastaba: piršto atspaudas gali būti ne toks saugus kaip patikimas atrakinimo piešinys ar PIN kodas."</string>
<string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="3199351118385606526">"Atšaukti"</string>
<string name="security_settings_fingerprint_enroll_introduction_continue" msgid="7472492858148162530">"Tęsti"</string>
<string name="security_settings_fingerprint_enroll_introduction_cancel_setup" msgid="5021369420474432665">"Praleisti"</string>
<string name="security_settings_fingerprint_enroll_introduction_continue_setup" msgid="1961957425135180242">"Kitas"</string>
- <string name="setup_fingerprint_enroll_skip_title" msgid="362050541117362034">"Praleisti kontrolinį kodą?"</string>
- <string name="setup_fingerprint_enroll_skip_after_adding_lock_text" msgid="958990414356204763">"Kontrolinio kodo sąranka užtrunka tik minutę ar dvi. Jei praleisite šį veiksmą, vėliau kontrolinį kodą galėsite pridėti nustatymuose."</string>
+ <string name="setup_fingerprint_enroll_skip_title" msgid="362050541117362034">"Praleisti piršto antspaudą?"</string>
+ <string name="setup_fingerprint_enroll_skip_after_adding_lock_text" msgid="958990414356204763">"Piršto antspaudo sąranka užtrunka tik minutę ar dvi. Jei praleisite šį veiksmą, vėliau piršto antspaudą galėsite pridėti nustatymuose."</string>
<string name="lock_screen_intro_skip_title" msgid="4988210105913705679">"Praleisti ekrano užraktą?"</string>
<string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="1581834104051243425">"Įrenginio apsaugos funkcijos nebus įjungtos. Negalėsite užtikrinti, kad kiti asmenys negalėtų pasinaudoti planšetiniu kompiuteriu, jei jis bus pavogtas ar nustatytas iš naujo arba jį pamesite."</string>
<string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="4629503416877189572">"Įrenginio apsaugos funkcijos nebus įjungtos. Negalėsite užtikrinti, kad kiti asmenys negalėtų pasinaudoti įrenginiu, jei jis bus pavogtas ar nustatytas iš naujo arba jį pamesite."</string>
@@ -444,7 +448,7 @@
<string name="go_back_button_label" msgid="4745265266186209467">"Grįžti"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="3051496861358227199">"Palieskite jutiklį"</string>
<string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="8793966374365960368">"Jis yra telefono užpakalinėje dalyje. Naudokite smilių."</string>
- <string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="2058830032070449160">"Įrenginio ir kontrolinio kodo jutiklio vietos iliustracija"</string>
+ <string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="2058830032070449160">"Įrenginio ir piršto antspaudo jutiklio vietos iliustracija"</string>
<string name="security_settings_fingerprint_enroll_dialog_name_label" msgid="7086763077909041106">"Pavadinimas"</string>
<string name="security_settings_fingerprint_enroll_dialog_ok" msgid="4150384963879569750">"Gerai"</string>
<string name="security_settings_fingerprint_enroll_dialog_delete" msgid="4114615413240707936">"Ištrinti"</string>
@@ -453,7 +457,7 @@
<string name="security_settings_fingerprint_enroll_repeat_title" msgid="2819679722403209778">"Patraukite ir vėl prilieskite"</string>
<string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Vis patraukite pirštą, kad pridėtumėte skirtingas piršto atspaudo dalis"</string>
<string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Piršto atspaudas pridėtas"</string>
- <string name="security_settings_fingerprint_enroll_finish_message" msgid="8970048776120548976">"Kai rodoma ši piktograma, tapatybei nustatyti ar pirkimo operacijai patvirtinti naudokite kontrolinį kodą"</string>
+ <string name="security_settings_fingerprint_enroll_finish_message" msgid="8970048776120548976">"Kai rodoma ši piktograma, tapatybei nustatyti ar pirkimo operacijai patvirtinti naudokite piršto antspaudą"</string>
<string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="3710211704052369752">"Atlikti vėliau"</string>
<string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Praleisti pirštų atspaudų nustatymą?"</string>
<string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Pasirinkote naudoti piršto atspaudą kaip vieną iš telefono atrakinimo būdų. Jei praleisite dabar, turėsite nustatyti funkciją vėliau. Nustatymas apytiksliai užtruks tik minutę."</string>
@@ -462,23 +466,23 @@
<string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="1863561601428695160">"Oi, tai ne jutiklis"</string>
<string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="2989019978041986175">"Smiliumi palieskite jutiklį tel. užp. dalyje."</string>
<string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="3618021988442639280">"Registracija neužbaigta"</string>
- <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="2942551158278899627">"Pasiektas kontrolinio kodo registracijos laiko apribojimas. Bandykite dar kartą."</string>
- <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="3624760637222239293">"Nepavyko užregistruoti kontrolinio kodo. Bandykite dar kartą arba atlikite tai kitu pirštu."</string>
+ <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="2942551158278899627">"Pasiektas piršto antspaudo registracijos laiko apribojimas. Bandykite dar kartą."</string>
+ <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="3624760637222239293">"Nepavyko užregistruoti piršto antspaudo. Bandykite dar kartą arba atlikite tai kitu pirštu."</string>
<string name="fingerprint_enroll_button_add" msgid="6317978977419045463">"Pridėti kitą"</string>
<string name="fingerprint_enroll_button_next" msgid="6247009337616342759">"Kitas"</string>
- <string name="security_settings_fingerprint_enroll_disclaimer" msgid="2624905914239271751">"Naudodami kontrolinį kodą galite atrakinti telefoną, be to, galite įgalioti pirkimo veiksmus ir programų prieigą. "<annotation id="url">"Sužinokite daugiau"</annotation></string>
- <string name="security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled" msgid="7846871823167357942">" Ekrano užrakto parinktis išjungta. Jei norite sužinoti daugiau, susisiekite su savo organizacijos administratoriumi. "<annotation id="admin_details">"Daugiau išsamios informacijos"</annotation>\n\n"Vis tiek galite naudoti savo kontrolinį kodą ir įgalioti pirkinius bei prieigą prie programų. "<annotation id="url">"Sužinokite daugiau"</annotation></string>
+ <string name="security_settings_fingerprint_enroll_disclaimer" msgid="2624905914239271751">"Naudodami piršto antspaudą galite atrakinti telefoną, be to, galite įgalioti pirkimo veiksmus ir programų prieigą. "<annotation id="url">"Sužinokite daugiau"</annotation></string>
+ <string name="security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled" msgid="7846871823167357942">" Ekrano užrakto parinktis išjungta. Jei norite sužinoti daugiau, susisiekite su savo organizacijos administratoriumi. "<annotation id="admin_details">"Daugiau išsamios informacijos"</annotation>\n\n"Vis tiek galite naudoti savo piršto antspaudą ir įgalioti pirkinius bei prieigą prie programų. "<annotation id="url">"Sužinokite daugiau"</annotation></string>
<string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1888772560642539718">"Patraukite pirštą, tada vėl palieskite jutiklį"</string>
<string name="fingerprint_add_max" msgid="1020927549936895822">"Galite pridėti iki <xliff:g id="COUNT">%d</xliff:g> kontrol. kod."</string>
<string name="fingerprint_intro_error_max" msgid="6864066984678078441">"Pridėjote maksimalų skaičių kontrolinių kodų"</string>
<string name="fingerprint_intro_error_unknown" msgid="1905692132326523040">"Negalima pridėti daugiau kontrolinių kodų"</string>
<string name="fingerprint_last_delete_title" msgid="6410310101247028988">"Pašalinti visus kontrolinius kodus?"</string>
<string name="fingerprint_delete_title" msgid="1368196182612202898">"Pašalinti „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“"</string>
- <string name="fingerprint_delete_message" msgid="8597787803567398131">"Ar norite ištrinti šį kontrolinį kodą?"</string>
+ <string name="fingerprint_delete_message" msgid="8597787803567398131">"Ar norite ištrinti šį piršto antspaudą?"</string>
<string name="fingerprint_last_delete_message" msgid="7852321001254275878">"Negalėsite naudoti kontrolinių kodų norėdami atrakinti telefoną, įgalioti pirkimo procesus ar prisijungti prie programų"</string>
<string name="fingerprint_last_delete_message_profile_challenge" msgid="6521520787746771912">"Negalėsite naudoti kontrolinių kodų norėdami atrakinti darbo profilį, įgalioti pirkimo operacijas ar prisijungti prie darbo programų"</string>
<string name="fingerprint_last_delete_confirm" msgid="2634726361059274289">"Taip, pašalinti"</string>
- <string name="confirm_fingerprint_icon_content_description" msgid="5255544532157079096">"Naudokite kontrolinį kodą, kad galėtumėte tęsti."</string>
+ <string name="confirm_fingerprint_icon_content_description" msgid="5255544532157079096">"Naudokite piršto antspaudą, kad galėtumėte tęsti."</string>
<string name="crypt_keeper_settings_title" msgid="4219233835490520414">"Šifruotė"</string>
<string name="crypt_keeper_encrypt_title" product="tablet" msgid="1060273569887301457">"Šifruoti planšetinį kompiuterį"</string>
<string name="crypt_keeper_encrypt_title" product="default" msgid="1878996487755806122">"Šifruoti telefoną"</string>
@@ -550,11 +554,11 @@
<string name="unlock_set_unlock_password_summary" msgid="8856220848940929546">"Aukštas saugos lygis"</string>
<string name="unlock_set_do_later_title" msgid="4894767558414979243">"Ne dabar"</string>
<string name="current_screen_lock" msgid="4104091715420072219">"Esamas ekrano užraktas"</string>
- <string name="fingerprint_unlock_set_unlock_pattern" msgid="4939057588092120368">"Kontrolinis kodas + atrakinimo piešinys"</string>
- <string name="fingerprint_unlock_set_unlock_pin" msgid="8010746824051056986">"Kontrolinis kodas + PIN kodas"</string>
- <string name="fingerprint_unlock_set_unlock_password" msgid="7351131075806338634">"Kontrolinis kodas + slaptažodis"</string>
- <string name="fingerprint_unlock_skip_fingerprint" msgid="1441077909803666681">"Tęsti be kontrolinio kodo"</string>
- <string name="fingerprint_unlock_title" msgid="2826226740306003991">"Telefoną galite atrakinti kontroliniu kodu. Saugos sumetimais, įgalinus šią parinktį, reikia naudoti atsarginį ekrano užraktą."</string>
+ <string name="fingerprint_unlock_set_unlock_pattern" msgid="4939057588092120368">"Piršto antspaudas + atrakinimo piešinys"</string>
+ <string name="fingerprint_unlock_set_unlock_pin" msgid="8010746824051056986">"Piršto antspaudas + PIN kodas"</string>
+ <string name="fingerprint_unlock_set_unlock_password" msgid="7351131075806338634">"Piršto antspaudas + slaptažodis"</string>
+ <string name="fingerprint_unlock_skip_fingerprint" msgid="1441077909803666681">"Tęsti be piršto antspaudo"</string>
+ <string name="fingerprint_unlock_title" msgid="2826226740306003991">"Telefoną galite atrakinti piršto antspaudu. Saugos sumetimais, įgalinus šią parinktį, reikia naudoti atsarginį ekrano užraktą."</string>
<string name="face_unlock_set_unlock_pattern" msgid="8792301636367000123">"Veido autentifikavimas ir atrakinimo piešinys"</string>
<string name="face_unlock_set_unlock_pin" msgid="1196620299595657479">"Veido autentifikavimas ir PIN kodas"</string>
<string name="face_unlock_set_unlock_password" msgid="223117276773907474">"Veido autentifikavimas ir slaptažodis"</string>
@@ -566,7 +570,7 @@
<string name="unlock_set_unlock_mode_pattern" msgid="7837270780919299289">"Piešinys"</string>
<string name="unlock_set_unlock_mode_pin" msgid="3541326261341386690">"PIN kodas"</string>
<string name="unlock_set_unlock_mode_password" msgid="1203938057264146610">"Slaptažodis"</string>
- <string name="unlock_setup_wizard_fingerprint_details" msgid="7893457665921363009">"Kai nustatysite ekrano užraktą, taip pat galėsite nustatyti kontrolinį kodą skiltyje „Nustatymai > Sauga“."</string>
+ <string name="unlock_setup_wizard_fingerprint_details" msgid="7893457665921363009">"Kai nustatysite ekrano užraktą, taip pat galėsite nustatyti piršto antspaudą skiltyje „Nustatymai > Sauga“."</string>
<string name="unlock_disable_lock_title" msgid="1427036227416979120">"Išjungti ekrano užraktą"</string>
<string name="unlock_disable_frp_warning_title" msgid="264008934468492550">"Pašalinti įrenginio apsaugą?"</string>
<string name="unlock_disable_frp_warning_title_profile" msgid="5507136301904313583">"Pašalinti profilio apsaugą?"</string>
@@ -3021,7 +3025,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Numatytosios programos"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Kalbos, laikas, atsarginė kopija, naujiniai"</string>
<string name="search_results_title" msgid="1796252422574886932">"Nustatymai"</string>
- <string name="search_menu" msgid="6283419262313758339">"Ieškoti nustatymų"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, tinklo ryšys, internetas, belaidis ryšys, duomenys, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, perjungimas, valdymas"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"teksto pranešimas, žinutės siuntimas, pranešimai, susirašinėjimas, numatytasis"</string>
@@ -3066,7 +3069,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"mokėti, paliesti, mokėjimai"</string>
<string name="keywords_backup" msgid="470070289135403022">"atsarginė kopija, kurti atsarginę kopiją"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gestas"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"veidas, atrakinimas"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"veidas, atrakinti, autentifikavimas, prisijungti"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"IMEI, MEID, MIN, PRL versija, IMEI SV"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"tinklas, mobiliojo ryšio tinklo būsena, paslaugos būsena, signalo stiprumas, mobiliojo ryšio tinklo tipas, tarptinklinis ryšys, ICCID"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serijos numeris, aparatinės įrangos versija"</string>
@@ -3075,7 +3078,7 @@
<string name="keywords_device_feedback" msgid="564493721125966719">"riktas"</string>
<string name="keywords_ambient_display_screen" msgid="5874969496073249362">"Aplinkos ekranas, užrakinimo ekranas"</string>
<string name="keywords_face_settings" msgid="7505388678116799329">"veidas"</string>
- <string name="keywords_fingerprint_settings" msgid="239222512315619538">"kontrolinis kodas"</string>
+ <string name="keywords_fingerprint_settings" msgid="239222512315619538">"piršto antspaudas"</string>
<string name="keywords_display_auto_brightness" msgid="4130320471533951796">"pritemdyti ekraną, jutiklinis ekranas, akumuliatorius, išmanusis šviesumas, dinaminis šviesumas"</string>
<string name="keywords_auto_rotate" msgid="5620879898668211494">"pasukti, apversti, pasukimas, stačia, gulsčia, orientacija, vertikali, horizontali"</string>
<string name="keywords_system_update_settings" msgid="7752189778843741773">"atnaujinti, android"</string>
@@ -3509,9 +3512,9 @@
<string name="encryption_interstitial_message_pin" msgid="2317181134653424679">"Galite dar labiau apsaugoti šį įrenginį nustatę, kad prieš jį paleidžiant būtų prašoma įvesti PIN kodą. Nepaleidus įrenginio juo nebus gaunami skambučiai ir pranešimai, įskaitant signalus. \n\nTaip bus apsaugoti pamestų ar pavogtų įrenginių duomenys. Reikalauti PIN kodo norint paleisti jūsų įrenginį?"</string>
<string name="encryption_interstitial_message_pattern" msgid="7081249914068568570">"Galite dar labiau apsaugoti šį įrenginį nustatę, kad prieš jį paleidžiant būtų prašoma nubrėžti atrakinimo piešinį. Nepaleidus įrenginio juo nebus gaunami skambučiai ir pranešimai, įskaitant signalus. \n\nTaip bus apsaugoti pamestų ar pavogtų įrenginių duomenys. Reikalauti atrakinimo piešinio norint paleisti jūsų įrenginį?"</string>
<string name="encryption_interstitial_message_password" msgid="7796567133897436443">"Galite dar labiau apsaugoti šį įrenginį nustatę, kad prieš jį paleidžiat būtų prašoma įvesti slaptažodį. Nepaleidus įrenginio juo nebus gaunami skambučiai ir pranešimai, įskaitant signalus. \n\nTaip bus apsaugoti pamestų ar pavogtų įrenginių duomenys. Reikalauti įvesti slaptažodį norint paleisti jūsų įrenginį?"</string>
- <string name="encryption_interstitial_message_pin_for_fingerprint" msgid="4550632760119547492">"Be to, kad atrakinant įrenginį prašoma kontrolinio kodo, galite dar labiau apsaugoti šį įrenginį nustatę, kad jį paleidžiant būtų prašoma įvesti PIN kodą. Nepaleidus įrenginio juo nebus gaunami skambučiai ir pranešimai, įskaitant signalus.\n\nTaip bus apsaugoti pamestų ar pavogtų įrenginių duomenys. Reikalauti PIN kodo norint paleisti jūsų įrenginį?"</string>
- <string name="encryption_interstitial_message_pattern_for_fingerprint" msgid="932184823193006087">"Be to, kad atrakinant įrenginį prašoma kontrolinio kodo, galite dar labiau apsaugoti šį įrenginį nustatę, kad jį paleidžiant būtų prašoma nubrėžti atrakinimo piešinį. Nepaleidus įrenginio juo nebus gaunami skambučiai ir pranešimai, įskaitant signalus.\n\nTaip bus apsaugoti pamestų ar pavogtų įrenginių duomenys. Reikalauti atrakinimo piešinio norint paleisti jūsų įrenginį?"</string>
- <string name="encryption_interstitial_message_password_for_fingerprint" msgid="5560954719370251702">"Be kontrolinio kodo, kurį naudodami atrakinate įrenginį, galite dar geriau apsaugoti šį įrenginį reikalaudami įvesti slaptažodį prieš jį paleidžiant. Kol įrenginys nepaleidžiamas, juo negalima gauti skambučių ar pranešimų, įskaitant signalus.\n\nTai padeda apsaugoti duomenis prarastuose arba pavogtuose įrenginiuose. Reikalauti slaptažodžio paleidžiant įrenginį?"</string>
+ <string name="encryption_interstitial_message_pin_for_fingerprint" msgid="4550632760119547492">"Be to, kad atrakinant įrenginį prašoma piršto antspaudo, galite dar labiau apsaugoti šį įrenginį nustatę, kad jį paleidžiant būtų prašoma įvesti PIN kodą. Nepaleidus įrenginio juo nebus gaunami skambučiai ir pranešimai, įskaitant signalus.\n\nTaip bus apsaugoti pamestų ar pavogtų įrenginių duomenys. Reikalauti PIN kodo norint paleisti jūsų įrenginį?"</string>
+ <string name="encryption_interstitial_message_pattern_for_fingerprint" msgid="932184823193006087">"Be to, kad atrakinant įrenginį prašoma piršto antspaudo, galite dar labiau apsaugoti šį įrenginį nustatę, kad jį paleidžiant būtų prašoma nubrėžti atrakinimo piešinį. Nepaleidus įrenginio juo nebus gaunami skambučiai ir pranešimai, įskaitant signalus.\n\nTaip bus apsaugoti pamestų ar pavogtų įrenginių duomenys. Reikalauti atrakinimo piešinio norint paleisti jūsų įrenginį?"</string>
+ <string name="encryption_interstitial_message_password_for_fingerprint" msgid="5560954719370251702">"Be piršto antspaudo, kurį naudodami atrakinate įrenginį, galite dar geriau apsaugoti šį įrenginį reikalaudami įvesti slaptažodį prieš jį paleidžiant. Kol įrenginys nepaleidžiamas, juo negalima gauti skambučių ar pranešimų, įskaitant signalus.\n\nTai padeda apsaugoti duomenis prarastuose arba pavogtuose įrenginiuose. Reikalauti slaptažodžio paleidžiant įrenginį?"</string>
<string name="encryption_interstitial_message_pin_for_face" msgid="2017438765366716760">"Be veido, kurį naudodami atrakinate įrenginį, galite dar geriau apsaugoti šį įrenginį reikalaudami įvesti PIN kodą prieš jį paleidžiant. Kol įrenginys nepaleidžiamas, juo negalima gauti skambučių ar pranešimų, įskaitant signalus.\n\nTai padeda apsaugoti duomenis prarastuose arba pavogtuose įrenginiuose. Reikalauti PIN kodo paleidžiant įrenginį?"</string>
<string name="encryption_interstitial_message_pattern_for_face" msgid="3551827507967661552">"Be veido, kurį naudodami atrakinate įrenginį, galite dar geriau apsaugoti šį įrenginį reikalaudami nubrėžti atrakinimo piešinį prieš jį paleidžiant. Kol įrenginys nepaleidžiamas, juo negalima gauti skambučių ar pranešimų, įskaitant signalus.\n\nTai padeda apsaugoti duomenis prarastuose arba pavogtuose įrenginiuose. Reikalauti atrakinimo piešinio paleidžiant įrenginį?"</string>
<string name="encryption_interstitial_message_password_for_face" msgid="3452793542112093614">"Be veido, kurį naudodami atrakinate įrenginį, galite dar geriau apsaugoti šį įrenginį reikalaudami įvesti slaptažodį prieš jį paleidžiant. Kol įrenginys nepaleidžiamas, juo negalima gauti skambučių ar pranešimų, įskaitant signalus.\n\nTai padeda apsaugoti duomenis prarastuose arba pavogtuose įrenginiuose. Reikalauti slaptažodžio paleidžiant įrenginį?"</string>
@@ -3587,7 +3590,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Asmeninės"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Darbas"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Programos: visos"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Programos: išjungtos"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Išjungta"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorijos: skubi svarba"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorijos: maža svarba"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorijos: išjungtos"</string>
@@ -3967,7 +3970,7 @@
<string name="lockpattern_settings_require_pattern_before_startup_summary" msgid="7873036097628404476">"Reikalauti atrakinimo piešinio norint paleisti įrenginį. Kai įrenginys išjungtas, juo nepriimami skambučiai, pranešimai, informaciniai pranešimai ar įspėjimai."</string>
<string name="lockpattern_settings_require_pin_before_startup_summary" msgid="6022831284097476933">"Reikalauti PIN kodo norint paleisti įrenginį. Kai įrenginys išjungtas, juo nepriimami skambučiai, pranešimai, informaciniai pranešimai ar įspėjimai."</string>
<string name="lockpattern_settings_require_password_before_startup_summary" msgid="6818285221244966231">"Reikalauti slaptažodžio norint paleisti įrenginį. Kai įrenginys išjungtas, juo nepriimami skambučiai, pranešimai, informaciniai pranešimai ar įspėjimai."</string>
- <string name="suggestion_additional_fingerprints" msgid="2214281455363797037">"Pridėkite kitą kontrolinį kodą"</string>
+ <string name="suggestion_additional_fingerprints" msgid="2214281455363797037">"Pridėkite kitą piršto antspaudą"</string>
<string name="suggestion_additional_fingerprints_summary" msgid="5471253233176471245">"Atrakinkite naudodami kitą pirštą"</string>
<string name="battery_saver_on_summary" msgid="7722791295871319534">"Įjungta"</string>
<string name="battery_saver_off_scheduled_summary" msgid="3953785517002197881">"Bus įjungta pasiekus <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
@@ -4089,16 +4092,18 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Telefono tikrinimas pakėlus"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Planšetinio kompiuterio tikrinimas pakėlus"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Įrenginio tikrinimas pakėlus"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Pažadinti ekraną"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Norėdami sužinoti laiką, peržiūrėti pranešimus ir kitą informaciją, paimkite telefoną."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Norėdami sužinoti laiką, peržiūrėti pranešimus ir kitą informaciją, paimkite planšetinį kompiuterį."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Norėdami sužinoti laiką, peržiūrėti pranešimus ir kitą informaciją, paimkite įrenginį."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Pasiekiamumo gestas"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
- <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Perbraukimas kontrolinio kodo jutikliu norint peržiūrėti pranešimus"</string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Pažadinimo užrakto ekrano gestas"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
+ <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Perbraukimas piršto antspaudo jutikliu norint peržiūrėti pranešimus"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Perbr. kontr. k. jutikliu"</string>
- <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Jei norite patikrinti pranešimus, perbraukite žemyn kontrolinio kodo jutikliu telefono užpakalinėje dalyje."</string>
- <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"Jei norite greitai patikrinti pranešimus, perbraukite žemyn kontrolinio kodo jutikliu planšetinio kompiuterio užpakalinėje dalyje."</string>
- <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"Jei norite patikrinti pranešimus, perbraukite žemyn kontrolinio kodo jutikliu įrenginio užpakalinėje dalyje."</string>
+ <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Jei norite patikrinti pranešimus, perbraukite žemyn piršto antspaudo jutikliu telefono užpakalinėje dalyje."</string>
+ <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"Jei norite greitai patikrinti pranešimus, perbraukite žemyn piršto antspaudo jutikliu planšetinio kompiuterio užpakalinėje dalyje."</string>
+ <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"Jei norite patikrinti pranešimus, perbraukite žemyn piršto antspaudo jutikliu įrenginio užpakalinėje dalyje."</string>
<string name="fingerprint_swipe_for_notifications_suggestion_title" msgid="1677291167470357802">"Greitai peržiūrėkite pranešimus"</string>
<string name="gesture_setting_on" msgid="3455094265233870280">"Įjungta"</string>
<string name="gesture_setting_off" msgid="5230169535435881894">"Išjungta"</string>
@@ -4252,6 +4257,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Stebėti visas GNSS konferencijas ir visus dažnius netaikant darbo ciklų"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Visada rodyti strigčių dialogo langą"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Rodyti dialogo langą kiekvieną kartą, kai programa užstringa"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Pasirinkti programą, kurioje įgalinta ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nėra jokių programų, kuriose būtų įgalinta ANGLE, rinkinių"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Programa, kurioje įgalinta ANGLE: „<xliff:g id="APP_NAME">%1$s</xliff:g>“"</string>
<string name="directory_access" msgid="4722237210725864244">"Galimybė pasiekti katalogą"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"galimybė pasiekti katalogą"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> („<xliff:g id="DIRECTORY">%2$s</xliff:g>“)"</string>
@@ -4296,24 +4304,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Įgalinti virtualųjį didelio dažnio skydelį"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Visi nustatymai"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Jūsų nustatymai"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS duomenys"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS duomenys"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Pasirinkti tinklą"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Atsijungta"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Prisijungta"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Prisijungiama…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Nepavyko prisijungti"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nerasta jokių tinklų."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Nepavyko rasti tinklų. Bandykite dar kartą."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(uždrausta)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Nėra SIM kortelės"</string>
</resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 2f7b1e9..ada0144 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -180,6 +180,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Ierīces, ar kurām savienojums tika izveidots iepriekš"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Ierīces, ar kurām savienojums tika izveidots iepriekš"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth savienojums ir ieslēgts"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Skatīt visas"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datums un laiks"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Laika joslas izvēle"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -405,6 +406,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Gatavs"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Sejas izmantošana"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Ierīces atbloķēšana"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Pierakst. lietotnēs, maksājumi"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Lai atbloķētu, atveriet acis"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Izmantojot autentificēšanu pēc sejas, acīm jābūt atvērtām"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Noņemt sejas datus"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Uzlabot sejas atpazīšanu"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Sejas atpazīšanu var izmantot, lai atbloķētu ierīci un piekļūtu lietotnēm. "<annotation id="url">"Uzziniet vairāk"</annotation>"."</string>
@@ -2406,7 +2410,7 @@
<string name="menu_proc_stats_type_cached" msgid="5084272779786820693">"Saglabāts kešatmiņā"</string>
<string name="voice_input_output_settings" msgid="1336135218350444783">"Balss ievade un izvade"</string>
<string name="voice_input_output_settings_title" msgid="2442850635048676991">"Balss ievades un izvades iestatījumi"</string>
- <string name="voice_search_settings_title" msgid="2775469246913196536">"Balss meklēšana"</string>
+ <string name="voice_search_settings_title" msgid="2775469246913196536">"Meklēšana ar balsi"</string>
<string name="keyboard_settings_title" msgid="5080115226780201234">"Android tastatūra"</string>
<string name="voice_input_settings" msgid="1099937800539324567">"Balss ievades iestatījumi"</string>
<string name="voice_input_settings_title" msgid="2676028028084981891">"Balss ievade"</string>
@@ -2983,7 +2987,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Noklusējuma lietotnes"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Valodas, laiks, dublēšana, atjauninājumi"</string>
<string name="search_results_title" msgid="1796252422574886932">"Iestatījumi"</string>
- <string name="search_menu" msgid="6283419262313758339">"Meklēt iestatījumus"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, tīkla savienojums, internets, bezvadu, dati, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"Wifi, Wi-Fi, pārslēgt, pārvaldība"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"īsziņa, īsziņas sūtīšana, ziņojumi, ziņojumapmaiņa, noklusējuma"</string>
@@ -3028,7 +3031,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"maksāt, pieskarties, maksājumi"</string>
<string name="keywords_backup" msgid="470070289135403022">"dublēšana, dublēt"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"žests"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"seja, atbloķēšana"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"sejas, autorizācija, atbloķēšana, pierakstīšanās"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl versija, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"tīkls, mobilā tīkla statuss, pakalpojuma statuss, signāla stiprums, mobilā tīkla veids, viesabonēšana, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"sērijas numurs, aparatūras versija"</string>
@@ -3535,7 +3538,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Privātās"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Darba"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Lietotnes: visas"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Lietotnes: izslēgts"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Izslēgti"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorijas: steidzams"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorijas: nav svarīgs"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorijas: izslēgts"</string>
@@ -4023,11 +4026,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Tālruņa pārbaude paceļot"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Planšetdatora pacelšana, lai skatītu paziņojumus"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Ierīces pacelšana, lai skatītu paziņojumus"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Displeja aktivizēšana"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Lai skatītu laiku, paziņojumus un citu informāciju, paņemiet tālruni."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Lai skatītu laiku, paziņojumus un citu informāciju, paņemiet planšetdatoru."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Lai skatītu laiku, paziņojumus un citu informāciju, paņemiet ierīci."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Piekļuves žests"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Ekrāna žests aktivizēšanas gadījumam"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Ziņu skatīšana ar pirksta nospiedumu"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Nospiedumu skeneris"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Lai skatītu paziņojumus, velciet uz leju pār pirksta nospieduma sensoru tālruņa aizmugurē."</string>
@@ -4179,6 +4184,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Izsekot visas GNSS konstelācijas un frekvences bez darba cikliem"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Vienmēr rādīt avārijas dialoglodziņu"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Rādīt dialoglodziņu katru reizi, kad lietotne avarē"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Atlasiet lietotni, kam ANGLE ir iespējots"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nav iestatīta neviena lietojumprogramma, kam ANGLE ir iespējots"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Lietojumprogramma, kam ANGLE ir iespējots: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Direktoriju piekļuve"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"direktoriju piekļuve"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4223,24 +4231,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Iespējot virtuālo augstas frekvences paneli"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Visi iestatījumi"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Jūsu iestatījumi"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS dati"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS dati"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Izvēlēties tīklu"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Nav savienojuma"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Izveidots savienojums"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Notiek savienojuma izveide…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Nevarēja izveidot savienojumu"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Netika atrasts neviens tīkls."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Neizdevās atrast tīklus. Mēģiniet vēlreiz."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(aizliegts)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Nav SIM kartes"</string>
</resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 086a54af5..fe18aaa 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Претходно поврзани уреди"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Претходно поврзани"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth е вклучен"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Прикажи ги сите"</string>
<string name="date_and_time" msgid="9062980487860757694">"Датум и време"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Избери временска зона"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Готово"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Користи го лицето за"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Отклучување уред"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Најавување на аплик. и плаќања"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Отворени очи за отклучување"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Кога користите проверка на лице, очите мора да ви бидат отворени"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Отстр. под. за лице"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Подобрете податоци за лицето"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Вашето лице може да се користи за отклучување на уредот и пристап до апликациите. "<annotation id="url">"Дознајте повеќе"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Стандардни апликации"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Јазици, време, бекап и ажурирања"</string>
<string name="search_results_title" msgid="1796252422574886932">"Поставки"</string>
- <string name="search_menu" msgid="6283419262313758339">"Пребарувај низ поставките"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"WiFi, Wi-Fi, мрежна врска, интернет, безжичен, податоци, Wi Fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, префрли, контрола"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"текстуална порака, испраќање текстуални пораки, пораки, испраќање пораки, стандарден"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"плати, допри, плаќања"</string>
<string name="keywords_backup" msgid="470070289135403022">"бекап, прави бекап"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"движење"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"лик, отклучи"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"лице, отклучи, проверка, најави се"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, верзија на prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"мрежа, состојба на мобилна мрежа, состојба на услуга, јачина на сигнал, тип на мобилна мрежа, роаминг, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"сериски број, верзија на хардвер"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Лични"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Службени"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Апликации: сите"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Апликации: исклучени"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Исклучени"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Категории: итна важност"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Категории: мала важност"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Категории: исклучени"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Подигнете за проверка"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Подигнете за да го проверите таблетот"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Подигнете за да го проверите уредот"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Екран за будење"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"За да ги проверите времето, известувањата и другите информации, земете го телефонот."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"За да ги проверите времето, известувањата и другите информации, земете го таблетот."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"За да ги проверите времето, известувањата и другите информации, земете го уредот."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Движење за досег"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Движење на екранот за заклучување на будењето"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Повлечи отпечаток за известувања"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Повлечете отпечаток"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"За да ги проверите известувањата, повлечете надолу на сензорот за отпечатоци на задната страна на телефонот."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Следете ги сите констелации и фреквенции со GNSS без работен циклус"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Секогаш прикажувај дијалог на пад"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Прикажи дијалог при секој пад на апликација"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Избери апликација овозможена за ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Нема поставена апликација овозможена за ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Апликација овозможена за ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Пристап до адресарот"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"пристап до адресарот"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Овозможи виртуелна табла за висока фреквенција"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Сите поставки"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Вашите поставки"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-податоци"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-податоци"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Изберете мрежа"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Исклучена"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Поврзана"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Се поврзува…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Не може да се поврзе"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Не се најдени мрежи."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Не најдовме мрежи. Обидете се повторно."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(забранета)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Нема SIM-картичка"</string>
</resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 82b3d05..05c298c 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -179,6 +179,8 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"മുമ്പ് കണക്റ്റ് ചെയ്തിട്ടുള്ള ഉപകരണങ്ങൾ"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"മുമ്പേ കണക്റ്റ് ചെയ്തവ"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth ഓണാക്കി"</string>
+ <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
+ <skip />
<string name="date_and_time" msgid="9062980487860757694">"തീയതിയും സമയവും"</string>
<string name="choose_timezone" msgid="1362834506479536274">"സമയ മേഖല തിരഞ്ഞെടുക്കുക"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +405,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"പൂർത്തിയായി"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"മുഖം ഇതിനുപയോഗിക്കൂ"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ഉപകരണം അൺലോക്ക് ചെയ്യൂ"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"സൈൻ ഇൻ ചെയ്യലും പണമടയ്ക്കലും"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"അൺലോക്ക് ചെയ്യാൻ കണ്ണുകൾ തുറന്നിരിക്കണം"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"മുഖം പരിശോധിച്ചുറപ്പിക്കുമ്പോൾ, കണ്ണുകൾ തുറന്നിരിക്കണം"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"മുഖ ഡാറ്റ നീക്കം ചെയ്യുക"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"മുഖ ഡാറ്റ മെച്ചപ്പെടുത്തുക"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"ഉപകരണം അൺലോക്ക് ചെയ്യാനും ആപ്പുകൾ ആക്സസ് ചെയ്യാനും നിങ്ങളുടെ മുഖം ഉപയോഗിക്കാനാവും. "<annotation id="url">"കൂടുതലറിയുക"</annotation></string>
@@ -2945,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ഡിഫോൾട്ട് ആപ്സ്"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ഭാഷകൾ, സമയം, ബാക്കപ്പ്, അപ്ഡേറ്റുകൾ"</string>
<string name="search_results_title" msgid="1796252422574886932">"ക്രമീകരണം"</string>
- <string name="search_menu" msgid="6283419262313758339">"തിരയൽ ക്രമീകരണം"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"വൈഫൈ, വൈ-ഫൈ, നെറ്റ്വർക്ക് കണക്ഷൻ, ഇന്റർനെറ്റ്, വയർലെസ്സ്, ഡാറ്റ, വൈ ഫൈ"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"വൈഫൈ, വൈ-ഫൈ, ടോഗിൾ, നിയന്ത്രണം"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"അക്ഷര സന്ദേശം, ടെക്സ്റ്റിംഗ്, സന്ദേശങ്ങൾ, സന്ദേശമയയ്ക്കൽ, ഡിഫോൾട്ട്"</string>
@@ -2990,7 +2994,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"പണമടയ്ക്കുക. ടാപ്പുചെയ്യുക, പേയ്മെന്റുകൾ"</string>
<string name="keywords_backup" msgid="470070289135403022">"ബാക്കപ്പ് ചെയ്യൂ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"വിരൽചലനം"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"മുഖം, അൺലോക്ക് ചെയ്യുക"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ഫേസ്, അൺലോക്ക് ചെയ്യുക, പരിശോധിച്ചുറപ്പിക്കുക, സൈൻ ഇൻ ചെയ്യുക"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl പതിപ്പ്, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"നെറ്റ്വർക്ക്, മൊബൈൽ നെറ്റ്വർക്ക് നില, സേവന നില, സിഗ്നൽ ശക്തി, മൊബൈൽ നെറ്റ്വർക്ക് നില, റോമിംഗ്, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"സീരിയൽ നമ്പർ, ഹാർഡ്വെയർ പതിപ്പ്"</string>
@@ -3483,7 +3487,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"വ്യക്തിഗതം"</string>
<string name="filter_work_apps" msgid="24519936790795574">"ഔദ്യോഗികം"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"ആപ്പുകൾ: എല്ലാം"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"ആപ്പുകൾ: ഓഫാക്കി"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ഓഫാക്കി"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"വിഭാഗങ്ങൾ: അടിയന്തര പ്രാധാന്യം"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"വിഭാഗങ്ങൾ: പ്രാധാന്യം കുറഞ്ഞത്"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"വിഭാഗങ്ങൾ: ഓഫാക്കി"</string>
@@ -3950,19 +3954,21 @@
<string name="swipe_up_to_switch_apps_summary" msgid="5367798220225997418">"ആപ്പുകൾ മാറാൻ, ഹോം ബട്ടണിൽ സ്വൈപ്പ് ചെയ്യുക. എല്ലാ ആപ്പുകളും കാണാൻ വീണ്ടും സ്വൈപ്പ് ചെയ്യുക. ഏത് സ്ക്രീനിൽ നിന്നും പ്രവർത്തിക്കുന്നു. നിങ്ങളുടെ സ്ക്രീനിന്റെ താഴെ വലത് ഭാഗത്ത് തുടർന്നങ്ങോട്ട് അവലോകന ബട്ടൺ ഉണ്ടാവുകയില്ല."</string>
<string name="swipe_up_to_switch_apps_suggestion_title" msgid="1465200107913259595">"പുതിയ ഹോം ബട്ടൺ പരീക്ഷിക്കുക"</string>
<string name="swipe_up_to_switch_apps_suggestion_summary" msgid="4825314186907812743">"ആപ്പുകൾ മാറാൻ പുതിയ വിരൽചലനം ഓണാക്കുക"</string>
- <string name="ambient_display_title" product="default" msgid="5144814600610448504">"ഫോൺ പരിശോധിക്കുന്നതിന്, രണ്ടുതവണ ടാപ്പുചെയ്യുക"</string>
+ <string name="ambient_display_title" product="default" msgid="5144814600610448504">"ഫോൺ പരിശോധിക്കുന്നതിന്, രണ്ടുതവണ ടാപ്പ് ചെയ്യുക"</string>
<string name="ambient_display_title" product="tablet" msgid="8688795028609563837">"ടാബ്ലെറ്റ് പരിശോധിക്കുന്നതിന്, രണ്ടുതവണ ടാപ്പുചെയ്യുക"</string>
<string name="ambient_display_title" product="device" msgid="3423781975742145894">"ഉപകരണം പരിശോധിക്കുന്നതിന്, രണ്ടുതവണ ടാപ്പുചെയ്യുക"</string>
<string name="ambient_display_summary" msgid="8534654210539169707">"സമയവും അറിയിപ്പുകളും മറ്റ് വിവരങ്ങളും പരിശോധിക്കുന്നതിന്, നിങ്ങളുടെ സ്ക്രീനിൽ രണ്ട് തവണ ടാപ്പ് ചെയ്യുക."</string>
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"പരിശോധിക്കാൻ ഫോണുയർത്തുക"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"പരിശോധിക്കുന്നതിന് ടാബ്ലെറ്റ് എടുത്തുയർത്തുക"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"പരിശോധിക്കുന്നതിന് ഉപകരണം എടുത്തുയർത്തുക"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ഡിസ്പ്ലേ സജീവമാക്കുക"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"സമയവും അറിയിപ്പുകളും മറ്റ് വിവരങ്ങളും പരിശോധിക്കുന്നതിന്, നിങ്ങളുടെ ഫോൺ കയ്യിലെടുക്കുക."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"സമയവും അറിയിപ്പുകളും മറ്റ് വിവരങ്ങളും പരിശോധിക്കുന്നതിന്, നിങ്ങളുടെ ടാബ്ലെറ്റ് കയ്യിലെടുക്കുക."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"സമയവും അറിയിപ്പുകളും മറ്റ് വിവരങ്ങളും പരിശോധിക്കുന്നതിന്, നിങ്ങളുടെ ഉപകരണം കയ്യിലെടുക്കുക."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"എത്തി എന്ന് കാണിക്കുന്ന വിരൽചലനം"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
- <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"അറിയിപ്പുകൾക്ക് വിരലടയാളം സ്വൈപ്പുചെയ്യുക"</string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"വേക്ക് ലോക്ക് സ്ക്രീൻ കാണിക്കാനുള്ള വിരൽചലനം"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
+ <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"അറിയിപ്പുകൾക്ക് വിരലടയാളം സ്വൈപ്പ് ചെയ്യുക"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ഫിംഗർപ്രിന്റ് സ്വൈപ്പ്"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"നിങ്ങളുടെ അറിയിപ്പുകൾ പരിശോധിക്കാൻ ഫോണിന്റെ പിൻവശത്തുള്ള വിരലടയാള സെൻസറിൽ താഴേക്ക് സ്വൈപ്പുചെയ്യുക."</string>
<string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"നിങ്ങളുടെ അറിയിപ്പുകൾ പരിശോധിക്കാൻ, ടാബ്ലെറ്റിന്റെ പിൻവശത്തുള്ള വിരലടയാള സെൻസറിൽ താഴേക്ക് സ്വൈപ്പുചെയ്യുക."</string>
@@ -4106,6 +4112,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"നോ ഡ്യൂട്ടി സൈക്ലിംഗ് ഉപയോഗിച്ച് മുഴുവൻ GNSS കോൺസ്റ്റലേഷനുകളും ആവൃത്തികളും ട്രാക്ക് ചെയ്യൂ"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"എപ്പോഴും ക്രാഷ് ഡയലോഗ് കാണിക്കുക"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"ആപ്പ് ക്രാഷാകുമ്പോഴെല്ലാം ഡയലോഗ് കാണിക്കുക"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE പ്രവർത്തനക്ഷമമാക്കിയ ആപ്പ് തിരഞ്ഞെടുക്കുക"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE പ്രവർത്തനക്ഷമമാക്കിയ ആപ്പൊന്നും സജ്ജീകരിച്ചിട്ടില്ല"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE പ്രവർത്തനക്ഷമമാക്കിയ ആപ്പ്: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"ഡയറക്റ്ററി ആക്സസ്"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ഡയറക്റ്ററി ആക്സസ്"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4159,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"വെർച്വലായ ഉയർന്ന ആവൃത്തി പാനൽ പ്രവർത്തനക്ഷമമാക്കൂ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"എല്ലാ ക്രമീകരണവും"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"നിങ്ങളുടെ ക്രമീകരണം"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ഡാറ്റ"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ഡാറ്റ"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"നെറ്റ്വര്ക്ക് തിരഞ്ഞെടുക്കുക"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"വിച്ഛേദിച്ചു"</string>
+ <string name="network_connected" msgid="4943925032253989621">"കണക്റ്റ് ചെയ്തു"</string>
+ <string name="network_connecting" msgid="76404590784733557">"കണക്റ്റ് ചെയ്യുന്നു…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"കണക്റ്റ് ചെയ്യാനായില്ല"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"നെറ്റ്വർക്കുകളൊന്നും കണ്ടെത്തിയില്ല."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"നെറ്റ്വർക്കുകൾ കണ്ടെത്താനായില്ല. വീണ്ടും ശ്രമിക്കുക."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(നിരോധിക്കപ്പെട്ടത്)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"സിം കാർഡില്ല"</string>
</resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 2f3964a..e2bd2d0 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Өмнө нь холбогдсон төхөөрөмж"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Өмнө нь холбогдсон"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth-г асаасан"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Бүгдийг харах"</string>
<string name="date_and_time" msgid="9062980487860757694">"Огноо & цаг"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Цагийн бүсийг сонгоно уу"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Болсон"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Дараахыг хийхийн тулд царайгаа ашиглах"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Төхөөрөмжийнхөө түгжээг тайлах"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Аппад нэвтрэх & төлбөр"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Түгжээг тайлахын тулд нүдээ нээх"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Царайны нотолгоог ашиглах үед таны нүд нээлттэй байх ёстой"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Царайны өгөгдлийг хасах"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Царайны өгөгдлийг сайжруулах"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Та царайгаа төхөөрөмжийн түгжээ тайлах болон аппад нэвтрэхэд ашиглах боломжтой. "<annotation id="url">"Нэмэлт мэдээлэл авах"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Өгөгдмөл апп"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Хэл, цаг, нөөцлөх, шинэчлэлт"</string>
<string name="search_results_title" msgid="1796252422574886932">"Тохиргоо"</string>
- <string name="search_menu" msgid="6283419262313758339">"Тохиргоог хайх"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, сүлжээний холболт, интернэт, утасгүй сүлжээ, дата, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, унтраах/асаах, хяналт"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"текст мессеж, текст мессеж бичих, мессеж, мессеж бичих, өгөгдмөл"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"төлөх, товших, төлбөр"</string>
<string name="keywords_backup" msgid="470070289135403022">"нөөцлөлт, нөөцлөх"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"зангаа"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"царайгаар түгжээ тайлах"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"царай, түгжээг тайлах, нотлох, нэвтрэх"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl хувилбар, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"сүлжээ, мобайл сүлжээний төлөв, үйлчилгээний төлөв, дохионы хүч, мобайл сүлжээний төрөл, роуминг, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"серийн дугаар, техник хангамжийн хувилбар"</string>
@@ -3481,7 +3484,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Хувийн"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Ажил"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Апп: Бүх"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Апп: Унтраасан"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Унтраасан"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Категори: Яаралтай ач холбогдолтой"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Категори: Бага ач холбогдолтой"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Категори: Унтраасан"</string>
@@ -3955,11 +3958,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Утсаа шалгахын тулд өргөнө үү"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Таблетаа шалгахын тулд өргөнө үү"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Төхөөрөмжийг шалгахын тулд өргөнө үү"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Сэрээх дэлгэц"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Цаг, мэдэгдэл болон бусад мэдээллийг шалгахын тулд утсаа авна уу."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Цаг, мэдэгдэл болон бусад мэдээллийг шалгахын тулд таблетаа авна уу."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Цаг, мэдэгдэл болон бусад мэдээллийг шалгахын тулд төхөөрөмжөө авна уу."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Зангаад хүрэх"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Сэрүүн байлгах дэлгэцийн зангаа"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Мэдэгдэл харах бол хурууны хээгээ шударна уу"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Хурууны хээгээр шудрах"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Мэдэгдлээ шалгахын тулд утасныхаа арын хурууны хээ мэдрэгчийг доош шударна уу."</string>
@@ -4104,6 +4109,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Бүх GNSS орд болон давтамжийг давтамжийн түвшингүйгээр шинжлэх"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Гэмтлийн харилцах цонхыг тогтмол харуулах"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Харилцах цонхыг апп гэмтэх бүрд харуулах"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ӨНЦӨГ идэвхжүүлсэн аппыг сонгох"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ӨНЦӨГ идэвхжүүлээгүй аппыг тохируулаагүй"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ӨНЦӨГ идэвхжүүлсэн апп: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Лавлахын хандалт"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"лавлалтын хандалт"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4148,24 +4156,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Виртуал өндөр давтамжтай самбарыг идэвхжүүлэх"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Бүх тохиргоо"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Таны тохиргоо"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Дата"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Дата"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Сүлжээ сонгох"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Салсан"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Холбогдсон"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Холбогдож байна…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Холбогдож чадсангүй"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Сүлжээ олдсонгүй."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Сүлжээ олдсонгүй. Дахин оролдоно уу."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(хориглосон)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM карт алга"</string>
</resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 1e85f38..450924f 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -179,6 +179,8 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"याआधी कनेक्ट केलेली डिव्हाइस"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"याआधी कनेक्ट केलेले"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ब्लूटूथ सुरू केले"</string>
+ <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
+ <skip />
<string name="date_and_time" msgid="9062980487860757694">"तारीख आणि वेळ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"टाइम झोन निवडा"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +405,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"पूर्ण झाले"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"तुमचा चेहेरा वापरून"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"तुमचे डिव्हाइस अनलॉक करा"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"अॅप साइन इन आणि पेमेंट"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"अनलॉक करण्यासाठी डोळे उघडा"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"चेहरा ऑथेंटिकेशन वापरताना, तुमचे डोळे उघडे असणे आवश्यक आहे"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"फेस डेटा काढून टाका"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"तुमच्या फेस डेटात सुधारणा करा"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"डिव्हाइस अनलॉक करण्यासाठी आणि अॅप्स करण्यासाठी तुम्ही तुमचा चेहेरा वापरू शकता. "<annotation id="url">"अधिक जाणून घ्या"</annotation></string>
@@ -2946,7 +2951,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"डीफॉल्ट अॅप्स"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"भाषा, वेळ, बॅक अप, अपडेट"</string>
<string name="search_results_title" msgid="1796252422574886932">"सेटिंग्ज"</string>
- <string name="search_menu" msgid="6283419262313758339">"सेटिंग्ज शोधा"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"वायफाय, वाय-फाय, नेटवर्क कनेक्शन, इंटरनेट, वायरलेस, डेटा, वाय फाय"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"वायफाय, वाय-फाय, टॉगल, कंट्रोल"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"एसएमएस, मजकूर पाठवणे, मेसेज, मेसेजिंग, डीफॉल्ट"</string>
@@ -2991,7 +2995,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"देय द्या, टॅप करा, पेमेंट"</string>
<string name="keywords_backup" msgid="470070289135403022">"बॅकअप, बॅक अप"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"जेश्चर"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"फेस, अनलॉक"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"चेहरा, अनलॉक, प्रमाणीकरण, साइन इन"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl आवृत्ती, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"नेटवर्क, मोबाइल नेटवर्क स्थिती, सेवा स्थिती, सिग्नल तीव्रता, मोबाइल नेटवर्क प्रकार, रोमिंग, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"सीरीअल नंबर, हार्डवेअर आवृत्ती"</string>
@@ -3484,7 +3488,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"वैयक्तिक"</string>
<string name="filter_work_apps" msgid="24519936790795574">"कार्य"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"अॅप्स: सर्व"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"अॅप्स: बंद केलेली"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"बंद केले आहे"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"वर्गवाऱ्या: तातडीचे महत्त्व"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"वर्गवाऱ्या: कमी महत्त्व"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"वर्गवाऱ्या: बंद केलेल्या"</string>
@@ -3958,11 +3962,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"फोन तपासण्यासाठी तो उचला"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"टॅब्लेट तपासण्यासाठी तो उचला"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"डिव्हाइस तपासण्यासाठी ते उचला"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"वेक अप डिस्प्ले"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"वेळ, सूचना आणि इतर माहिती तपासण्यासाठी, तुमचा फोन उचला."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"वेळ, सूचना आणि इतर माहिती तपासण्यासाठी, तुमचे टॅबलेट उचला."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"वेळ, सूचना आणि इतर माहिती तपासण्यासाठी, तुमचे डिव्हाइस उचला."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"रीच जेश्चर"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"वेक लॉक स्क्रीन जेश्चर"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"सूचनांसाठी फिंगरप्रिंट स्वाइप करा"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"फिंगरप्रिंट स्वाइप करा"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"तुमच्या सूचना तपासण्यासाठी, तुमच्या फोनच्या पाठीमागे फिंगरप्रिंट सेन्सरवर खाली स्वाइप करा."</string>
@@ -4107,6 +4113,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"कुठल्याही ड्युटी सायकलिंग शिवाय सर्व GNSS तारामंडळे आणि वारंवारता ट्रॅक करा"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"नेहमी क्रॅश डायलॉग दाखवा"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"अॅप क्रॅश झाल्यावर प्रत्येक वेळी डायलॉग दाखवा"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE सुरू केलेले अॅप निवडा"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"कोणतेही ANGLE सुरू केलेले अॅप्लिकेशन सेट करा"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE सुरू केलेले अॅप्लिकेशन: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"डिरेक्टरी अॅक्सेस"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"डिरेक्टरी अॅक्सेस"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4151,24 +4160,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"व्हर्च्युअल उच्च अचूकता पॅनल सुरू करा"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"सर्व सेटिंग्ज"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"तुमच्या सेटिंग्ज"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS डेटा"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS डेटा"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"नेटवर्क निवडा"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"डिस्कनेक्ट केलेले"</string>
+ <string name="network_connected" msgid="4943925032253989621">"कनेक्ट केलेले"</string>
+ <string name="network_connecting" msgid="76404590784733557">"कनेक्ट करत आहे…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"कनेक्ट करता आले नाही"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"कोणतीही नेटवर्क आढळली नाहीत."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"नेटवर्क मिळू शकले नाहीत. पुन्हा प्रयत्न करा."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(मनाई केलेले)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"सिम कार्ड नाही"</string>
</resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index d6f5438..c326d68 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Peranti yang tersambung sebelum ini"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Disambungkan sebelum ini"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth dihidupkan"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Lihat semua"</string>
<string name="date_and_time" msgid="9062980487860757694">"Tarikh & masa"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Pilih zon masa"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Selesai"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Gunakan wajah untuk"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Buka kunci peranti"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Log masuk apl & pembayaran"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Buka mata untuk membuka kunci"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Apabila menggunakan pengesahan wajah, mata anda mesti dibuka"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Alh kluar data wajah"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Tingkatkan data wajah anda"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Wajah anda boleh digunakan untuk membuka kunci peranti anda dan mengakses apl. "<annotation id="url">"Ketahui lebih lanjut"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Apl lalai"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Bahasa, masa, sandaran, kemas kini"</string>
<string name="search_results_title" msgid="1796252422574886932">"Tetapan"</string>
- <string name="search_menu" msgid="6283419262313758339">"Carian tetapan"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, sambungan rangkaian, Internet, wayarles, data, wi-fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, togol, kawalan"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mesej teks, penghantaran teks, mesej, pemesejan, lalai"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"bayar, ketik, bayaran"</string>
<string name="keywords_backup" msgid="470070289135403022">"sandaran, sandarkan"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gerak isyarat"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"wajah, buka kunci"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"wajah, buka kunci, auth, daftar masuk"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versi prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"rangkaian, keadaan rangkaian mudah alih, keadaan perkhidmatan, kekuatan isyarat, jenis rangkaian mudah alih, perayauan, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"nombor siri, versi perkakasan"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Peribadi"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Kerja"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apl: Semua"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apl: Dimatikan"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Dimatikan"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategori: Kepentingan segera"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategori: Kepentingan rendah"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategori: Dimatikan"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Angkat utk menyemak telefon"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Angkat untuk menyemak tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Angkat untuk menyemak peranti"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Paparan waktu bangkit daripada tidur"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Untuk menyemak masa, pemberitahuan dan maklumat lain, angkat telefon anda."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Untuk menyemak masa, pemberitahuan dan maklumat lain, angkat tablet anda."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Untuk menyemak masa, pemberitahuan dan maklumat lain, angkat peranti anda."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gerak isyarat capai"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gerak isyarat skrin wake lock"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Leret cap jari untuk pemberitahuan"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Leret cap jari"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Untuk menyemak pemberitahuan, leret ke bawah pada penderia cap jari di bahagian belakang telefon anda."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Jejak semua gugusan dan kekerapan GNSS tanpa kitaran tugas"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Sentiasa tunjukkan dialog ranap sistem"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Tunjukkan dialog setiap kali apl ranap"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Pilih apl didayakan ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Tiada aplikasi yang didayakan ANGLE dipilih"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikasi didayakan ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Akses direktori"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"akses direktori"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Dayakan Panel Kekerapan Tinggi Maya"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Semua Tetapan"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Tetapan Anda"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Data CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Pilih rangkaian"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Diputuskan sambungan"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Disambungkan"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Menyambung…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Tidak dapat menyambung"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Tiada rangkaian ditemui."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Tidak menemui rangkaian. Cuba lagi."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(dilarang)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Tiada kad SIM"</string>
</resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 9774987..2b52d7f 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"ယခင်က ချိတ်ဆက်ထားသော စက်များ"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ယခင်က ချိတ်ဆက်ထားသော"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ဘလူးတုသ် ဖွင့်ထားသည်"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"အားလုံး ကြည့်ရန်"</string>
<string name="date_and_time" msgid="9062980487860757694">"ရက်စွဲနှင့် အချိန်"</string>
<string name="choose_timezone" msgid="1362834506479536274">"အချိန်ဇုန်အား ရွေးချယ်ခြင်း"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ပြီးပါပြီ"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"သင့်မျက်နှာ သုံးပါ-"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"သင့်စက်ကို ဖွင့်ရန်"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"အက်ပ်ဝင်ခြင်း၊ ငွေပေးချေမှု"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"လော့ခ်ဖွင့်ရန် မျက်လုံးဖွင့်ပါ"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"မျက်နှာဖြင့် အထောက်အထားစိစစ်ခြင်းကို သုံးသည့်အခါ မျက်လုံးဖွင့်ထားရမည်"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"မျက်နှာဒေတာ ဖယ်ရန်"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"သင့်မျက်နှာဒေတာ ပိုကောင်းစေရန်"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"သင်၏ စက်ပစ္စည်းကို ဖွင့်ရန်နှင့် အက်ပ်များကို သုံးရန် သင့်မျက်နှာကို အသုံးပြုနိုင်ပါသည်။ "<annotation id="url">"ပိုမို လေ့လာရန်"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"မူရင်းအက်ပ်များ"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ဘာသာစကားများ၊ အချိန်၊ မိတ္တူ၊ အပ်ဒိတ်များ"</string>
<string name="search_results_title" msgid="1796252422574886932">"ဆက်တင်များ"</string>
- <string name="search_menu" msgid="6283419262313758339">"ဆက်တင်များတွင် ရှာရန်"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi၊ wi-fi၊ ကွန်ရက်ချိတ်ဆက်မှု၊ အင်တာနက်၊ ကြိုးမဲ့၊ ဒေတာ၊ wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi၊ wi-fi၊ ဖွင့်ပိတ်၊ ထိန်းချုပ်မှု"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"စာတိုမက်ဆေ့ဂျ်၊ စာတိုပို့ခြင်း၊ မက်ဆေ့ဂျ်များ၊ မက်ဆေ့ဂျ်ပို့ခြင်း၊ မူရင်း"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ပေးချေမှု၊ တို့ခြင်း၊ ငွေပေးချေခြင်းများ"</string>
<string name="keywords_backup" msgid="470070289135403022">"မိတ္တူ၊ မိတ္တူကူးပါ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ဟန်"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"မျက်နှာမှတ် သော့ဖွင့်ခြင်း"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"မျက်နှာ၊ လော့ခ်ဖွင့်ခြင်း၊ အထောက်အထား စိစစ်ခြင်း၊ လက်မှတ်ထိုးဝင်ခြင်း"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl ဗားရှင်း၊ imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ကွန်ရက်၊ မိုဘိုင်း ကွန်ရက်၊ ဝန်ဆောင်မှု အခြေအနေ၊ ထုတ်လွှင့်မှု အချက်ပြ၊ မိုဘိုင်း ကွန်ရက် အမျိုးအစား၊ ရိုမင်း၊ iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"အမှတ်စဉ်၊ ဟာ့ဒ်ဝဲ ဗားရှင်း"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ကိုယ်ရေး"</string>
<string name="filter_work_apps" msgid="24519936790795574">"အလုပ်"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"အက်ပ်− အားလုံး"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"အက်ပ်များ− ပိတ်ထားသည်"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ပိတ်ထားသည်"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"ကဏ္ဍများ - အလွန်အရေးကြီး"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"ကဏ္ဍများ− အရေးမကြီး"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"ကဏ္ဍများ− ပိတ်ထားသည်"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ဖုန်းစစ်ရန် ကောက်ယူခြင်း"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"တက်ဘလက်ကို စစ်ဆေးကြည့်ရန် မ လိုက်ပါ"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"စက်ပစ္စည်းကို စစ်ဆေးကြည့်ရန် မ လိုက်ပါ"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"မျက်နှာပြင်ကို ဖွင့်ရန်"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"အချိန်၊ အကြောင်းကြားချက်များနှင့် အခြားအချက်အလက်များကို စစ်ရန် သင့်ဖုန်းကို မ လိုက်ပါ။"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"အချိန်၊ အကြောင်းကြားချက်များနှင့် အခြားအချက်အလက်များကို စစ်ရန် သင့်တက်ဘလက်ကို မ လိုက်ပါ။"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"အချိန်၊ အကြောင်းကြားချက်များနှင့် အခြားအချက်အလက်များကို စစ်ရန် သင့်စက်ပစ္စည်းကို မ လိုက်ပါ။"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"လှမ်းယူသည့် လက်ဟန်"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"လော့ခ်ချထားချိန် မျက်နှာပြင်ကို ဖွင့်ရန်လက်ဟန်"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"သတိပေးချက်အတွက် လက်ဗွေပွတ်ဆွဲပါ"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"လက်ဗွေပွတ်ဆွဲခြင်း"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"အကြောင်းကြားချက်များကို ကြည့်ရန် ဖုန်း၏ နောက်ကျောဘက်ရှိ လက်ဗွေ အာရုံခံကိရိယာပေါ်တွင် အောက်သို့ ပွတ်ဆွဲပါ။"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"လည်ပတ်ချိန်မပါဘဲ GNSS စက်ဝိုင်းပုံမြင်ကွင်းကျယ်ပုံများနှင့် ကြိမ်နှုန်းအားလုံးကို ခြေရာခံပါ"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"ရပ်တန့်သွားမှု ဒိုင်ယာလော့ကို အမြဲပြရန်"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"အက်ပ်ရပ်တန့်သွားသည့်အခါတိုင်း ဒိုင်ယာလော့ကို ပြရန်"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE ကို ဖွင့်ထားသည့်အက်ပ်ကို ရွေးပါ"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE ကို ဖွင့်ထားသည့် အပလီကေးရှင်း တစ်ခုမျှ သတ်မှတ်မထားပါ"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE ကို ဖွင့်ထားသည့် အပလီကေးရှင်း− <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"ဖိုင်လမ်းညွှန် သုံးခွင့်"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ဖိုင်လမ်းညွှန် သုံးခွင့်"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4140,7 +4148,7 @@
<string name="prevent_ringing_option_vibrate" msgid="7286821846542822661">"တုန်ခါရန်"</string>
<string name="prevent_ringing_option_mute" msgid="7551545579059879853">"အသံတိတ်ရန်"</string>
<string name="prevent_ringing_option_none" msgid="4656046650769569175">"ပြောင်းလဲမှု မလုပ်ပါနှင့်"</string>
- <string name="prevent_ringing_option_vibrate_summary" msgid="1157524435626890116">"ဖွင့်ရန် (တုန်ခါမှု)"</string>
+ <string name="prevent_ringing_option_vibrate_summary" msgid="1157524435626890116">"ဖွင့်ထားသည် (တုန်ခါမှု)"</string>
<string name="prevent_ringing_option_mute_summary" msgid="4472465110708640980">"ဖွင့်ရန် (အသံတိတ်ရန်)"</string>
<string name="prevent_ringing_option_none_summary" msgid="5013718946609276137">"ပိတ်ရန်"</string>
<string name="pref_title_network_details" msgid="7186418845727358964">"ကွန်ရက် အသေးစိတ်များ"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ပကတိအသွင် ကြိမ်နှုန်းမြင့် အကန့်ကို အသုံးပြုသည်"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ဆက်တင်အားလုံး"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"သင့်ဆက်တင်များ"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ဒေတာ"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ဒေတာ"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"ကွန်ရက် ရွေးရန်"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"ချိတ်ဆက်မထားပါ"</string>
+ <string name="network_connected" msgid="4943925032253989621">"ချိတ်ဆက်ထားသည်"</string>
+ <string name="network_connecting" msgid="76404590784733557">"ချိတ်ဆက်နေသည်…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"ချိတ်ဆက်၍ မရပါ"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"ကွန်ရက်များ မတွေ့ပါ။"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"ကွန်ရက် ရှာမတွေ့ပါ။ ထပ်စမ်းကြည့်ပါ။"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(တားမြစ်ထားသည်)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"ဆင်းမ်ကတ် မရှိပါ"</string>
</resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 1bef26c..4d28b7d 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Enheter som har vært tilkoblet tidligere"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Tidligere tilkoblet"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth er på"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Se alle"</string>
<string name="date_and_time" msgid="9062980487860757694">"Dato og klokkeslett"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Velg tidssone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Ferdig"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Bruk ansiktet til å"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Lås opp enheten"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"App-pålogging og betalinger"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Åpne øyne for å låse opp"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Øynene dine må være åpne når du bruker ansiktsautentisering"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Fjern ansiktsdataene"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Få bedre ansiktsdata"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Du kan bruke ansiktet ditt til å låse opp enheten og åpne apper. "<annotation id="url">"Finn ut mer"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Standardapper"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Språk, klokke, sikkerhetskopiering, oppdateringer"</string>
<string name="search_results_title" msgid="1796252422574886932">"Innstillinger"</string>
- <string name="search_menu" msgid="6283419262313758339">"Søk i innstillingene"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, Wi-Fi, nettverkstilkobling, Internett, trådløs, data, Wi Fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, Wi-Fi, slå av/på, kontroll"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"tekstmelding, teksting, meldinger, standard"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"betal, trykk på, betalinger"</string>
<string name="keywords_backup" msgid="470070289135403022">"sikkerhetskopi, sikkerhetskopiér"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"bevegelse"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ansikt, opplåsing"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ansikt, lås opp, autentisering, pålogging"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl-versjon, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"nettverk, status for mobilnettverk, servicestatus, signalstyrke, mobilnettverkstype, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serienummer, maskinvareversjon"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personlig"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Jobb"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apper: alle"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apper: slått av"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Slått av"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorier: svært høy viktighet"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorier: lav viktighet"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorier: slått av"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Løft for å sjekke telefonen"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Løft for å sjekke nettbrettet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Løft for å sjekke enheten"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Vekk skjermen"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Løft opp telefonen for å sjekke klokkeslettet, varsler og annen informasjon."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Løft opp nettbrettet for å sjekke klokkeslettet, varsler og annen informasjon."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Løft opp enheten for å sjekke klokkeslettet, varsler og annen informasjon."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Rekkeviddebevegelse"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Bevegelse for oppvekkingslåseskjerm"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Sveip fingersensoren for varsler"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Sveip på fingersensoren"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Sjekk varsler ved å sveipe ned på fingeravtrykksensoren på baksiden av telefonen."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spor alle GNSS-konstellasjoner og -frekvenser uten syklus for oppgaver"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Vis alltid krasjdialogboksen"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Vis dialogboksen hver gang en app krasjer"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Velg en ANGLE-aktivert app"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Du har ikke angitt noen ANGLE-aktivert app"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-aktivert app: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Katalogtilgang"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"katalogtilgang"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Slå på virtuelt høyfrekvenspanel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle innstillinger"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Innstillingene dine"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-data"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-data"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Velg nettverk"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Frakoblet"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Tilkoblet"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Kobler til …"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Kunne ikke koble til"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Fant ingen nettverk."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Fant ingen nettverk. Prøv på nytt."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(forbudt)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM-kortet mangler"</string>
</resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index b016c23..a3fc843 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"यसअघि जडान भएका यन्त्रहरू"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"यसअघि जडान भएका यन्त्रहरू"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ब्लुटुथ सक्रिय गरियो"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"सबै हेर्नुहोस्"</string>
<string name="date_and_time" msgid="9062980487860757694">"मिति र समय"</string>
<string name="choose_timezone" msgid="1362834506479536274">"समय क्षेत्र चयन गर्नुहोस्"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"सम्पन्न भयो"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"निम्न प्रयोजनका लागि आफ्नो अनुहार प्रयोग गर्नुहोस्"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"आफ्नो यन्त्र अनलक गर्नुहोस्"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"अनुप्रयोगको साइन इन र भुक्तानी"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"अनलक गर्न आँखा खुल्ला छन्"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"अनुहारको प्रमाणीकरण प्रयोग गर्दा तपाईंका आँखा खुल्ला हुनै पर्छ"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"अनुहारसम्बन्धी डेटा हटाउनुहोस्"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"आफ्नो अनुहारसम्बन्धी डेटामा सुधार गर्नुहोस्"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"तपाईंको यन्त्र अनलक गर्न र अनुप्रयोगहरूमाथि पहुँच राख्न तपाईंको अनुहार प्रयोग गर्न सकिन्छ। "<annotation id="url">"थप जान्नुहोस्"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"पूर्वनिर्धारित अनुप्रयोगहरू"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"भाषाहरू, समय, ब्याकअप, अद्यावधिकहरू"</string>
<string name="search_results_title" msgid="1796252422574886932">"सेटिङहरू"</string>
- <string name="search_menu" msgid="6283419262313758339">"सेटिङहरू खोज्नुहोस्"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, नेटवर्क जडान, इन्टरनेट, वायरलेस, डेटा, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, टगल, नियन्त्रण"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"पाठ सन्देश, पाठ सन्देश पठाउने कार्य, सन्देशहरू, सन्देश प्रवाह, पूर्वनिर्धारित"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"भुक्तानी गर्नुहोस्, ट्याप गर्नुहोस्, भुक्तानी"</string>
<string name="keywords_backup" msgid="470070289135403022">"ब्याकअप, ब्याकअप गर्नुहोस्"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"इसारा"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"फेस अनलक"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"अनुहार, अनलक, अधिकार दिने कार्य, साइन इन"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl संस्करण, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"नेटवर्क, मोबाइल नेटवर्कको स्थिति, सेवाको स्थिति, सिग्नलको क्षमता, मोबाइल नेटवर्कको प्रकार, रोमिङ, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"क्रम संख्या, हार्डवेयरको संस्करण"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"व्यक्तिगत"</string>
<string name="filter_work_apps" msgid="24519936790795574">"कार्य"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"अनुप्रयोगहरू: सबै"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"अनुप्रयोगहरू: निष्क्रिय पारिएका"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"निष्क्रिय पारियो"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"प्रकारहरू: अत्यन्तै महत्त्वका"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"प्रकारहरू: कम महत्त्वका"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"प्रकारहरू: निष्क्रिय पारिएका"</string>
@@ -3636,7 +3639,7 @@
<string name="zen_access_warning_dialog_summary" msgid="4015885767653010873">"अनुप्रयोगले बाधा नपुर्याउँनुहोस् सक्रिय/निष्क्रिय गर्न र सम्बन्धित सेटिङहरू परिवर्तन गर्न सक्षम हुनेछ।"</string>
<string name="zen_access_disabled_package_warning" msgid="302820100078584431">"सूचना सम्बन्धी पहुँच सक्रिय हुनाले यसलाई अनिवार्य रूपमा सक्रिय राख्नु पर्छ"</string>
<string name="zen_access_revoke_warning_dialog_title" msgid="558779234015793950">"<xliff:g id="APP">%1$s</xliff:g> को बाधा नपुर्याउनुहोस् माथि पहुँच उल्टाउने हो?"</string>
- <string name="zen_access_revoke_warning_dialog_summary" msgid="5518216907304930148">"यस अनुप्रयोगले बनाएका सबै बाधा नपुर्याउनुहोस् नियम हटाइनेछ।"</string>
+ <string name="zen_access_revoke_warning_dialog_summary" msgid="5518216907304930148">"यस अनुप्रयोगले बनाएका सबै बाधा नपुर्याउनुहोस् नियम हटाइने छ।"</string>
<string name="ignore_optimizations_on" msgid="6915689518016285116">"आफू अनुकूल नगर्नुहोस्"</string>
<string name="ignore_optimizations_off" msgid="6153196256410296835">"अनुकुलन गर्नुहोस्"</string>
<string name="ignore_optimizations_on_desc" msgid="3549930955839111652">"यसले तपाईंको ब्याट्रीको चार्ज चाँडै घटाउन सक्छ। अनुप्रयोगलाई अब उप्रान्त पृष्ठभूमिमा ब्याट्री प्रयोग गर्न प्रतिबन्ध लगाइने छैन।"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"फोनको जाँच गर्न उठाउनुहोस्"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ट्याब्लेटको जाँच गर्न उठाउनुहोस्"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"यन्त्रको जाँच गर्न उठाउनुहोस्"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"सञ्चालन गर्नका लागि डिस्प्ले"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"समय, सूचना र अन्य जानकारीको जाँच गर्न आफ्नो फोन उठाउनुहोस्।"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"समय, सूचना र अन्य जानकारीको जाँच गर्न आफ्नो ट्याब्लेट उठाउनुहोस्।"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"समय, सूचना तथा अन्य जानकारीको जाँच गर्न आफ्नो यन्त्र उठाउनुहोस्।"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"वस्तुमाथि पहुँच राख्ने इसारा"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"सक्रियता लकसम्बन्धी स्क्रिनको इसारा"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"सूचनाहरू प्राप्त गर्न फिंगरप्रिन्ट स्वाइप गर्नुहोस्"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"फिंगरप्रिन्ट स्वाइप गर्नु"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"अफ्ना सूचनाहरूको जाँच गर्न आफ्नो फोनको पछाडिको भागमा रहेको फिंगरप्रिन्ट सेन्सरमा तलतिर स्वाइप गर्नुहोस्।"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"कुनै उपयोगिता अनुपात बिना नै सबै GNSS कन्स्टेलेसन तथा फ्रिक्वेन्सीहरूलाई ट्र्याक गर्नुहोस्"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"सधैँ क्र्याससम्बन्धी संवाद देखाउनुस्"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"प्रत्येकपटक अनुप्रयोग क्र्यास हुँदा संवाद देखाउनुहोस्"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"कोण सक्षम पारिएको अनुप्रयोग चयन गर्नुहोस्"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"कोण सक्षम पारिएको कुनै पनि अनुप्रयोग सेट गरिएको छैन"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"कोण सक्षम पारिएको अनुप्रयोग: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"निर्देशिकामाथिको पहुँच"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"निर्देशिकामाथिको पहुँच"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"भर्चुअल उच्च आवृत्ति प्यानल सक्षम पार्नुहोस्"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"सबै सेटिङहरू"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"तपाईंका सेटिङहरू"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS डेटा"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS डेटा"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"नेटवर्क छनौट गर्नुहोस्"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"विच्छेद गरियो"</string>
+ <string name="network_connected" msgid="4943925032253989621">"जडान गरियो"</string>
+ <string name="network_connecting" msgid="76404590784733557">"जडान गर्दै…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"जडान गर्न सकिएन"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"कुनै पनि नेटवर्क भेटिएन।"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"नेटवर्कहरू फेला पार्न सकिएन। फेरि प्रयास गर्नुहोस्।"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(निषेध गरिएको)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM कार्ड छैन"</string>
</resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 34d2e90..f69b440 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Eerder verbonden apparaten"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Eerder verbonden"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth ingeschakeld"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Alles weergeven"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datum en tijd"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Een tijdzone kiezen"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Gereed"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Je gezicht gebruiken voor"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Je apparaat ontgrendelen"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"App-login en -betalingen"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Ogen open om te ontgrendelen"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Wanneer je gezichtsherkenning gebruikt, moeten je ogen open zijn"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Gezichtsgegevens verwijderen"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Je gezichtsgegevens verbeteren"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Met je gezicht kun je je apparaat ontgrendelen en toegang tot apps krijgen. "<annotation id="url">"Meer informatie"</annotation></string>
@@ -2835,7 +2839,7 @@
<string name="restriction_menu_reset" msgid="2067644523489568173">"Beperkingen verwijderen"</string>
<string name="restriction_menu_change_pin" msgid="740081584044302775">"Pincode wijzigen"</string>
<string name="app_notifications_switch_label" msgid="9124072219553687583">"Meldingen weergeven"</string>
- <string name="help_label" msgid="6886837949306318591">"Help en feedback"</string>
+ <string name="help_label" msgid="6886837949306318591">"Hulp en feedback"</string>
<string name="support_summary" msgid="2705726826263742491">"Help-artikelen, bel- en chatondersteuning, aan de slag"</string>
<string name="user_account_title" msgid="1127193807312271167">"Account voor content"</string>
<string name="user_picture_title" msgid="7297782792000291692">"Foto-ID"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Standaard-apps"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Talen, tijd, back-up, updates"</string>
<string name="search_results_title" msgid="1796252422574886932">"Instellingen"</string>
- <string name="search_menu" msgid="6283419262313758339">"Zoeken in de instellingen"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wifi-netwerk, netwerkverbinding, internet, draadloos, gegevens, wifi-verbinding"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, schakelen, inschakelen, uitschakelen, beheren"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"sms, sms\'en, sms\'jes, berichten, sms-berichten, standaard"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"betalen, tikken, betalingen"</string>
<string name="keywords_backup" msgid="470070289135403022">"back-up, back-up maken, back-uppen"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gebaar"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"gezicht, ontgrendelen"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"gezicht, ontgrendelen, auth, inloggen"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl-versie, imei-softwareversie"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"netwerk, status mobiel netwerk, servicestatus, signaalsterkte, type mobiel netwerk, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serienummer, hardwareversie"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Persoonlijk"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Werk"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: alle"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: uitgeschakeld"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Uitgeschakeld"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categorieën: urgent belang"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categorieën: klein belang"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categorieën: uitgeschakeld"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Oppakken om telefoon te checken"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Oppakken om tablet te checken"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Oppakken om apparaat te checken"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Scherm activeren"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Pak je telefoon op om de tijd, meldingen en andere informatie te bekijken."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Pak je tablet op om de tijd, meldingen en andere informatie te bekijken."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Pak je apparaat op om de tijd, meldingen en andere informatie te bekijken."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Reikgebaar"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Vergrendelingsschermgebaar activeren"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Over vingerafdruksensor vegen voor meldingen"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Over vingerafdruksensor vegen"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Als je je meldingen wilt bekijken, veeg je omlaag over de vingerafdruksensor achter op je telefoon."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Alle GNSS-constellaties en -frequenties bijhouden zonder duty cycling"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Altijd een crashvenster weergeven"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Bij gecrashte apps altijd een venster weergeven"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"App met ANGLE-functionaliteit selecteren"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Geen app met ANGLE-functionaliteit ingesteld"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"App met ANGLE-functionaliteit: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Toegang tot directory"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"toegang tot directory"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Virtueel venster voor hoge frequentie inschakelen"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alle instellingen"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Je instellingen"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS-gegevens"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS-gegevens"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Netwerk kiezen"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Verbinding verbroken"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Verbonden"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Verbinding maken…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Kan geen verbinding maken"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Geen netwerken gevonden."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Kan geen netwerken vinden. Probeer het opnieuw."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(niet toegestaan)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Geen simkaart"</string>
</resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 1770f2a..7469628 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -178,6 +178,8 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"ପୂର୍ବରୁ ଯୋଡ଼ିହୋଇଥିବା ଡିଭାଇସ୍"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ପୂର୍ବରୁ କନେକ୍ଟ ହୋଇଛି"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ବ୍ଲୁ-ଟୁଥ୍ ଅନ୍ କରାଗଲା"</string>
+ <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
+ <skip />
<string name="date_and_time" msgid="9062980487860757694">"ତାରିଖ ଓ ସମୟ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"ସମୟ ଅଞ୍ଚଳ ବାଛନ୍ତୁ"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -402,6 +404,12 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ହୋଇଗଲା"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"ମୁହଁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ଆପଣଙ୍କର ଡିଭାଇସ୍ ଅନ୍ଲକ୍ କରନ୍ତୁ"</string>
+ <!-- no translation found for security_settings_face_settings_use_face_for_apps (5751549943998662469) -->
+ <skip />
+ <!-- no translation found for security_settings_face_settings_require_attention (1638445716306615123) -->
+ <skip />
+ <!-- no translation found for security_settings_face_settings_require_attention_details (5749808567341263288) -->
+ <skip />
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"ମୁହଁ ଡାଟା କାଢ଼ନ୍ତୁ"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"ଆପଣଙ୍କର ମୁହଁ ଡାଟା ଉନ୍ନତ କରନ୍ତୁ"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"ଆପଣଙ୍କର ଡିଭାଇସ୍ ଅନ୍ଲକ୍ ଏବଂ ଆପ୍ସ ଆକ୍ସେସ୍ କରିବାକୁ ଆପଣଙ୍କ ମୁହଁକୁ ବ୍ୟବହାର କରି ହେବ। "<annotation id="url">"ଅଧିକ ଜାଣନ୍ତୁ"</annotation></string>
@@ -2944,7 +2952,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ଡିଫଲ୍ଟ ଆପ୍"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ଭାଷା, ସମୟ, ବ୍ୟାକଅପ୍, ଅପଡେଟ୍"</string>
<string name="search_results_title" msgid="1796252422574886932">"ସେଟିଙ୍ଗ"</string>
- <string name="search_menu" msgid="6283419262313758339">"ସର୍ଚ୍ଚ ସେଟିଙ୍ଗ"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"ୱାଇଫାଇ, ୱାଇ-ଫାଇ, ନେଟ୍ୱର୍କ କନେକ୍ସନ୍, ଇଣ୍ଟରନେଟ୍, ୱାୟରଲେସ୍, ଡାଟା, ୱାଇ ଫାଇ"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"ୱାଇଫାଇ, ୱାଇ-ଫାଇ, ଟୋଗଲ୍, ନିୟନ୍ତ୍ରଣ"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"ଟେକ୍ସଟ୍ ମେସେଜ୍, ଟେକ୍ସଟିଙ୍ଗ୍, ମେସେଜ୍, ମେସେଜିଙ୍ଗ, ଡିଫଲ୍ଟ"</string>
@@ -2989,7 +2996,8 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ପୈଠ, ଟାପ୍, ପେମେଣ୍ଟ"</string>
<string name="keywords_backup" msgid="470070289135403022">"ବ୍ୟାକ୍ଅପ୍, ବ୍ୟାକ୍ ଅପ୍ ନିଅନ୍ତୁ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ଇଙ୍ଗିତ"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ମୁହଁ, ଅନ୍ଲକ୍"</string>
+ <!-- no translation found for keywords_face_unlock (254144854349092754) -->
+ <skip />
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl ଭର୍ସନ୍, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ନେଟ୍ୱର୍କ, ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ସ୍ଥିତି, ସେବା ସ୍ଥିତି, ସିଗ୍ନାଲ୍ ଶକ୍ତି, ମୋବାଇଲ୍ ନେଟ୍ୱର୍କ ପ୍ରକାର, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"କ୍ରମିକ ସଂଖ୍ୟା, ହାର୍ଡୱେର୍ ଭର୍ସନ୍"</string>
@@ -3483,7 +3491,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ବ୍ୟକ୍ତିଗତ"</string>
<string name="filter_work_apps" msgid="24519936790795574">"କାର୍ଯ୍ୟ"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"ଆପ୍: ସମସ୍ତ"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"ଆପ୍: ବନ୍ଦ ଅଛି"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ବନ୍ଦ କରାଯାଇଛି"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"ବର୍ଗ: ଅତ୍ୟନ୍ତ ମହତ୍ତ୍ୱପୂର୍ଣ୍ଣ"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"ବର୍ଗ: କମ୍ ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"ବର୍ଗ: ଅଫ୍ ରହିଛି"</string>
@@ -3959,11 +3967,15 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ଫୋନ୍କୁ ପରଖିବା ପାଇଁ ଉଠାନ୍ତୁ"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ଟାବଲେଟ୍ ଯାଞ୍ଚ କରିବାକୁ ଉଠାନ୍ତୁ"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"ଡିଭାଇସ୍ ଯାଞ୍ଚ କରିବାକୁ ଉଠାନ୍ତୁ"</string>
+ <!-- no translation found for ambient_display_wake_screen_title (4091523525326925790) -->
+ <skip />
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"ସମୟ, ବିଜ୍ଞପ୍ତି, ଏବଂ ଅନ୍ୟ ସୂଚନା ଦେଖିବାକୁ, ଆପଣଙ୍କ ଫୋନ୍ ଉଠାନ୍ତୁ।"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"ସମୟ, ବିଜ୍ଞପ୍ତି, ଏବଂ ଅନ୍ୟ ସୂଚନା ଦେଖିବାକୁ, ଆପଣଙ୍କ ଟାବ୍ଲେଟ୍ ଉଠାନ୍ତୁ।"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"ସମୟ, ବିଜ୍ଞପ୍ତି, ଏବଂ ଅନ୍ୟ ସୂଚନା ଦେଖିବାକୁ, ଆପଣଙ୍କ ଡିଭାଇସ୍ ଉଠାନ୍ତୁ।"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"ସ୍ପର୍ଶ ଦ୍ଵାରା ନିର୍ଦ୍ଦେଶକୁ ଯିବା"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <!-- no translation found for ambient_display_wake_lock_screen_title (562547995385322349) -->
+ <skip />
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"ବିଜ୍ଞପ୍ତି ପାଇଁ ଆଙ୍ଗୁଠି ଚିହ୍ନ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ଆଙ୍ଗୁଠି ଚିହ୍ନ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ, ନିଜ ଫୋନ୍ ପଛପଟେ ଥିବା ଆଙ୍ଗୁଠି ଚିହ୍ନ ସେନ୍ସର୍ ଉପରେ ଆଙ୍ଗୁଠି ରଖି ତଳକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ।"</string>
@@ -4108,6 +4120,12 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ଉପଯୋଗିତା ଅନୁପାତ ନଥିବା ସମସ୍ତ GNSS ଉପଗ୍ରହ ସମଷ୍ଟି ଓ ଫ୍ରିକ୍ୱେନ୍ସୀକୁ ଟ୍ରାକ୍ କରନ୍ତୁ"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"କ୍ରାଶ୍ ହୋଇଥିବା ଡାୟଲଗ୍କୁ ସର୍ବଦା ଦେଖାନ୍ତୁ"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"ପ୍ରତ୍ୟେକ ଥର ଗୋଟିଏ ଆପ୍ କ୍ରାଶ୍ ହେବାପରେ ଡାୟଲଗ୍ ଦେଖାନ୍ତୁ"</string>
+ <!-- no translation found for angle_enabled_app (1841862539745838255) -->
+ <skip />
+ <!-- no translation found for angle_enabled_app_not_set (864740024581634768) -->
+ <skip />
+ <!-- no translation found for angle_enabled_app_set (226015765615525056) -->
+ <skip />
<string name="directory_access" msgid="4722237210725864244">"ଡାଇରେକ୍ଟୋରୀ ଆକ୍ସେସ୍"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ଡାଇରେକ୍ଟୋରୀ ଆକ୍ସେସ୍"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4152,24 +4170,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ଭର୍ଚୁଆଲ୍ ଉଚ୍ଚମାନର ଫ୍ରିକ୍ୟୁଏନ୍ସି ପ୍ୟାନେଲ୍ ସକ୍ଷମ କରନ୍ତୁ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ସମସ୍ତ ସେଟିଂସ୍"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"ଆପଣଙ୍କ ସେଟିଂସ୍"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ଡାଟା"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ଡାଟା"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"ନେଟ୍ୱର୍କ ବାଛନ୍ତୁ"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"ବିଛିନ୍ନ ହୋଇଗଲା"</string>
+ <string name="network_connected" msgid="4943925032253989621">"ସଂଯୋଗ ହୋଇଛି"</string>
+ <string name="network_connecting" msgid="76404590784733557">"ସଂଯୋଗ କରୁଛି…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"ସଂଯୋଗ କରିହେଲା ନାହିଁ"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"କୌଣସି ନେଟ୍ୱର୍କ ମିଳୁନାହିଁ"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"ନେଟ୍ୱର୍କ ମିଳୁନାହିଁ। ପୁଣି ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ଅନୁମତିପ୍ରାପ୍ତ ନୁହେଁ)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM କାର୍ଡ ନାହିଁ"</string>
</resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index c1343de..cb4ae0d 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -179,6 +179,8 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"ਪਹਿਲਾਂ ਤੋਂ ਕਨੈਕਟ ਕੀਤੇ ਡੀਵਾਈਸ"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ਪਹਿਲਾਂ ਤੋਂ ਕਨੈਕਟ ਕੀਤੇ"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"ਬਲੂਟੁੱਥ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string>
+ <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
+ <skip />
<string name="date_and_time" msgid="9062980487860757694">"ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"ਸਮਾਂ ਜ਼ੋਨ ਚੁਣੋ"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +405,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ਹੋ ਗਿਆ"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"ਚਿਹਰਾ ਇਹਨਾਂ ਲਈ ਵਰਤੋ"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ਡੀਵਾਈਸ ਅਣਲਾਕ ਕਰੋ"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ਐਪ ਸਾਈਨ-ਇਨ ਅਤੇ ਭੁਗਤਾਨ"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"ਅਣਲਾਕ ਕਰਨ ਲਈ ਅੱਖਾਂ ਖੁੱਲ੍ਹੀਆਂ ਹਨ"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"ਚਿਹਰਾ ਪ੍ਰਮਾਣੀਕਰਨ ਵਰਤਣ ਵੇਲੇ ਤੁਹਾਡੀਆਂ ਅੱਖਾਂ ਦਾ ਖੁੱਲ੍ਹੇ ਹੋਣਾ ਲਾਜ਼ਮੀ ਹੈ"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"ਚਿਹਰੇ ਦਾ ਡਾਟਾ ਹਟਾਓ"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"ਆਪਣੇ ਚਿਹਰੇ ਦਾ ਡਾਟਾ ਬਿਹਤਰ ਬਣਾਓ"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਨੂੰ ਅਣਲਾਕ ਅਤੇ ਐਪਾਂ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਚਿਹਰੇ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। "<annotation id="url">"ਹੋਰ ਜਾਣੋ"</annotation></string>
@@ -2945,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ਪੂਰਵ-ਨਿਰਧਾਰਤ ਐਪਾਂ"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ਭਾਸ਼ਾਵਾਂ, ਸਮਾਂ, ਬੈਕਅੱਪ, ਅੱਪਡੇਟ"</string>
<string name="search_results_title" msgid="1796252422574886932">"ਸੈਟਿੰਗਾਂ"</string>
- <string name="search_menu" msgid="6283419262313758339">"ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਖੋਜੋ"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"ਵਾਈਫਾਈ, ਵਾਈ-ਫਾਈ, ਨੈੱਟਵਰਕ ਕਨੈਕਸ਼ਨ, ਇੰਟਰਨੈੱਟ, ਵਾਇਰਲੈੱਸ, ਡਾਟਾ, ਵਾਈ ਫਾਈ"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"ਵਾਈ ਫਾਈ, ਵਾਈ-ਫਾਈ, ਟੌਗਲ, ਕੰਟਰੋਲ"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"ਲਿਖਤ ਸੁਨੇਹਾ, ਲਿਖਤ ਸੁਨੇਹੇ ਭੇਜਣਾ, ਸੁਨੇਹੇ, ਸੁਨੇਹਾ ਭੇਜਣਾ, ਪੂਰਵ-ਨਿਰਧਾਰਤ"</string>
@@ -2990,7 +2994,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ਭੁਗਤਾਨ ਕਰੋ, ਟੈਪ ਕਰੋ, ਭੁਗਤਾਨ"</string>
<string name="keywords_backup" msgid="470070289135403022">"ਬੈਕਅੱਪ, ਬੈਕ ਅੱਪ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ਸੰਕੇਤ"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ਚਿਹਰਾ, ਅਣਲਾਕ"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ਚਿਹਰਾ, ਅਣਲਾਕ, ਪ੍ਰਮਾਣੀਕਰਨ, ਸਾਈਨ-ਇਨ"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl ਵਰਜਨ, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ਨੈੱਟਵਰਕ, ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਅਵਸਥਾ, ਸੇਵਾ ਅਵਸਥਾ, ਸਿਗਨਲ ਸ਼ਕਤੀ, ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਦੀ ਕਿਸਮ, ਰੋਮਿੰਗ, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"ਸੀਰੀਅਲ ਨੰਬਰ, ਹਾਰਡਵੇਅਰ ਵਰਜਨ"</string>
@@ -3483,7 +3487,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ਨਿੱਜੀ"</string>
<string name="filter_work_apps" msgid="24519936790795574">"ਦਫ਼ਤਰ"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"ਐਪਾਂ: ਸਾਰੀਆਂ"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"ਐਪਾਂ: ਬੰਦ ਹਨ"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ਬੰਦ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"ਸ਼੍ਰੇਣੀਆਂ: ਜ਼ਰੂਰੀ ਮਹੱਤਵ"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"ਸ਼੍ਰੇਣੀਆਂ: ਘੱਟ ਮਹੱਤਵ"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"ਸ਼੍ਰੇਣੀਆਂ: ਬੰਦ ਹਨ"</string>
@@ -3957,11 +3961,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ਫ਼ੋਨ ਚੈੱਕ ਕਰਨ ਲਈ ਚੁੱਕੋ"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ਸੂਚਨਾਵਾਂ ਦੇਖਣ ਲਈ ਟੈਬਲੈੱਟ ਨੂੰ ਚੁੱਕੋ"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"ਸੂਚਨਾਵਾਂ ਦੇਖਣ ਲਈ ਡੀਵਾਈਸ ਨੂੰ ਚੁੱਕੋ"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ਡਿਸਪਲੇ ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"ਸਮਾਂ, ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇਖਣ ਲਈ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਚੁੱਕੋ।"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"ਸਮਾਂ, ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇਖਣ ਲਈ ਆਪਣੇ ਟੈਬਲੈੱਟ ਨੂੰ ਚੁੱਕੋ।"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"ਸਮਾਂ, ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇਖਣ ਲਈ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਚੁੱਕੋ।"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"ਪਹੁੰਚ ਸਕੇਤ"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"ਚੇਤਨ ਲਾਕ ਸਕ੍ਰੀਨ ਸੰਕੇਤ"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"ਸੂਚਨਾਵਾਂ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸਵਾਈਪ ਕਰੋ"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਨੂੰ ਸਵਾਈਪ ਕਰੋ"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"ਆਪਣੀਆਂ ਸੂਚਨਾਵਾਂ ਦੇਖਣ ਲਈ, ਆਪਣੇ ਫ਼ੋਨ ਦੇ ਪਿਛਲੇ ਪਾਸੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ \'ਤੇ ਹੇਠਾਂ ਨੂੰ ਸਵਾਈਪ ਕਰੋ।"</string>
@@ -4106,6 +4112,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ਡਿਊਟੀ ਸਾਈਕਲਿੰਗ ਤੋਂ ਬਿਨਾਂ ਸਾਰੇ GNSS ਉਪਗ੍ਰਹਿ ਗਰੁੱਪਾਂ ਅਤੇ ਵਾਰਵਾਰਤਾਵਾਂ ਨੂੰ ਟਰੈਕ ਕਰੋ"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"ਹਮੇਸ਼ਾਂ ਕ੍ਰੈਸ਼ ਵਿੰਡੋ ਦਿਖਾਓ"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"ਕਿਸੇ ਐਪ ਦੇ ਕ੍ਰੈਸ਼ ਹੋਣ \'ਤੇ ਹਰ ਵਾਰ ਵਿੰਡੋ ਦਿਖਾਓ"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE ਸਮਰਥਿਤ ਐਪ ਚੁਣੋ"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE ਸਮਰਥਿਤ ਕੋਈ ਐਪਲੀਕੇਸ਼ਨ ਸੈੱਟ ਨਹੀਂ"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE ਸਮਰਥਿਤ ਐਪਲੀਕੇਸ਼ਨ: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"ਡਾਇਰੈਕਟਰੀ ਤੱਕ ਪਹੁੰਚ"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ਡਾਇਰੈਕਟਰੀ ਪਹੁੰਚ"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4159,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ਆਭਾਸੀ ਉੱਚ ਬਾਰੰਬਾਰਤਾ ਪੈਨਲ ਨੂੰ ਚਾਲੂ ਕਰੋ"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"ਸਾਰੀਆਂ ਸੈਟਿੰਗਾਂ"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"ਤੁਹਾਡੀਆਂ ਸੈਟਿੰਗਾਂ"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ਡਾਟਾ"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ਡਾਟਾ"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"ਨੈੱਟਵਰਕ ਚੁਣੋ"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"ਡਿਸਕਨੈਕਟ ਹੋਇਆ"</string>
+ <string name="network_connected" msgid="4943925032253989621">"ਕਨੈਕਟ ਹੈ"</string>
+ <string name="network_connecting" msgid="76404590784733557">"ਕਨੈਕਟ ਹੋ ਰਿਹਾ ਹੈ…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਿਆ"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"ਕੋਈ ਨੈੱਟਵਰਕ ਨਹੀਂ ਮਿਲੇ।"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"ਨੈੱਟਵਰਕ ਨਹੀਂ ਮਿਲ ਸਕੇ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ਵਰਜਿਤ)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"ਕੋਈ ਸਿਮ ਕਾਰਡ ਨਹੀਂ"</string>
</resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index a2f0c89..e898a41 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -181,6 +181,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Wcześniej połączone urządzenia"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Wcześniej połączone"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Włączony Bluetooth"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Pokaż wszystko"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data i godzina"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Wybierz strefę czasową"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -407,6 +408,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Gotowe"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Użyj własnej twarzy"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Odblokowywanie urządzenia"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Logowanie do aplikacji i płatności"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Otwórz oczy, by odblokować"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Gdy korzystasz z uwierzytelniania twarzą, musisz mieć otwarte oczy"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Usuń dane dotyczące twarzy"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Zaktualizuj dane dotyczące twarzy"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Twoja twarz wystarczy, by odblokować urządzenie i otworzyć aplikacje."<annotation id="url">"Dowiedz się więcej"</annotation></string>
@@ -3021,7 +3025,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Domyślne aplikacje"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Języki, kopia zapasowa, aktualizacje"</string>
<string name="search_results_title" msgid="1796252422574886932">"Ustawienia"</string>
- <string name="search_menu" msgid="6283419262313758339">"Wyszukaj ustawienia"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, połączenie z siecią, internet, bezprzewodowe, dane, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, przełącz, sterowanie"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, wysyłanie SMS-ów, wiadomości, wysyłanie wiadomości, domyślna"</string>
@@ -3066,7 +3069,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"płacenie, klikanie, płatności"</string>
<string name="keywords_backup" msgid="470070289135403022">"kopia zapasowa, tworzenie kopii zapasowej"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gest"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"Rozpoznawanie twarzy"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"twarz, odblokowanie, uwierzytelnienie, logowanie"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, wersja prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"sieć, stan sieci komórkowej, stan usługi, moc sygnału, typ sieci komórkowej, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"numer seryjny, wersja sprzętu"</string>
@@ -3587,7 +3590,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Osobiste"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Do pracy"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikacje: wszystkie"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikacje: wyłączone"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Wyłączono"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorie: pilne"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorie: mało ważne"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorie: wyłączone"</string>
@@ -4089,11 +4092,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Podnieś, by sprawdzić telefon"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Podnieś, by sprawdzić tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Podnieś, by sprawdzić urządzenie"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Wybudź ekran"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Aby sprawdzić godzinę, powiadomienia i inne informacje, podnieś telefon."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Aby sprawdzić godzinę, powiadomienia i inne informacje, podnieś tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Aby sprawdzić godzinę, powiadomienia i inne informacje, podnieś urządzenie."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gest sięgania"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gest wybudzenia ekranu blokady"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Sprawdzanie powiadomień"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Przesuwanie po czytniku"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Aby sprawdzić powiadomienia, przesuń palcem w dół na czytniku linii papilarnych z tyłu telefonu."</string>
@@ -4252,6 +4257,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Śledź wszystkie konstelacje GNSS i częstotliwości bez uwzględniania współczynnika impulsu"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Zawsze pokazuj okno dialogowe z raportem o błędzie"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Pokazuj okno dialogowe przy każdym poważnym błędzie w aplikacji"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Wybierz aplikację obsługującą ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nie ustawiono aplikacji obsługującej ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikacja obsługująca ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Dostęp do katalogu"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"dostęp do katalogu"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4296,24 +4304,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Włącz wirtualny panel wys. częstotliwości"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Wszystkie ustawienia"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Twoje ustawienia"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Dane CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dane CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Wybierz sieć"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Odłączono"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Połączono"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Łączę…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Nie udało się połączyć"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nie znaleziono sieci."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Nie udało się znaleźć sieci. Spróbuj ponownie."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(dostęp zabroniony)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Brak karty SIM"</string>
</resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index cec8a45..8a41a0c 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dispositivos conectados anteriormente"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Conectados anteriormente"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth ativado"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Ver tudo"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data e hora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Selecione o fuso horário"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Concluído"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Usar seu rosto para"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Desbloquear o disp."</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Login e pagamentos no app"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Olhos abertos para desbloquear"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Seus olhos precisam estar abertos para usar a autenticação facial"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Remov. dados faciais"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Melhore seus dados faciais"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Use seu rosto para desbloquear o dispositivo e acessar apps. "<annotation id="url">"Saiba mais"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Apps padrão"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Idiomas, horário, backup, atualizações"</string>
<string name="search_results_title" msgid="1796252422574886932">"Configurações"</string>
- <string name="search_menu" msgid="6283419262313758339">"Procurar nas configurações"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, Wi-Fi, conexão de rede, Internet, sem fio, dados, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, alternar, controle"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mensagem de texto, envio de mensagens, mensagens, troca de mensagens, padrão"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pagar, tocar, pagamentos"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesto"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"desbloqueio, facial"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"desbloqueio, facial, autenticação, login"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versão prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"rede, estado da rede móvel, estado do serviço, potência do sinal, tipo de rede móvel, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"número de série, versão do hardware"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Pessoais"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Trabalho"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: todas"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: desativadas"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Desativado"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categorias: importância urgente"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categorias: importância baixa"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categorias: desativadas"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Levantar o smartphone para verificá-lo"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Levantar o tablet para verificá-lo"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Levantar o dispositivo para verificá-lo"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Ativar a tela"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Para verificar a hora, as notificações e outras informações, pegue o smartphone."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Para verificar a hora, as notificações e outras informações, pegue o tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Para verificar a hora, as notificações e outras informações, pegue o dispositivo."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gesto de alcançar"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gesto de tela para wake lock"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Usar impressão digital para ver as notificações"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Usar impressão digital"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Para ver suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do smartphone."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Rastrear todas as constelações e frequências do GNSS sem nenhum ciclo de trabalho"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Sempre mostrar a caixa de diálogo de falha"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Mostra a caixa de diálogo sempre que um app falha"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Selecionar app ativado para ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nenhum conjunto de aplicativos ativados para ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplicativo ativado para ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Acesso ao diretório"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"acesso ao diretório"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ativar o Painel de alta frequência virtual"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Todas as configurações"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Suas configurações"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Dados CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dados CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Escolher rede"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Desconectado"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Conectado"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Conectando…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Não foi possível conectar"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nenhuma rede encontrada."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Não foi possível encontrar redes. Tente novamente."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(proibida)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Sem chip"</string>
</resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index e2f62b8..a4ddbfc 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dispositivos ligados anteriormente"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Ligados anteriormente"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth ativado"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Ver todos"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data e hora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Escolher o fuso horário"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Concluído"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Utilizar rosto para"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Desbloq. dispositivo"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Início de ses. em apl./pagam."</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Olhos abertos para desbloquear"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Para utilizar a autenticação facial, os olhos têm de estar abertos."</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Remover dados rosto"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Melhorar dados do rosto"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Pode utilizar o seu rosto para desbloquear o dispositivo e aceder a aplicações. "<annotation id="url">"Saiba mais"</annotation></string>
@@ -727,7 +731,7 @@
<string name="bluetooth_menu_advanced" msgid="8572178316357220524">"Avançadas"</string>
<string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"Bluetooth Avançado"</string>
<string name="bluetooth_empty_list_bluetooth_off" msgid="6351930724051893423">"Com o Bluetooth ativado, o dispositivo pode comunicar com dispositivos próximos."</string>
- <string name="bluetooth_scanning_on_info_message" msgid="824285504325592644">"Quando o Bluetooth está ativado, o dispositivo pode comunicar com outros dispositivos Bluetooth próximos.\n\nPara melhorar a experiência do dispositivo, as aplicações e os serviços podem continuar a procurar dispositivos próximos a qualquer momento, mesmo quando o Bluetooth está desativado. Pode utilizar esta opção, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização. Pode alterar esta opção nas "<annotation id="link">"definições de análise"</annotation>"."</string>
+ <string name="bluetooth_scanning_on_info_message" msgid="824285504325592644">"Quando o Bluetooth está ativado, o dispositivo pode comunicar com outros dispositivos Bluetooth próximos.\n\nPara melhorar a experiência do dispositivo, as aplicações e os serviços podem continuar a procurar dispositivos próximos em qualquer altura, mesmo quando o Bluetooth está desativado. Pode utilizar esta opção, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização. Pode alterar esta opção nas "<annotation id="link">"definições de análise"</annotation>"."</string>
<string name="ble_scan_notify_text" msgid="1295915006005700650">"Para melhorar a precisão da localização, os serviços e as aplicações do sistema podem continuar a detetar dispositivos Bluetooth. Pode alterar esta opção nas <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>definições de procura<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
<string name="bluetooth_connect_failed" msgid="4500234659813241053">"Não foi possível ligar. Tente novamente."</string>
<string name="device_details_title" msgid="6576953269221085300">"Detalhes do disp."</string>
@@ -817,7 +821,7 @@
<string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="593964217679325831">"Para utilizar, selecionar um fornecedor de classificação de rede"</string>
<string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="8472122600853650258">"Para utilizar, selecionar um fornecedor de classificação de rede compatível"</string>
<string name="wifi_install_credentials" msgid="3551143317298272860">"Instalar certificados"</string>
- <string name="wifi_scan_notify_text" msgid="5544778734762998889">"Para melhorar a precisão da localização, as aplicações e os serviços podem continuar a procurar redes Wi-Fi a qualquer momento, mesmo quando o Wi-Fi está desativado. Pode utilizar esta opção, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização. Pode alterar esta opção nas <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>definições de análise<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+ <string name="wifi_scan_notify_text" msgid="5544778734762998889">"Para melhorar a precisão da localização, as aplicações e os serviços podem continuar a procurar redes Wi-Fi em qualquer altura, mesmo quando o Wi-Fi está desativado. Pode utilizar esta opção, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização. Pode alterar esta opção nas <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>definições de análise<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
<string name="wifi_scan_notify_text_scanning_off" msgid="3426075479272242098">"Para melhorar a precisão da localização, ative a procura de redes Wi-Fi nas <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>definições de análise<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
<string name="wifi_scan_notify_remember_choice" msgid="7104867814641144485">"Não mostrar de novo"</string>
<string name="wifi_setting_sleep_policy_title" msgid="5149574280392680092">"Manter Wi-Fi ligada durante suspensão"</string>
@@ -852,7 +856,7 @@
<string name="wifi_setup_wps" msgid="8128702488486283957">"Config. automática (WPS)"</string>
<string name="wifi_settings_scanning_required_title" msgid="3815269816331500375">"Pretende ativar a procura de Wi‑Fi?"</string>
<string name="wifi_settings_scanning_required_summary" msgid="6352918945128328916">"Para ativar o Wi‑Fi automaticamente, primeiro tem de ativar a procura de Wi‑Fi."</string>
- <string name="wifi_settings_scanning_required_info" msgid="3155631874578023647">"A procura de Wi-Fi permite que as aplicações e os serviços procurem redes Wi‑Fi a qualquer momento, mesmo quando o Wi-Fi estiver desativado. Isto pode ser utilizado, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização."</string>
+ <string name="wifi_settings_scanning_required_info" msgid="3155631874578023647">"A procura de Wi-Fi permite que as aplicações e os serviços procurem redes Wi‑Fi em qualquer altura, mesmo quando o Wi-Fi estiver desativado. Isto pode ser utilizado, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização."</string>
<string name="wifi_settings_scanning_required_turn_on" msgid="1364287182804820646">"Ativar"</string>
<string name="wifi_settings_scanning_required_enabled" msgid="5527653791584018157">"Procura de Wi-Fi ativada"</string>
<string name="wifi_show_advanced" msgid="3409422789616520979">"Opções avançadas"</string>
@@ -1561,9 +1565,9 @@
<string name="location_low_battery_use" msgid="8602232529541903596">"Utilização de bateria baixa"</string>
<string name="location_scanning_screen_title" msgid="4408076862929611554">"A analisar"</string>
<string name="location_scanning_wifi_always_scanning_title" msgid="6216705505621183645">"Procurar por Wi‑Fi"</string>
- <string name="location_scanning_wifi_always_scanning_description" msgid="2691110218127379249">"Permita que as aplicações e os serviços procurem redes Wi‑Fi a qualquer momento, mesmo quando o Wi-Fi estiver desativado. Isto pode ser utilizado, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização."</string>
+ <string name="location_scanning_wifi_always_scanning_description" msgid="2691110218127379249">"Permita que as aplicações e os serviços procurem redes Wi‑Fi em qualquer altura, mesmo quando o Wi-Fi estiver desativado. Isto pode ser utilizado, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização."</string>
<string name="location_scanning_bluetooth_always_scanning_title" msgid="5444989508204520019">"Procurar por Bluetooth"</string>
- <string name="location_scanning_bluetooth_always_scanning_description" msgid="1285526059945206128">"Permita que as aplicações e os serviços procurem dispositivos próximos a qualquer momento, mesmo quando o Bluetooth estiver desativado. Isto pode ser utilizado, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização."</string>
+ <string name="location_scanning_bluetooth_always_scanning_description" msgid="1285526059945206128">"Permita que as aplicações e os serviços procurem dispositivos próximos em qualquer altura, mesmo quando o Bluetooth estiver desativado. Isto pode ser utilizado, por exemplo, para melhorar as funcionalidades e os serviços baseados na localização."</string>
<string name="location_network_based" msgid="9134175479520582215">"Wi-Fi e localização de rede de telemóvel"</string>
<string name="location_neighborhood_level" msgid="5141318121229984788">"Permitir que aplic. usem o serv. localiz. Google p/ calcular mais rapida/ a sua localização. Dados localização recolhidos e enviados à Google."</string>
<string name="location_neighborhood_level_wifi" msgid="4234820941954812210">"Localização determinada por Wi-Fi"</string>
@@ -1713,7 +1717,7 @@
<string name="force_stop" msgid="7435006169872876756">"Forçar paragem"</string>
<string name="total_size_label" msgid="1048676419552557254">"Total"</string>
<string name="application_size_label" msgid="7376689739076506885">"Tamanho da aplicação"</string>
- <string name="external_code_size_label" msgid="3459343140355961335">"Aplic. de armazenamento USB"</string>
+ <string name="external_code_size_label" msgid="3459343140355961335">"Apps de armazenamento USB"</string>
<string name="data_size_label" msgid="6117971066063850416">"Dados do utilizador"</string>
<string name="external_data_size_label" product="nosdcard" msgid="7533821466482000453">"Dados de armazenamento USB"</string>
<string name="external_data_size_label" product="default" msgid="626414192825329708">"Cartão SD"</string>
@@ -2443,7 +2447,7 @@
<string name="remove_device_admin" msgid="9207368982033308173">"Desativar esta aplicação de administração do dispositivo"</string>
<string name="uninstall_device_admin" msgid="271120195128542165">"Desinstalar aplicação"</string>
<string name="remove_and_uninstall_device_admin" msgid="3837625952436169878">"Desativar e desinstalar"</string>
- <string name="select_device_admin_msg" msgid="7347389359013278077">"Aplic. de gestor do dispositivo"</string>
+ <string name="select_device_admin_msg" msgid="7347389359013278077">"Apps de gestor do dispositivo"</string>
<string name="no_device_admins" msgid="4846602835339095768">"Nenhuma aplicação de administração do dispositivo disponível"</string>
<string name="personal_device_admin_title" msgid="2849617316347669861">"Pessoal"</string>
<string name="managed_device_admin_title" msgid="7853955652864478435">"Trabalho"</string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Aplicações predefinidas"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Idiomas, hora, cópia de segurança, atualizações"</string>
<string name="search_results_title" msgid="1796252422574886932">"Definições"</string>
- <string name="search_menu" msgid="6283419262313758339">"Definições de pesquisa"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, Wi-Fi, ligação de rede, Internet, sem fios, dados, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"Wifi, Wi-Fi, ativar/desativar, controlar"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mensagem de texto, enviar mensagens de texto, mensagens, enviar mensagens, predefinição"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pagar, tocar, pagamentos"</string>
<string name="keywords_backup" msgid="470070289135403022">"cópia de segurança, fazer uma cópia de segurança"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesto"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"desbloqueio através do rosto"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"rosto, desbloquear, autenticação, iniciar sessão"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versão de prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"rede, estado da rede móvel, estado do serviço, intensidade do sinal, tipo de rede móvel, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"número de série, versão de hardware"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Pessoais"</string>
<string name="filter_work_apps" msgid="24519936790795574">"De trabalho"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplicações: todas"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplicações: desativadas"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Desativadas"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categorias: importância alta"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categorias: importância baixa"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categorias: desativadas"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Levantar p/verificar telem."</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Levantar para verificar o tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Levantar para verificar o dispositivo"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Ativar ecrã"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Para consultar a hora, as notificações e outras informações, pegue no telemóvel."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Para consultar a hora, as notificações e outras informações, pegue no tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Para consultar a hora, as notificações e outras informações, pegue no dispositivo."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gesto de alcance"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gesto de ecrã do wake lock"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Utilizar impressão digital para ver as notificações"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Usar impressão digital"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Para verificar as suas notificações, deslize rapidamente para baixo no sensor de impressões digitais situado na parte posterior do telemóvel."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Monitorizar todas as constelações e frequências de GNSS sem ciclos"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Mostrar sempre a caixa de diálogo de falhas"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Mostrar a caixa de diálogo sempre que uma aplicação falhar"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Selecionar aplicação compatível com o ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nenhuma aplicação compatível com o ANGLE definida."</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplicação compatível com o ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Acesso ao diretório"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"acesso ao diretório"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ativar painel virtual de alta frequência"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Todas as definições"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"As suas definições"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Dados de CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dados de CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Escolher rede"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Desligada."</string>
+ <string name="network_connected" msgid="4943925032253989621">"Ligada."</string>
+ <string name="network_connecting" msgid="76404590784733557">"A ligar…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Não foi possível estabelecer ligação."</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nenhuma rede encontrada."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Não foi possível encontrar qualquer rede. Tente novamente."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(proibida)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Nenhum cartão SIM"</string>
</resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index cec8a45..8a41a0c 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dispositivos conectados anteriormente"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Conectados anteriormente"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth ativado"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Ver tudo"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data e hora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Selecione o fuso horário"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Concluído"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Usar seu rosto para"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Desbloquear o disp."</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Login e pagamentos no app"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Olhos abertos para desbloquear"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Seus olhos precisam estar abertos para usar a autenticação facial"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Remov. dados faciais"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Melhore seus dados faciais"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Use seu rosto para desbloquear o dispositivo e acessar apps. "<annotation id="url">"Saiba mais"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Apps padrão"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Idiomas, horário, backup, atualizações"</string>
<string name="search_results_title" msgid="1796252422574886932">"Configurações"</string>
- <string name="search_menu" msgid="6283419262313758339">"Procurar nas configurações"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, Wi-Fi, conexão de rede, Internet, sem fio, dados, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, alternar, controle"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mensagem de texto, envio de mensagens, mensagens, troca de mensagens, padrão"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"pagar, tocar, pagamentos"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesto"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"desbloqueio, facial"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"desbloqueio, facial, autenticação, login"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versão prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"rede, estado da rede móvel, estado do serviço, potência do sinal, tipo de rede móvel, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"número de série, versão do hardware"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Pessoais"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Trabalho"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Apps: todas"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Apps: desativadas"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Desativado"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categorias: importância urgente"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categorias: importância baixa"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categorias: desativadas"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Levantar o smartphone para verificá-lo"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Levantar o tablet para verificá-lo"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Levantar o dispositivo para verificá-lo"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Ativar a tela"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Para verificar a hora, as notificações e outras informações, pegue o smartphone."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Para verificar a hora, as notificações e outras informações, pegue o tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Para verificar a hora, as notificações e outras informações, pegue o dispositivo."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gesto de alcançar"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gesto de tela para wake lock"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Usar impressão digital para ver as notificações"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Usar impressão digital"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Para ver suas notificações, deslize o dedo indicador para baixo no sensor de impressão digital localizado na parte traseira do smartphone."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Rastrear todas as constelações e frequências do GNSS sem nenhum ciclo de trabalho"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Sempre mostrar a caixa de diálogo de falha"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Mostra a caixa de diálogo sempre que um app falha"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Selecionar app ativado para ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nenhum conjunto de aplicativos ativados para ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplicativo ativado para ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Acesso ao diretório"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"acesso ao diretório"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Ativar o Painel de alta frequência virtual"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Todas as configurações"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Suas configurações"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Dados CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dados CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Escolher rede"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Desconectado"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Conectado"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Conectando…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Não foi possível conectar"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nenhuma rede encontrada."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Não foi possível encontrar redes. Tente novamente."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(proibida)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Sem chip"</string>
</resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 646cb67..01f7b00 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -180,6 +180,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Dispozitive conectate anterior"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Conectat anterior"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Funcția Bluetooth activată"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Afișați-le pe toate"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data și ora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Selectați fusul orar"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -405,6 +406,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Terminat"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Folosiți chipul pt."</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Deblocați dispozit."</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Conectare la aplicații/plăți"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Ochii deschiși pentru deblocare"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Când folosiți autentificarea facială, trebuie să aveți ochii deschiși"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Elim. date chip"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Îmbunătățiți datele chipului"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Vă puteți folosi chipul pentru a vă debloca dispozitivul și a accesa aplicațiile. "<annotation id="url">"Aflați mai multe"</annotation></string>
@@ -2983,7 +2987,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Aplicații prestabilite"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Limbi, oră, backup, actualizări"</string>
<string name="search_results_title" msgid="1796252422574886932">"Setări"</string>
- <string name="search_menu" msgid="6283419262313758339">"Căutați în setări"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, conexiune la rețea, internet, wireless, date, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, comutator, control"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mesaj text, schimb de mesaje, mesaje, mesagerie, prestabilit"</string>
@@ -3028,7 +3031,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"plată, atingere, plăți"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gest"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"deblocare facială"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"facială, deblocare, autorizare, conectare"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versiune PRL, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"rețea, starea rețelei mobile, starea acoperirii, puterea semnalului, tip de rețea mobilă, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"număr de serie, versiune de hardware"</string>
@@ -3535,7 +3538,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personale"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Serviciu"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplicații: toate"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplicații: dezactivate"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Dezactivate"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Categorii: importanță urgentă"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Categorii: importanță scăzută"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Categorii: dezactivate"</string>
@@ -4023,11 +4026,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Ridicați pentru a verifica telefonul"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Ridicați pentru a verifica tableta"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Ridicați pentru a verifica dispozitivul"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Ecran la activare"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Ca să verificați ora, notificările și alte informații, ridicați telefonul."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Ca să verificați ora, notificările și alte informații, ridicați tableta."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Ca să verificați ora, notificările și alte informații, ridicați dispozitivul."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gest de apropiere"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gest pentru activarea ecranului de blocare"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Glisați amprenta digitală pentru notificări"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Glisați amprenta"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Pentru a verifica notificările, glisați în jos pe senzorul de amprentă de pe spatele telefonului."</string>
@@ -4179,6 +4184,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Urmăriți toate constelațiile și frecvențele GNSS fără ciclu de funcționare"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Afișați întotdeauna caseta de dialog pentru blocări"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Afișați caseta de dialog de fiecare dată când se blochează o aplicație"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Selectați aplicația compatibilă cu ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nu există niciun set de aplicații compatibile cu ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplicație compatibilă cu ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Acces la director"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"acces la director"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4223,24 +4231,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Activați panoul virtual de frecvență înaltă"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Toate setările"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Setări"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Date CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Date CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Alegeți o rețea"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Deconectată"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Conectată"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Se conectează…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Nu s-a putut conecta"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nicio rețea găsită."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Nu s-au găsit rețele. Încercați din nou."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(interzisă)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Niciun card SIM"</string>
</resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index fa17617..32fac9f 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -181,6 +181,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Ранее подключенные устройства"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Ранее подключенные устройства"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Модуль Bluetooth включен"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Показать все"</string>
<string name="date_and_time" msgid="9062980487860757694">"Дата и время"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Выбрать часовой пояс"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -407,6 +408,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ОК"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Возможности"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Разблокировка устройства"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Вход в приложения и оплата"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Для разблокировки нужно открыть глаза"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Распознавание лиц будет работать, только когда глаза открыты."</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Удалить данные лица"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Улучшить распознавание лица"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Снимайте блокировку экрана и получайте доступ к приложениям с помощью распознавания лица. "<annotation id="url">"Подробнее…"</annotation></string>
@@ -3021,7 +3025,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Приложения по умолчанию"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Язык, время, резервное копирование и обновления"</string>
<string name="search_results_title" msgid="1796252422574886932">"Настройки"</string>
- <string name="search_menu" msgid="6283419262313758339">"Поиск настроек"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"Wi-Fi, WiFi, сетевое подключение, Интернет, беспроводной, данные, Wi Fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, переключатель, управление"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, текстовое сообщение, сообщения, обмен сообщениями, по умолчанию"</string>
@@ -3066,7 +3069,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"Бесконтактная оплата"</string>
<string name="keywords_backup" msgid="470070289135403022">"создать резервную копию"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"жест"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"лицо, разблокировать"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"лицо, разблокировать, аутентификация, вход"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, версия prl, imeisv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"сеть, подключение к мобильной сети, доступность мобильной сети, уровень сигнала, тип мобильной сети, роуминг, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"серийный номер, версия аппаратного обеспечения"</string>
@@ -3587,7 +3590,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Личные"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Рабочие"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Приложения: все"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Приложения: отключенные"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Уведомления отключены"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Категории: крайняя важность"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Категории: низкая важность"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Категории: отключенные"</string>
@@ -4089,11 +4092,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Поднять, чтобы проверить уведомления"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Просмотр уведомлений в вертикальном положении планшета"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Просмотр уведомлений в вертикальном положении устройства"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Включить экран"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Чтобы увидеть время, уведомления и другую информацию, возьмите телефон."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Чтобы увидеть время, уведомления и другую информацию, возьмите планшет."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Чтобы увидеть время, уведомления и другую информацию, возьмите устройство."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Жест для получения доступа"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Показать экран блокировки"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Использовать сканер отпечатков для просмотра уведомлений"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Сканер отпечатков"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Чтобы увидеть уведомления, проведите вниз по сканеру отпечатков пальцев на задней панели телефона"</string>
@@ -4252,6 +4257,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Отслеживать все выкладки и частоты GNSS без рабочего цикла"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Всегда показывать сообщение об ошибке"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Показывать диалог при каждом сбое приложения"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Выбрать приложение с поддержкой ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Приложение с поддержкой ANGLE не выбрано"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Приложение с поддержкой ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Доступ к каталогам"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"доступ к каталогам"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4296,24 +4304,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Включить виртуальную High Frequency Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Все настройки"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Ваши настройки"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Данные CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Данные CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Выбрать сеть"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Не подключено"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Подключено"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Подключение…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Не удалось подключиться к сети"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Сети не найдены."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Сети не найдены. Повторите попытку."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(доступ запрещен)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Нет SIM-карты."</string>
</resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 669d725..5e019a7 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"පෙර සම්බන්ධිත උපාංග"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"පෙර සම්බන්ධිත"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"බ්ලූටූත් ක්රියාත්මක කරන ලදී"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"සියල්ල බලන්න"</string>
<string name="date_and_time" msgid="9062980487860757694">"දිනය සහ වේලාව"</string>
<string name="choose_timezone" msgid="1362834506479536274">"වේලා කලාපය තෝරන්න"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"නිමයි"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"ඔබේ මුහුණ භාවිතා කරන්න"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ඔබේ උපාංගය අගුලු හරින්න"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"යෙදුම් පිරීම සහ ගෙවීම"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"අගුලු හැරීමට විවෘත ඇස්"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"මුහුණු සත්යාපනය භාවිතා කරන විට, ඔබේ ඇස් විවෘත විය යුතුය"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"මුහුණ දත්ත ඉවත් කරන්න"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"ඔබේ මුහුණු දත්ත වැඩි දියුණු කරන්න"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"ඔබගේ උපාංගය අගුලු හැරීමට සහ යෙදුම් වෙත පිවිසීමට ඔබේ මුහුණ භාවිතා කළ හැකිය. "<annotation id="url">"තව දැන ගන්න"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"පෙරනිමි යෙදුම්"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"භාෂා, වේලාව, උපස්ථය, යාවත්කාලීන"</string>
<string name="search_results_title" msgid="1796252422574886932">"සැකසීම්"</string>
- <string name="search_menu" msgid="6283419262313758339">"සැකසීම් සොයන්න"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, ජාල සම්බන්ධය, අන්තර්ජාලය, රැහැන් රහිත, දත්ත, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, ටොගල කිරීම, පාලනය"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"පෙළ පණිවිඩය, පණිවිඩකරණය, පණිවිඩ, පණිවිඩ යැවීම, පෙරනිමි"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ගෙවීම, තට්ටු කිරීම, ගෙවීම්"</string>
<string name="keywords_backup" msgid="470070289135403022">"උපස්ථ, උපස්ථ"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ඉංගිතය"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"මුහුණු අගුලු හැරීම"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"මුහුණ, අගුලු හැරීම, සත්යාපනය, පිරීම"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl version, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ජාලය, ජංගම ජාල තත්ත්වය, සේවා තත්ත්වය, සංඥා ප්රබලතාව, ජංගම ජාල වර්ගය, රෝමිං, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"අනුක්රමික අංකය, දෘඪාංග අනුවාදය"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"පුද්ගලික"</string>
<string name="filter_work_apps" msgid="24519936790795574">"කාර්යාලය"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"යෙදුම්: සියල්ල"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"යෙදුම්: අක්රිය කර ඇත"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ක්රියාවිරහිතයි"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"ප්රවර්ග: හදිසි වැදගත්කම"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"ප්රවර්ග: අඩු වැදගත්කම"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"ප්රවර්ග: අක්රිය කර ඇත"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"දුරකථනය පරීක්ෂාවට ඔසවන්න"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ටැබ්ලට් පරිගණකය පරීක්ෂා කිරීමට ඔසවන්න"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"උපාංගය පරීක්ෂා කිරීමට ඔසවන්න"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"සංදර්ශකය අවදි කරන්න"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"වේලාව, දැනුම්දීම් සහ වෙනත් තොරතුරු පරීක්ෂා කිරීමට, ඔබේ දුරකථනය ඔසවන්න."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"වේලාව, දැනුම්දීම් සහ වෙනත් තොරතුරු පරීක්ෂා කිරීමට, ඔබේ ටැබ්ලටය ඔසවන්න."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"වේලාව, දැනුම්දීම් සහ වෙනත් තොරතුරු පරීක්ෂා කිරීමට, ඔබේ උපාංගය ඔසවන්න."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"ළඟා වීමේ ඉංගිතය"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"අගුලු තිරය අවදි කිරීමේ අභිනය"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"දැනුම්දීම් සඳහා ඇඟිලි සලකුණ ස්වයිප් කරන්න"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"ඇඟිලි සලකුණ ස්වයිප් කරන්න"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"ඔබේ දැනුම්දීම් පරීක්ෂා කිරීමට, ඔබේ දුරකථනයේ පිටුපස පැත්තේ ඇති ඇඟිලි සලකුණු සංවේදකය මත පහළට ස්වයිප් කරන්න."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"කාර්ය චක්රය රහිත සියලු GNSS සබැඳි තාරකා ගෝල සහ සංඛ්යාත"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"බිඳ වැටීම් සංවාදය සැම විට පෙන්වන්න"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"යෙදුමක් බිඳ වැටෙන සෑම විටම සංවාදය පෙන්වන්න"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE සබල යෙදුමක් තෝරන්න"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE සබල යෙදුමක් සකසා නැත"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE සබල යෙදුම: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"නාමාවලි ප්රවේශය"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"නාමාවලි ප්රවේශය"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"අතථ්ය අධිසංඛ්යාත පුවරුව සබල කරන්න"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"සියලු සැකසීම්"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"ඔබගේ සැකසීම්"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS දත්ත"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS දත්ත"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"ජාලය තෝරන්න"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"විසන්ධි විය"</string>
+ <string name="network_connected" msgid="4943925032253989621">"සම්බන්ධයි"</string>
+ <string name="network_connecting" msgid="76404590784733557">"සබැඳෙමින්…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"සම්බන්ධ වීමට නොහැකි විය"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"ජාලයක් හමු නොවීය."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"ජාල සොයා ගත නොහැකි විය. නැවත උත්සාහ කරන්න."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(තහනම්)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM කාඩ්පතක් නැත"</string>
</resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 97d5717..5ec90b0 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -181,6 +181,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Predtým pripojené zariadenia"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Predtým pripojené zariadenia"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Rozhranie Bluetooth je zapnuté"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Zobraziť všetky"</string>
<string name="date_and_time" msgid="9062980487860757694">"Dátum a čas"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Zvoľte časové pásmo"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -407,6 +408,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Hotovo"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Použitie tváre"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Odomknite zariadenie"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Prihlasovanie a platby v aplikáciách"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Odomknutie otvorenými očami"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Keď použijete overenie totožnosti tvárou, musíte mať otvorené oči"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Odstrániť tvár"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Upresnenie údajov o tvári"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Pomocou tváre môžete odomykať zariadenie a používať aplikácie. "<annotation id="url">"Ďalšie informácie"</annotation></string>
@@ -3021,7 +3025,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Predvolené aplikácie"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Jazyky, čas, zálohovanie, aktualizácie"</string>
<string name="search_results_title" msgid="1796252422574886932">"Nastavenia"</string>
- <string name="search_menu" msgid="6283419262313758339">"Hľadať v nastaveniach"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, sieťové pripojenie, internet, bezdrôtové, dáta, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, prepínač, ovládanie"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"textová správa, odosielanie textových správ, správy, sms a mms, predvolené"</string>
@@ -3066,7 +3069,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"platiť, klepnutie, platby"</string>
<string name="keywords_backup" msgid="470070289135403022">"záloha, zálohovanie"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gesto"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"tvár, odomknutie"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"tvár, odomknutie, overenie totožnosti, prihlásenie"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, verzia prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"sieť, stav mobilnej siete, stav služby, sila signálu, typ mobilnej siete, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"sériové číslo, hardvérová verzia"</string>
@@ -3587,7 +3590,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Osobné"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Pracovné"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikácie: Všetky"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikácie: Vypnuté"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Vypnuté"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategórie: Neodkladná dôležitosť"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategórie: Nízka dôležitosť"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategórie: Vypnuté"</string>
@@ -4089,11 +4092,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Kontrola telefónu zdvihnutím"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Tablet skontrolujete tak, že ho zodvihnete"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Zariadenie skontrolujete tak, že ho zodvihnete"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Prebudiť obrazovku"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Ak chcete zistiť čas, skontrolovať upozornenia a získať ďalšie informácie, zdvihnite telefón."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Ak chcete zistiť čas, skontrolovať upozornenia a získať ďalšie informácie, zdvihnite tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Ak chcete zistiť čas, skontrolovať upozornenia a získať ďalšie informácie, zdvihnite zariadenie."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gesto načiahnutia"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gesto prebudenia uzamknutej obrazovky"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Upozornenia potiahnutím prsta"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Potiahnite prstom"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Upozornenia zobrazíte potiahnutím nadol po senzore odtlačkov prstov na zadnej strane telefónu."</string>
@@ -4252,6 +4257,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"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="8889957119867262599">"Vždy zobrazovať dialógové okno zlyhania"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Zobraziť dialógové okno pri každom zlyhaní aplikácie"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Vybrať aplikáciu podporujúcu ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nie je nastavená žiadna aplikácia podporujúca ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikácia podporujúca ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Prístup k adresáru"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"prístup k adresáru"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4296,24 +4304,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Povoliť virtuálny vysokofrekvenčný panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Všetky nastavenia"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Vaše nastavenia"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Dáta CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dáta CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Vybrať sieť"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Odpojené"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Pripojené"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Pripája sa…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Nepodarilo sa pripojiť"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nebola nájdená žiadna sieť."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Nepodarilo sa nájsť siete. Skúste to znova."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(zakázané)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Žiadna SIM karta"</string>
</resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 0532447..3e84831 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -181,6 +181,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Predhodno povezane naprave"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Predhodno povezane naprave"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth je vklopljen"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Pokaži vse"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datum in ura"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Izberite časovni pas"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -407,6 +408,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Končano"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Uporaba obraza za"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Odklepanje naprave"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Prijava v aplikacije in plačila"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Odprte oči za odklepanje"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Pri preverjanju pristnosti z obrazom morate imeti odprte oči"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Odstrani podatke o obrazu"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Izboljšanje podatkov o obrazu"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Z obrazom lahko odklenete napravo in dostopate do aplikacij. "<annotation id="url">"Več o tem"</annotation></string>
@@ -3021,7 +3025,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Privzete aplikacije"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Jeziki, čas, varnostno kopiranje, posodobitve"</string>
<string name="search_results_title" msgid="1796252422574886932">"Nastavitve"</string>
- <string name="search_menu" msgid="6283419262313758339">"Preišči nastavitve"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, omrežna povezava, internet, brezžično, podatki, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, preklop, upravljanje"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, pošiljanje sporočil SMS, sporočila, sporočanje, privzeto"</string>
@@ -3066,7 +3069,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"plačaj, dotakni se, plačevanje z dotikom, plačila"</string>
<string name="keywords_backup" msgid="470070289135403022">"varnostna kopija, varnostno kopiranje, varnostno kopirati"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"poteza"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"odklepanje z obrazom"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"obraz, odklepanje, preverjanje pristnosti, prijava"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, različica seznama prednostnih omrežij za gostovanje, različica programske opreme za imei"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"omrežje, stanje mobilnega omrežja, stanje storitve, moč signala, vrsta mobilnega omrežja, gostovanje, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serijska številka, različica strojne opreme"</string>
@@ -3587,7 +3590,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Osebno"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Služba"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikacije: vse"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikacije: izklopljeno"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Izklopljeno"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorije: nujna pomembnost"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorije: nizka pomembnost"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorije: izklopljeno"</string>
@@ -4089,11 +4092,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Preverjanje telefona z dvigom"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Primite tablični računalnik, da ga preverite"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Primite napravo, da jo preverite"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Preklop zaslona iz stanja pripravljenosti"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Če želite preveriti uro, obvestila in druge informacije, primite telefon."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Če želite preveriti uro, obvestila in druge informacije, primite tablični računalnik."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Če želite preveriti uro, obvestila in druge informacije, primite napravo."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Poteza iztega"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Poteza za preklop zaklenj. zaslona iz stanja pripravljenosti"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Poteg s prstom po tipalu prstnih odtisov za prikaz obvestil"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Poteg po prstnem tipalu"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Če želite preveriti obvestila, povlecite navzdol po tipalu prstnih odtisov na hrbtni strani telefona."</string>
@@ -4252,6 +4257,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spremljaj vse razmestitve in frekvence GNSS brez ciklov"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Vedno pokaži pogovorno okno zrušitve"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Pokaži pogovorno okno ob vsaki zrušitvi aplikacije"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Izbira aplikacije, ki podpira ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Ni nastavljene aplikacije, ki podpira ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikacija, ki podpira ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Dostop do imenika"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"dostop do imenika"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4296,24 +4304,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Omogoči navidezno ploščo za hitro osveževanje"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Vse nastavitve"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Vaše nastavitve"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Podatki CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Podatki CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Izbira omrežja"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Brez povezave"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Povezano"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Povezovanje …"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Povezave ni bilo mogoče vzpostaviti"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Najdeno ni bilo nobeno omrežje."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Omrežij ni bilo mogoče najti. Poskusite znova."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(prepovedano)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Ni kartice SIM"</string>
</resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index d11c728..419e186 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Pajisjet e lidhura më parë"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Të lidhura më parë"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth-i është i aktivizuar"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Shiko të gjitha"</string>
<string name="date_and_time" msgid="9062980487860757694">"Data dhe ora"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Zgjidh brezin orar"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"U krye"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Përdor fytyrën për të"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Shkyç pajisjen tënde"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Identifikimi dhe pagesat e aplikacionit"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Hap sytë për të shkyçur"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Kur përdor vërtetimin me fytyrë, sytë duhet të jenë të hapur"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Hiq të dhënat e fytyrës"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Përmirëso të dhënat e fytyrës"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Fytyra jote mund të përdoret për të shkyçur pajisjen tënde dhe për të pasur qasje tek aplikacionet. "<annotation id="url">"Mëso më shumë"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Apl. e parazgjedhura"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Gjuhët, koha, rezervimi, përditësimet"</string>
<string name="search_results_title" msgid="1796252422574886932">"Cilësimet"</string>
- <string name="search_menu" msgid="6283419262313758339">"Kërko \"Cilësimet\""</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, lidhja e rrjetit, internet, pa tel, të dhëna, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, ndrysho, kontrolli"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"mesazh me tekst, dërgim mesazhi me tekst, mesazhe, dërgim mesazhi, i parazgjedhur"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"paguaj, trokit, pagesa"</string>
<string name="keywords_backup" msgid="470070289135403022">"rezervim, rezervo"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"gjesti"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"shkyçja, me fytyrë"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"fytyrë, shkyçje, autorizim, identifikim"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, versioni prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"rrjeti, gjendja e rrjetit celular, gjendja e shërbimit, fuqia e sinjalit, lloji i rrjetit celular, roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"numri i serisë, versioni i harduerit"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personale"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Punë"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Aplikacionet: Të gjitha"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Aplikacionet: Të çaktivizuara"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Çaktivizuar"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategoritë: Rëndësia urgjente"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategoritë: Përparësia e ulët"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategoritë: Të çaktivizuara"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Ngrije për ta kontrolluar telefonin"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Ngrije për ta kontrolluar tabletin"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Ngrije për ta kontrolluar pajisjen"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Ekrani i zgjimit"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Për të kontrolluar orën, njoftimet dhe informacione të tjera, merre në duar telefonin tënd."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Për të kontrolluar orën, njoftimet dhe informacione të tjera, merre në duar tabletin tënd."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Për të kontrolluar orën, njoftimet dhe informacione të tjera, merre në duar pajisjen tënde."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Gjesti i arritjes"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Gjesti i shfaqjes së ekranit të kyçjes"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Rrëshqit gjurmën e gishtit për njoftimet"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Rrëshqit gjurmën e gishtit"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Për të kontrolluar njoftimet, rrëshqit poshtë në sensorin e gjurmës së gishtit në pjesën e pasme të telefonit."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Gjurmo të gjitha koleksionet dhe frekuencat e GNSS pa ciklim të detyruar"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Gjithmonë shfaq dialogun e ndërprerjes aksidentale"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Shfaq dialogun sa herë që një aplikacion pëson ndërprerje aksidentale"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Zgjidh aplikacionin e aktivizuar për ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Nuk është caktuar aplikacion i aktivizuar për ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Aplikacioni i aktivizuar për ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Qasja në direktori"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"qasja në direktori"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktivizo panelin virtual me frekuencë të lartë"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Të gjitha cilësimet"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Cilësimet e tua"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Të dhënat e CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Të dhënat e CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Zgjidh rrjetin"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"I shkëputur"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Lidhur"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Po lidhet…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Nuk mund të lidhej"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Nuk u gjetën rrjete."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Rrjetet nuk mund të gjendeshin. Provo përsëri."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ndalohet)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Nuk ka kartë SIM"</string>
</resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 8b6f92e..9cc2b8c 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -180,6 +180,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Претходно повезани уређаји"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Претходно повезани"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth је укључен"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Прикажи све"</string>
<string name="date_and_time" msgid="9062980487860757694">"Датум и време"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Избор временске зоне"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -405,6 +406,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Готово"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Користите лице за"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"откључавање уређаја"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Пријава у апликације и плаћања"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Отворене очи ради откључавања"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Када користите потврду идентитета лицем, очи морају да буду отворене."</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Уклоните податке о лицу"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Побољшајте податке о лицу"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Користите лице да бисте откључали уређај и приступили апликацијама. "<annotation id="url">"Сазнајте више"</annotation></string>
@@ -2983,7 +2987,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Подразумеване апликације"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Језици, време, резервне копије, ажурирања"</string>
<string name="search_results_title" msgid="1796252422574886932">"Подешавања"</string>
- <string name="search_menu" msgid="6283419262313758339">"Претражите подешавања"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, веза са мрежом, интернет, бежично, подаци, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, укључи/искључи, контрола"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, слање SMS-ова, поруке, размена порука, подразумевано"</string>
@@ -3028,7 +3031,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"платите, додирните, плаћања"</string>
<string name="keywords_backup" msgid="470070289135403022">"резервна копија, правити резервну копију"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"покрет"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"лице, откључавање"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"лице, откључавање, потврда идентитета, пријављивање"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, мин, верзија prl-a, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"мрежа, стање мобилне мреже, стање услуге, јачина сигнала, тип мобилне мреже, роминг, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"серијски број, верзија хардвера"</string>
@@ -3535,7 +3538,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Личне"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Посао"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Апликације: све"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Апликације: искључено"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Искључено"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Категорије: висок приоритет"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Категорије: низак приоритет"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Категорије: искључено"</string>
@@ -4023,11 +4026,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Подигните телефон да га проверите"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Подигните таблет да бисте га проверили"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Подигните уређај да бисте га проверили"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Пробудите екран"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Да бисте проверили време, обавештења и друге информације, узмите телефон."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Да бисте проверили време, обавештења и друге информације, узмите таблет."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Да бисте проверили време, обавештења и друге информације, узмите уређај."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Покрет за досег"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Покрет за буђење закључаног екрана"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Превуците прстом за обавештења"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Превуците прстом"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Да бисте проверили обавештења, превуците прстом надоле по сензору за отисак прста на задњој страни телефона."</string>
@@ -4179,6 +4184,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Прати све GNSS консталације и фреквенције без циклуса рада"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Увек приказуј дијалог о отказивању"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Прикажи дијалог сваки пут када апликација откаже"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Изабери апликацију омогућену за ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Није подешена апликација омогућена за ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Апликација омогућена за ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Приступ директоријумима"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"приступ директоријумима"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4223,24 +4231,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Омогућите виртуелну плочу високе фреквенције"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Сва подешавања"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Подешавања"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS подаци"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS подаци"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Одаберите мрежу"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Веза је прекинута"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Повезано"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Повезује се…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Повезивање није успело"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Није пронађена ниједна мрежа."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Нисмо успели да пронађемо мреже. Пробајте поново."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(забрањено)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Нема SIM картице"</string>
</resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index ba0e216..aa0a64a 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Tidigare anslutna enheter"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Tidigare anslutna enheter"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth har aktiverats"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Visa alla"</string>
<string name="date_and_time" msgid="9062980487860757694">"Datum och tid"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Välj tidszon"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Klar"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Med ansiktet kan du"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Låsa upp enheten"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Inloggning och köp i appar"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Öppna ögon för upplåsning"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Dina ögon måste vara öppna vid användning av ansiktsautentisering"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Ta bort ansiktsdata"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Förbättra ansiktsdata"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Du kan låsa upp enheten och komma åt appar med hjälp av ansiktet. "<annotation id="url">"Läs mer"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Standardappar"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Språk, säkerhetskopiering, uppdateringar"</string>
<string name="search_results_title" msgid="1796252422574886932">"Inställningar"</string>
- <string name="search_menu" msgid="6283419262313758339">"Sök i inställningar"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, nätverksanslutning, internet, trådlös, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, på/av, styra"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"textmeddelande, sms, meddelanden, skicka meddelande, standard"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"betala, tryck, betalningar"</string>
<string name="keywords_backup" msgid="470070289135403022">"säkerhetskopia, säkerhets kopia"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"rörelse"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ansikte, lås upp"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ansikte, upplåsning, auktorisering, inloggning"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei-kod, meid, min, prl-version, imei-kod sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"nätverk, status för mobilt nätverk, status för tjänst, signalstyrka, mobilt nätverkstyp, roaming, iccid-nummer"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serienummer, maskinvaruversion"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personligt"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Arbetet"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Appar: alla"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Appar: inaktiverade"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Inaktiverade"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategorier: brådskande avisering"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategorier: oviktig avisering"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategorier: inaktiverad"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Lyft för att kolla mobilen"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Plocka upp för att kolla surfplattan"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Plocka upp för att kolla enheten"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Skrämväckning"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Visa tid, aviseringar och annan information genom att plocka upp mobilen."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Visa tid, aviseringar och annan information genom att plocka upp surfplattan."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Visa tid, aviseringar och annan information genom att plocka upp enheten."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Framsträckningsrörelse"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Skärmrörelse för processlås"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Svep med fingret för aviseringar"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Svep med fingret"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Visa aviseringar genom att svepa nedåt på fingeravtryckssensorn på baksidan av mobilen."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Spåra alla konstellationer och frekvenser för GNSS utan arbetscykel"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Visa alltid en dialogruta vid krascher"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Visa alltid en dialogruta när en app kraschar"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Välj en ANGLE-kompatibel app"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Ingen ANGLE-kompatibel app har angetts"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE-kompatibel app: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Katalogåtkomst"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"katalogåtkomst"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Aktivera den virtuella panelen för hög frekvens"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Alla inställningar"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Dina inställningar"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Data via CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data via CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Välj nätverk"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Frånkopplad"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Ansluten"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Ansluter …"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Det gick inte att ansluta"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Inga nätverk hittades."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Det gick inte att hitta nätverk. Försök igen."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(förbjudet)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Inget SIM-kort"</string>
</resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 05a164d..1f084e1 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Vifaa ulivyounganisha awali"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Vilivyounganishwa awali"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Imewasha Bluetooth"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Angalia zote"</string>
<string name="date_and_time" msgid="9062980487860757694">"Tarehe na saa"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Chagua saa za eneo"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Nimemaliza"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Tumia uso wako"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Fungua kifaa chako"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Malipo na kuingia katika programu"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Fungua macho ili ufungue kifaa"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Ni sharti ufungue macho yako ili uweze kutumia uthibitishaji wa uso"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Ondoa data ya uso"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Boresha data yako ya uso"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Unaweza kutumia uso wako kufungua kifaa chako na kufikia programu. "<annotation id="url">"Pata maelezo zaidi"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Programu chaguomsingi"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Lugha, saa, hifadhi rudufu, masasisho"</string>
<string name="search_results_title" msgid="1796252422574886932">"Mipangilio"</string>
- <string name="search_menu" msgid="6283419262313758339">"Tafuta kwenye mipangilio"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, mtandao, muunganisho wa mtandao, intaneti, pasiwaya, data,"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"Wi-Fi, wi-fi, geuza, dhibiti"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"sms, kutuma SMS, ujumbe, kutuma ujumbe, chaguomsingi"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"lipa, gusa, malipo"</string>
<string name="keywords_backup" msgid="470070289135403022">"hifadhi rudufu, hifadhi nakala"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ishara"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"uso, kufungua"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"uso, fungua, thibitisha, ingia katika akaunti"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, toleo la prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"mtandao, hali ya mtandao wa simu, hali ya huduma, uthabiti wa mtandao, aina ya mtandao wa simu, matumizi ya mitandao mingine, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"nambari ya ufuatiliaji, toleo la maunzi"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Binafsi"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Kazini"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Programu: Zote"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Programu zilizozimwa"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Zimezimwa"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Aina: Umuhimu wa dharura"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Aina: Umuhimu wa chini"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Aina: Zimezimwa"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Inua ili uangalie simu"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Inua ili uangalie kompyuta kibao"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Inua ili uangalie kifaa"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Onyesho la kuwasha skrini"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Ili uangalie saa, arifa na maelezo mengine, chukua simu yako."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Ili uangalie saa, arifa na maelezo mengine, chukua kompyuta kibao yako."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Ili uangalie saa, arifa na maelezo mengine, chukua kifaa chako."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Ishara ya ufikiaji"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Ishara ya skrini ya Wake lock"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Telezesha kidole ili upate arifa"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Telezesha kidole"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Ili uangalie arifa zako, telezesha kidole kuelekea chini kwenye kitambua alama ya kidole kilicho upande wa nyuma wa simu yako."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Fuatilia mikusanyiko na mawimbi yote yasiyo na utendakazi wa GNSS"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Onyesha kidirisha cha programu kuacha kufanya kazi kila wakati"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Onyesha kisanduku kila wakati programu inapoacha kufanya kazi"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Chagua programu inayoweza kutumia ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Hujaweka programu yoyote inayoweza kutumia ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Programu inayoweza kutumia ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Kufikia saraka"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"kufikia saraka"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Washa Kidirisha cha Masafa Pepe ya Juu"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Mipangilio Yote"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Mipangilio Yako"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Data ya CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data ya CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Chagua mtandao"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Haijaunganishwa"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Imeunganisha"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Inaunganisha…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Imeshindwa kuunganisha"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Hakuna mitandao iliyopatikana."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Imeshindwa kupata mitandao. Jaribu tena."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(hairuhusiwi)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Hakuna SIM kadi"</string>
</resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index fcaca40..fbf0439 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -179,6 +179,8 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"இதற்கு முன்னர் இணைத்த சாதனங்கள்"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ஏற்கனவே இணைத்தவை"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"புளூடூத் ஆன் செய்யப்பட்டது"</string>
+ <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
+ <skip />
<string name="date_and_time" msgid="9062980487860757694">"தேதி & நேரம்"</string>
<string name="choose_timezone" msgid="1362834506479536274">"நேரமண்டலத்தைத் தேர்வுசெய்க"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +405,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"முடிந்தது"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"முகத்தை உபயோகித்து"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"சாதனத்தைத் திற"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ஆப்ஸில் உள்நுழை, பேமெண்ட்டுகள்"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"தடைநீக்க, கண்களைத் திறத்தல்"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"முக அடையாளத்தைப் பயன்படுத்தும்போது, கண்களைத் திறந்திருக்க வேண்டும்"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"முகங்களை அகற்று"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"தெளிவான முகத்தைப் பதிவுசெய்க"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"சாதனத்தைத் திறப்பதற்கும் ஆப்ஸை அணுகுவதற்கும், உங்கள் முகத்தைப் பயன்படுத்தலாம். "<annotation id="url">"மேலும் அறிக"</annotation></string>
@@ -2945,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"இயல்புப் பயன்பாடுகள்"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"மொழிகள், நேரம், காப்புப் பிரதி, புதுப்பிப்புகள்"</string>
<string name="search_results_title" msgid="1796252422574886932">"அமைப்பு"</string>
- <string name="search_menu" msgid="6283419262313758339">"அமைப்புகளில் தேடு"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"வைஃபை, வை-ஃபை, நெட்வொர்க் இணைப்பு, இணையம், வயர்லெஸ், டேட்டா, வை ஃபை"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"வைஃபை, வை-ஃபை, நிலைமாற்றி, கட்டுப்பாடு"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"உரைச் செய்தி, உரைச் செய்தியிடல், செய்திகள், செய்தியிடல், இயல்பு"</string>
@@ -2990,7 +2994,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"கட்டணம் செலுத்தவும், தட்டவும், கட்டணம் செலுத்துதல்"</string>
<string name="keywords_backup" msgid="470070289135403022">"காப்புப்பிரதி, காப்புப் பிரதி"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"சைகை"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"முகம் காட்டித் திறத்தல்"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"முகம், தடைநீக்கம், முகம் காட்டித் திறத்தல், அடையாளம், உள்நுழைதல்"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl பதிப்பு, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"நெட்வொர்க், மொபைல் நெட்வொர்க் நிலை, சேவை நிலை, சிக்னலின் வலிமை, மொபைல் நெட்வொர்க் வகை, ரோமிங், iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"வரிசை எண், வன்பொருள் பதிப்பு"</string>
@@ -3483,7 +3487,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"தனிப்பட்டவை"</string>
<string name="filter_work_apps" msgid="24519936790795574">"பணியிடம்"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"பயன்பாடுகள்: எல்லாம்"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"ஆப்ஸ்: ஆஃப் செய்தவை"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ஆஃப் செய்யப்பட்டவை"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"வகைகள்: அதிக முக்கியத்துவம்"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"வகைகள்: குறைந்த முக்கியத்துவம்"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"வகைகள்: முடக்கப்பட்டன"</string>
@@ -3940,7 +3944,7 @@
<string name="gesture_preference_summary" product="default" msgid="8627850388011956901">"உங்கள் மொபைலைக் கட்டுப்படுத்துவதற்கான உடனடி சைகைகள்"</string>
<string name="gesture_preference_summary" product="tablet" msgid="4717535378272065510">"டேப்லெட்டைக் கட்டுப்படுத்துவதற்கான உடனடி சைகைகள்"</string>
<string name="gesture_preference_summary" product="device" msgid="4205941452664950852">"சாதனத்தைக் கட்டுப்படுத்துவதற்கான உடனடி சைகைகள்"</string>
- <string name="double_tap_power_for_camera_title" msgid="64716226816032800">"கேமராவிற்குச் செல்"</string>
+ <string name="double_tap_power_for_camera_title" msgid="64716226816032800">"கேமராவிற்குச் செல்லுதல்"</string>
<string name="double_tap_power_for_camera_summary" msgid="242037150983277829">"கேமராவை விரைவாகத் திறக்க, பவர் பட்டனை இருமுறை அழுத்தவும். எந்தத் திரையிலும் கேமரா இயங்கும்."</string>
<string name="double_tap_power_for_camera_suggestion_title" msgid="6500405261202883589">"கேமராவை உடனடியாகத் திறக்கவும்"</string>
<string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"கேமராவை மாற்றுதல்"</string>
@@ -3957,11 +3961,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"திரையில் அறிவிப்புகளைப் பார்க்க, மொபைலைக் கையில் எடுக்கவும்"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"திரையில் அறிவிப்புகளை பார்க்க, டேப்லெட்டை கையில் எடுக்கவும்"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"திரையில் அறிவிப்புகளைப் பார்க்க, சாதனத்தை கையில் எடுக்கவும்"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"திரையை எழுப்புதல்"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"நேரம், அறிவிப்புகள் மற்றும் பிற தகவலைப் பார்க்க உங்கள் மொபைலைக் கையில் எடுக்கவும்."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"நேரம், அறிவிப்புகள் மற்றும் பிற தகவலைப் பார்க்க உங்கள் டேப்லெட்டைக் கையில் எடுக்கவும்."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"நேரம், அறிவிப்புகள் மற்றும் பிற தகவலைப் பார்க்க உங்கள் சாதனத்தைக் கையில் எடுக்கவும்."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"பார்க்கும் சைகை"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"எழுப்புவதற்கான பூட்டுத் திரைச் சைகை"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"அறிவிப்புகளைப் பெற சென்சாரில் ஸ்வைப் செய்தல்"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"கைரேகை ஸ்வைப்"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"அறிவிப்புகளைப் பார்க்க, மொபைலின் பின்புறத்தில் உள்ள கைரேகை சென்சாரில் கீழ் நோக்கி ஸ்வைப் செய்தல்."</string>
@@ -4106,6 +4112,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"பணி சுழற்சியை முடக்கி, GNSS வழிசெலுத்துதல்கள் மற்றும் அதிர்வெண்கள் அனைத்தையும் கண்காணித்தல்."</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"சிதைவு அறிவிப்பை எப்போதும் காட்டு"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"பயன்பாடு செயலிழக்கும் போதெல்லாம் சிதைவு அறிவிப்பைக் காட்டு"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE இயக்கப்பட்ட ஆப்ஸைத் தேர்வுசெய்க"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE இயக்கப்பட்ட ஆப்ஸ் எதுவும் இல்லை"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE இயக்கப்பட்ட ஆப்ஸ்: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"கோப்பக அணுகல்"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"கோப்பக அணுகல்"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4159,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"விரிச்சுவல் உயர் அதிர்வெண் பேனலை இயக்கு"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"அனைத்து அமைப்புகளும்"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"உங்கள் அமைப்புகள்"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS டேட்டா"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS டேட்டா"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"நெட்வொர்க்கைத் தேர்வுசெய்"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"தொடர்பு துண்டிக்கப்பட்டது"</string>
+ <string name="network_connected" msgid="4943925032253989621">"இணைக்கப்பட்டது"</string>
+ <string name="network_connecting" msgid="76404590784733557">"இணைக்கிறது…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"இணைக்க முடியவில்லை"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"நெட்வொர்க்குகள் இல்லை."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"நெட்வொர்க்குகளைக் கண்டறிய முடியவில்லை. மீண்டும் முயலவும்."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(தடுக்கப்பட்டது)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"சிம் கார்டு இல்லை"</string>
</resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index dfd0d47..6f3cdc4 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -179,6 +179,8 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"మునుపు కనెక్ట్ చేసిన పరికరాలు"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"ఇంతకు మునుపు కనెక్ట్ చేయబడినవి"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"బ్లూటూత్ ఆన్ చేయబడింది"</string>
+ <!-- no translation found for previous_connected_see_all (3626779872898778415) -->
+ <skip />
<string name="date_and_time" msgid="9062980487860757694">"తేదీ & సమయం"</string>
<string name="choose_timezone" msgid="1362834506479536274">"సమయ మండలిని ఎంచుకోండి"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +405,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"పూర్తయింది"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"దీని కోసం మీ ముఖాన్ని ఉపయోగించండి"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"మీ పరికరాన్ని అన్లాక్ చేయండి"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"యాప్ సైన్-ఇన్ & చెల్లింపులు"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"అన్లాక్ కోసం మీ కళ్లు తెరిచి ఉండాలి"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"ముఖ ప్రామాణీకరణ ఉపయోగిస్తున్నప్పుడు, మీ కళ్లు తప్పక తెరిచి ఉండాలి"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"ముఖం డేటాను తీసివేయండి"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"మీ ముఖం డేటాను మెరుగుపరచండి"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"మీ పరికరాన్ని అన్లాక్ చేయడానికి మరియు యాప్లను యాక్సెస్ చేయడానికి మీ ముఖాన్ని ఉపయోగించవచ్చు. "<annotation id="url">"మరింత తెలుసుకోండి"</annotation></string>
@@ -2945,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"డిఫాల్ట్ యాప్లు"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"భాషలు, సమయం, బ్యాకప్, అప్డేట్లు"</string>
<string name="search_results_title" msgid="1796252422574886932">"సెట్టింగ్లు"</string>
- <string name="search_menu" msgid="6283419262313758339">"సెట్టింగ్లను వెతుకు"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, నెట్వర్క్ కనెక్షన్, ఇంటర్నెట్, వైర్లెస్, డేటా, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, టోగుల్, నియంత్రణ"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"వచన సందేశం, వచన సందేశాలు, సందేశాలు, సందేశం, డిఫాల్ట్"</string>
@@ -2990,7 +2994,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"చెల్లించడం, నొక్కడం, చెల్లింపులు"</string>
<string name="keywords_backup" msgid="470070289135403022">"బ్యాకప్, బ్యాకప్"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"సంజ్ఞ"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"ముఖం, అన్లాక్"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ముఖం, అన్లాక్, ప్రామాణీకరణ, సైన్ ఇన్"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl వెర్షన్, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"నెట్వర్క్, మొబైల్ నెట్వర్క్ స్థితి, సేవ స్థితి, సిగ్నల్ సామర్థ్యం, మొబైల్ నెట్వర్క్ రకం, రోమింగ్, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"క్రమ సంఖ్య, హార్డ్వేర్ వెర్షన్"</string>
@@ -3485,7 +3489,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"వ్యక్తిగతం"</string>
<string name="filter_work_apps" msgid="24519936790795574">"కార్యాలయం"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"అనువర్తనాలు: అన్నీ"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"యాప్లు: ఆఫ్ చేయబడినవి"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ఆఫ్ చేయబడింది"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"వర్గాలు: అత్యవసర ప్రాధాన్యత"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"వర్గాలు: తక్కువ ప్రాధాన్యత"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"వర్గాలు: ఆఫ్ చేయబడినవి"</string>
@@ -3959,11 +3963,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ఫోన్ను తరచి చూడటానికి పైకి ఎత్తండి"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"టాబ్లెట్ను తరచి చూడటానికి పైకి ఎత్తండి"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"పరికరాన్ని తరచి చూడటానికి పైకి ఎత్తండి"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"డిస్ప్లేను సక్రియపరచండి"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"సమయం, నోటిఫికేషన్లు మరియు ఇతర సమాచారాన్ని తనిఖీ చేయడం కోసం, మీ ఫోన్ని చేతిలోకి తీసుకోండి."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"సమయం, నోటిఫికేషన్లు మరియు ఇతర సమాచారాన్ని తనిఖీ చేయడం కోసం, మీ టాబ్లెట్ని చేతిలోకి తీసుకోండి."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"సమయం, నోటిఫికేషన్లు మరియు ఇతర సమాచారాన్ని తనిఖీ చేయడం కోసం, మీ పరికరాన్ని చేతిలోకి తీసుకోండి."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"చేరువ సంజ్ఞ"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"లాక్ స్క్రీన్ను సక్రియపరిచే సంజ్ఞ"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"నోటిఫికేషన్ల కోసం వేలిముద్రతో స్వైప్ చేయండి"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"వేలిముద్రతో స్వైప్ చేయి"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"మీ నోటిఫికేషన్లను తనిఖీ చేయడానికి, మీ ఫోన్ వెనుకవైపు ఉన్న వేలిముద్ర సెన్సార్పై క్రిందికి స్వైప్ చేయండి."</string>
@@ -4108,6 +4114,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"డ్యూటీ సైక్లింగ్ లేకుండా అన్ని GNSS నక్షత్రరాశులను మరియు ఫ్రీక్వెన్సీలను ట్రాక్ చేయండి"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"ఎల్లప్పుడూ క్రాష్ డైలాగ్ని చూపు"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"యాప్ క్రాష్ అయిన ప్రతిసారి డైలాగ్ని చూపు"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"కోణం ప్రారంభించబడిన యాప్ను ఎంచుకోండి"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"కోణం ప్రారంభించబడిన అప్లికేషన్ సెట్ ఏదీ లేదు"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"కోణం ప్రారంభించబడిన అప్లికేషన్: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"డైరెక్టరీ యాక్సెస్"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"డైరెక్టరీ యాక్సెస్"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4152,24 +4161,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"వర్చువల్ హై ఫ్రీక్వెన్సీ ప్యానెల్ను ప్రారంభించండి"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"అన్ని సెట్టింగ్లు"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"మీ సెట్టింగ్లు"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS డేటా"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS డేటా"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"నెట్వర్క్ను ఎంచుకోండి"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"డిస్కనెక్ట్ అయ్యింది"</string>
+ <string name="network_connected" msgid="4943925032253989621">"కనెక్ట్ అయింది"</string>
+ <string name="network_connecting" msgid="76404590784733557">"కనెక్ట్ అవుతోంది"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"కనెక్ట్ చేయడం సాధ్యపడలేదు"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"నెట్వర్క్లు కనుగొనబడలేదు."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"నెట్వర్క్లను కనుగొనడం సాధ్యపడలేదు. మళ్లీ ప్రయత్నించండి."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(నిషేధించబడింది)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM కార్డ్ లేదు"</string>
</resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index ae7546c..b1da482 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"อุปกรณ์ที่เคยเชื่อมต่อ"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"อุปกรณ์ที่เคยเชื่อมต่อ"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"เปิดบลูทูธแล้ว"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"ดูทั้งหมด"</string>
<string name="date_and_time" msgid="9062980487860757694">"วันที่และเวลา"</string>
<string name="choose_timezone" msgid="1362834506479536274">"เลือกเขตเวลา"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"เสร็จ"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"ใช้ใบหน้าของคุณเพื่อ"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"ปลดล็อกอุปกรณ์ของคุณ"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"ลงชื่อเข้าใช้แอปและชำระเงิน"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"ลืมตาเพื่อปลดล็อก"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"คุณต้องลืมตาเมื่อใช้การตรวจสอบสิทธิ์ด้วยใบหน้า"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"นำข้อมูลใบหน้าออก"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"ปรับปรุงข้อมูลใบหน้า"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"ใช้ใบหน้าของคุณเพื่อปลดล็อกอุปกรณ์และเข้าถึงแอปได้ "<annotation id="url">"ดูข้อมูลเพิ่มเติม"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"แอปเริ่มต้น"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"ภาษา เวลา การสำรองข้อมูล การอัปเดต"</string>
<string name="search_results_title" msgid="1796252422574886932">"การตั้งค่า"</string>
- <string name="search_menu" msgid="6283419262313758339">"ค้นหาการตั้งค่า"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, การเชื่อมต่อเครือข่าย, อินเทอร์เน็ต, ไร้สาย, ข้อมูล, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, สลับ, การควบคุม"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"รับส่งข้อความ, การส่งข้อความ, ข้อความ, การรับส่งข้อความ, ค่าเริ่มต้น"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ชำระเงิน แตะ การชำระเงิน"</string>
<string name="keywords_backup" msgid="470070289135403022">"ข้อมูลสำรอง, สำรองข้อมูล"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ท่าทางสัมผัส"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"การปลดล็อกด้วยใบหน้า"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ใบหน้า, ปลดล็อก, การตรวจสอบสิทธิ์, ลงชื่อเข้าใช้"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, เวอร์ชัน prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"เครือข่าย, สถานะเครือข่ายมือถือ, สถานะบริการ, ความแรงของสัญญาณ, ประเภทเครือข่ายมือถือ, โรมมิ่ง, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"หมายเลขซีเรียล, เวอร์ชันฮาร์ดแวร์"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ส่วนตัว"</string>
<string name="filter_work_apps" msgid="24519936790795574">"งาน"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"แอป: ทั้งหมด"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"แอป: ปิดแล้ว"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"ปิดอยู่"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"หมวดหมู่: ความสำคัญเร่งด่วน"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"หมวดหมู่: ความสำคัญต่ำ"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"หมวดหมู่: ปิดแล้ว"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"ยกขึ้นเพื่อดูโทรศัพท์"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"ยกขึ้นเพื่อตรวจสอบแท็บเล็ต"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"ยกขึ้นเพื่อตรวจสอบอุปกรณ์"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"ปลุกจอแสดงผล"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"หากต้องการดูเวลา การแจ้งเตือน และข้อมูลอื่นๆ ให้หยิบโทรศัพท์ขึ้นมา"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"หากต้องการดูเวลา การแจ้งเตือน และข้อมูลอื่นๆ ให้หยิบแท็บเล็ตขึ้นมา"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"หากต้องการดูเวลา การแจ้งเตือน และข้อมูลอื่นๆ ให้หยิบอุปกรณ์ขึ้นมา"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"ท่าทางสัมผัสในการเข้าถึง"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"ท่าทางสัมผัสปลุกหน้าจอล็อก"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"ใช้ลายนิ้วมือแสดงการแจ้งเตือน"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"เลื่อนนิ้วสแกนลายนิ้วมือ"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"ในการตรวจสอบการแจ้งเตือน ให้เลื่อนนิ้วลงผ่านเซ็นเซอร์ลายนิ้วมือที่ด้านหลังโทรศัพท์"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ติดตามระบบดาวเทียมและความถี่สัญญาณ GNSS ทั้งหมดโดยไม่มีการปิดพักเพื่อประหยัดพลังงาน"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"แสดงปัญหาที่ขัดข้องเสมอ"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"แสดงกล่องโต้ตอบทุกครั้งที่แอปขัดข้อง"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"เลือกแอปที่พร้อมใช้งาน ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ไม่ได้ตั้งค่าแอปพลิเคชันที่พร้อมใช้งาน ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"แอปพลิเคชันที่พร้อมใช้งาน ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"การเข้าถึงไดเรกทอรี"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"การเข้าถึงไดเรกทอรี"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"เปิดใช้แผงความถี่สูงเสมือน"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"การตั้งค่าทั้งหมด"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"การตั้งค่าของคุณ"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"ข้อมูล CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"ข้อมูล CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"เลือกเครือข่าย"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"เลิกเชื่อมต่อแล้ว"</string>
+ <string name="network_connected" msgid="4943925032253989621">"เชื่อมต่อแล้ว"</string>
+ <string name="network_connecting" msgid="76404590784733557">"เชื่อมต่อ…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"เชื่อมต่อไม่ได้"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"ไม่พบเครือข่าย"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"ไม่พบเครือข่าย โปรดลองอีกครั้ง"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ห้ามใช้)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"ไม่มีซิมการ์ด"</string>
</resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 12b41d7..d02636f 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Mga nakakonektang dating device"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Dating nakakonekta"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Naka-on ang Bluetooth"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Tingnan lahat"</string>
<string name="date_and_time" msgid="9062980487860757694">"Petsa at oras"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Pumili ng time zone"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Tapos na"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Gamitin ang mukha para"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"I-unlock ang device"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Pag-sign in/pagbabayad sa app"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Buksan ang mata para i-unlock"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Kapag ginamit ang pag-authenticate ng mukha, nakabukas dapat ang mata"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Alisin ang face data"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Pahusayin ang data ng mukha mo"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Maaaring gamitin ang iyong mukha para i-unlock ang iyong device at mag-access ng mga app. "<annotation id="url">"Matuto pa"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Mga default na app"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Mga wika, oras, backup, update"</string>
<string name="search_results_title" msgid="1796252422574886932">"Mga Setting"</string>
- <string name="search_menu" msgid="6283419262313758339">"Hanapin sa mga setting"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, koneksyon sa network, internet, wireless, data, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, i-toggle, pagkontrol"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"text message, pag-text, mga mensahe, pagmemensahe, default"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"magbayad, mag-tap, mga pagbabayad"</string>
<string name="keywords_backup" msgid="470070289135403022">"backup, i-back up"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"galaw"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"face, unlock"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"mukha, i-unlock, auth, mag-sign in"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, bersyon ng prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"network, status ng mobile network, status ng serbisyo, lakas ng signal, uri ng mobile network, naka-roaming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"serial number, bersyon ng hardware"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Personal"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Trabaho"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Mga App: Lahat"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Mga App: Naka-off"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Naka-off"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Mga Kategorya: Mahalagang-mahalaga"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Mga Kategorya: Hindi Mahalaga"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Mga Kategorya: Naka-off"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Hawakan para i-check ang phone"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Kunin upang suriin ang tablet"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Kunin upang suriin ang device"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"I-wake up ang display"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Para tingnan ang oras, mga notification, at iba pang impormasyon, kunin ang iyong telepono."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Para tingnan ang oras, mga notification, at iba pang impormasyon, kunin ang iyong tablet."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Para tingnan ang oras, mga notification, at iba pang impormasyon, kunin ang iyong device."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Galaw ng pag-abot"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Galaw para sa wake lock screen"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"I-swipe ang fingerprint para sa mga notification"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"I-swipe ang fingerprint"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Para makita ang iyong mga notification, mag-swipe pababa sa sensor para sa fingerprint sa likod ng telepono mo."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Sinusubaybayan ang lahat ng constellation at dalas ng GNSS nang walang duty cycling"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Palaging ipakita ang dialog ng pag-crash"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Magpakita ng dialog sa tuwing magka-crash ang isang app"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Pumili ng app na may naka-enable na ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Walang nakatakdang application na may naka-enable na ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Application na may naka-enable na ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Access sa direktoryo"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"access sa direktoryo"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"I-enable ang High Frequency na Virtual Panel"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Lahat ng Setting"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Ang Iyong Mga Setting"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Data ng CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Data ng CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Pumili ng network"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Nadiskonekta"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Nakakonekta"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Kumokonekta…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Hindi makakonekta"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Walang nakitang network."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Hindi makahanap ng mga network. Subukang muli."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ipinagbabawal)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Walang SIM card"</string>
</resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index cb0143f..3963c27 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Daha önce bağlanılmış cihazlar"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Daha önce bağlanılmış cihazlar"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth açık"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Tümünü göster"</string>
<string name="date_and_time" msgid="9062980487860757694">"Tarih ve saat"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Saat dilimini seçin"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Bitti"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Yüzünüzle şunları yapın:"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Cihazınızın kilidini açın"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Uygulamada oturum açma ve ödemeler"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Kilidi açmak için gözler açık"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Yüzle kimlik doğrulamayı kullanırken gözleriniz açık olmalıdır"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Yüz verisini kaldır"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Yüz verinizi iyileştirin"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Yüzünüzü kullanarak cihazınızın kilidini açabilir ve uygulamalara erişebilirsiniz. "<annotation id="url">"Daha fazla bilgi"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Varsayılan uygulamalar"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Diller, saat, yedek, güncellemeler"</string>
<string name="search_results_title" msgid="1796252422574886932">"Ayarlar"</string>
- <string name="search_menu" msgid="6283419262313758339">"Ayarlarda arayın"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"kablosuz, ağ bağlantısı, internet, kablosuz bağlantı, veri"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"kablosuz, kablosuz ağ, aç/kapat, kontrol"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"kısa mesaj, kısa mesaj gönderme, mesajlar, mesajlaşma, varsayılan"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ödeme, dokunma, ödemeler"</string>
<string name="keywords_backup" msgid="470070289135403022">"yedek, yedekleme"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"hareket"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"yüz, kilit açma"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"yüz, kilidi açma, kimlik doğrulama, oturum açma"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl sürümü, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"ağ, mobil ağ durumu, hizmet durumu, sinyal gücü, mobil ağ türü, dolaşım, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"seri numarası, donanım sürümü"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Kişisel uygulamalar"</string>
<string name="filter_work_apps" msgid="24519936790795574">"İş uygulamaları"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Uygulamalar: Tümü"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Uygulamalar: Kapalı"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Kapatılanlar"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Kategoriler: Önem düzeyi acil"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Kategoriler: Önem düzeyi düşük"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Kategoriler: Kapalı"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Bakmak için telefonu kaldır"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Tableti kontrol etmek için kaldırın"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Cihazı kontrol etmek için kaldırın"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Ekranı uyandır"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Saati, bildirimleri ve diğer bilgileri kontrol etmek için telefonunuzu elinize alın."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Saati, bildirimleri ve diğer bilgileri kontrol etmek için tabletinizi elinize alın."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Saati, bildirimleri ve diğer bilgileri kontrol etmek için cihazınızı elinize alın."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Erişim hareketi"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Uyanık kalma kilidi ekran hareketi"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Bildirimler için parmak izini kaydırın"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Parmak izini kaydırın"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Bildirimlerinizi kontrol etmek için telefonunuzun arkasındaki parmak izi sensöründe parmağınızı hızlıca aşağı kaydırın."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"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="8889957119867262599">"Kilitlenme iletişim kutusunu her zaman göster"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Her uygulama kilitlendiğinde iletişim kutusunu göster"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE özellikli uygulamayı seçin"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE özellikli uygulama ayarlanmadı"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE özellikli uygulama: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Dizin erişimi"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"dizin erişimi"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Sanal Yüksek Frekans Panelini Etkinleştir"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tüm Ayarlar"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Ayarlarınız"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS Verileri"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS Verileri"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Ağ seç"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Bağlı değil"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Bağlı"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Bağlanıyor…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Bağlanılamadı"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Hiçbir ağ bulunamadı."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Ağ bulunamadı. Tekrar deneyin."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(yasak)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM kart yok"</string>
</resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 1b034ad..9e3d8a6 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -181,6 +181,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Підключені раніше пристрої"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Підключені раніше"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth увімкнено"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Показати всі"</string>
<string name="date_and_time" msgid="9062980487860757694">"Дата й час"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Вибрати часовий пояс"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -407,6 +408,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Готово"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"За допомогою обличчя"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Розблоковувати"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Вхід у додатки та платежі"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Розблоковувати, коли очі відкриті"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Використовуючи автентифікацію облич, відкрийте очі"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Видалити обличчя"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Оновити дані про обличчя"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Ви можете розблоковувати пристрій і відкривати додатки за допомогою даних про обличчя. "<annotation id="url">"Докладніше"</annotation></string>
@@ -3021,7 +3025,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Додатки за умовчанням"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Мови, час, резервне копіювання й оновлення"</string>
<string name="search_results_title" msgid="1796252422574886932">"Налаштування"</string>
- <string name="search_menu" msgid="6283419262313758339">"Пошук налаштувань"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, мережеве з’єднання, інтернет, бездротовий, дані, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, перемкнути, керувати"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"текстове повідомлення, обмін повідомленнями, повідомлення, надсилання повідомлень, за умовчанням"</string>
@@ -3066,7 +3069,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"оплатити, торкнутися, платежі"</string>
<string name="keywords_backup" msgid="470070289135403022">"резервна копія, резервне копіювання"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"жест"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"обличчя, розблоковувати"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"обличчя, розблокувати, автентифікація, увійти"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, версія prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"мережа, стан мобільної мережі, стан служби, потужність сигналу, тип мобільної мережі, роумінг, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"серійний номер, версія апаратного забезпечення"</string>
@@ -3587,7 +3590,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Особисті"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Робочі"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Додатки: усі"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Додатки: вимкнені"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Вимкнено"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Категорії: терміново"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Категорії: низький пріоритет"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Категорії: вимкнені"</string>
@@ -4089,11 +4092,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Підняти телефон, щоб перевірити сповіщення"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Підніміть планшет, щоб перевірити його"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Підніміть пристрій, щоб перевірити його"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Вивести дисплей із режиму сну"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Щоб перевірити час, сповіщення й іншу інформацію, підніміть телефон."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Щоб перевірити час, сповіщення й іншу інформацію, підніміть планшет."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Щоб перевірити час, сповіщення й іншу інформацію, підніміть пристрій."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Жест витягнутої руки"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Жест для виведення заблокованого екрана з режиму сну"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Використати відбиток, щоб переглянути сповіщення"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Сканувати відбиток"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Щоб переглянути сповіщення, проведіть пальцем униз по сканеру відбитків на задній панелі телефона."</string>
@@ -4252,6 +4257,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Відстежувати всі фотосхеми й частоти GNSS без застосування циклічного режиму"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Завжди показувати вікно збоїв"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Показувати вікно під час кожного збою додатка"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Виберіть додаток із підтримкою ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Немає встановлених додатків із підтримкою ANGLE"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Додаток із підтримкою ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Доступ до каталогу"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"доступ до каталогу"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4296,24 +4304,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Увімкнути віртуальну панель високих частот"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Усі налаштування"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Ваші налаштування"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Дані CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Дані CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Вибрати мережу"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Від’єднано"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Під’єднано"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Під’єднання…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Не вдалося під’єднати"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Мереж не знайдено"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Не вдалося знайти мережу. Повторіть спробу."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(заборонено)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Немає SIM-карти"</string>
</resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index a01ba8a..b796033 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"پہلے منسلک کردہ آلات"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"پہلے سے منسلک کردہ"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"بلوٹوتھ کو آن کر دیا گیا"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"سبھی دیکھیں"</string>
<string name="date_and_time" msgid="9062980487860757694">"تاریخ اور وقت"</string>
<string name="choose_timezone" msgid="1362834506479536274">"ٹائم زون منتخب کریں"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,12 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"ہو گیا"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"چہرے کے استعمال سے"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"اپنے آلہ کو غیر مقفل کریں"</string>
+ <!-- no translation found for security_settings_face_settings_use_face_for_apps (5751549943998662469) -->
+ <skip />
+ <!-- no translation found for security_settings_face_settings_require_attention (1638445716306615123) -->
+ <skip />
+ <!-- no translation found for security_settings_face_settings_require_attention_details (5749808567341263288) -->
+ <skip />
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"چہرے کا ڈیتا ہٹائیں"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"اپنے چہرے کا ڈیٹا بہتر بنائیں"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"آپ کے چہرے کے استعمال سے آپ آلہ غیر مقفل کیا جا سکتا ہے اور ایپس تک رسائی حاصل کی جا سکتی ہے۔ "<annotation id="url">"مزید جانیں"</annotation></string>
@@ -2943,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"ڈیفالٹ ایپس"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"زبانیں، وقت، بیک اپ، اپ ڈیٹس"</string>
<string name="search_results_title" msgid="1796252422574886932">"ترتیبات"</string>
- <string name="search_menu" msgid="6283419262313758339">"ترتیبات تلاش کریں"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi، wi-fi، نیٹ ورک کنکشن، انٹرنیٹ، وائر لیس، ڈیٹا، wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi ٹوگل، کنٹرول"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"ٹیکسٹ پیغام، ٹیکسٹنگ، پیغامات، پیغام رسانی، ڈیفالٹ"</string>
@@ -2988,7 +2994,8 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"ادائیگی کریں، تھپتھپائیں، ادائیگیاں"</string>
<string name="keywords_backup" msgid="470070289135403022">"بیک اپ، بیک اپ لیں"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"اشارہ"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"چہرے کے ذریعے غیر مقفل کرنا"</string>
+ <!-- no translation found for keywords_face_unlock (254144854349092754) -->
+ <skip />
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl ورژن، imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"نیٹ ورک، موبائل نیٹ ورک کی صورت حال، سروس کی صورت حال، سگنل کی قوت، موبائل نیٹ ورک کی قسم، رومنگ، iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"نمبر شمار، ہارڈ ویئر کا ورژن"</string>
@@ -3481,7 +3488,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"ذاتی"</string>
<string name="filter_work_apps" msgid="24519936790795574">"دفتری"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"ایپس: سبھی"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"ایپس: آف کردہ"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"آف ہیں"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"زمرے: فوری اہمیت"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"زمرے: کم اہمیت"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"زمرے: آف کردہ"</string>
@@ -3955,11 +3962,15 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"چیک کرنے کیلئے فون کو اٹھائیں"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"چیک کرنے کیلئے ٹیبلیٹ کو اٹھائیں"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"چیک کرنے کیلئے آلہ کو اٹھائیں"</string>
+ <!-- no translation found for ambient_display_wake_screen_title (4091523525326925790) -->
+ <skip />
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"وقت، اطلاعات، اور دیگر معلومات چیک کرنے کے لیے اپنا فون اٹھائیں۔"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"وقت، اطلاعات، اور دیگر معلومات چیک کرنے کے لیے اپنا ٹیبلیٹ اٹھائیں۔"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"وقت، اطلاعات، اور دیگر معلومات چیک کرنے کے لیے اپنا آلہ اٹھائیں۔"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"پہنچ کا اشارہ"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <!-- no translation found for ambient_display_wake_lock_screen_title (562547995385322349) -->
+ <skip />
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"اطلاعات کیلئے فنگر پرنٹ سوائپ"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"فنگر پرنٹ سوائپ کریں"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"اپنی اطلاعات چیک کرنے کیلئے اپنے فون کی پشت پر فنگر پرنٹ سینسر پر نیچے سوائپ کریں۔"</string>
@@ -4104,6 +4115,12 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"ڈیوٹی سائیکلنگ کے بغیر سبھی GNSS مجموعوں اور کثرتوں کو ٹریک کریں"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"ہمیشہ ناکامی کا ڈائیلاگ دکھائیں"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"جب بھی ایپ ناکام ہو تو ڈائیلاگ دکھائیں"</string>
+ <!-- no translation found for angle_enabled_app (1841862539745838255) -->
+ <skip />
+ <!-- no translation found for angle_enabled_app_not_set (864740024581634768) -->
+ <skip />
+ <!-- no translation found for angle_enabled_app_set (226015765615525056) -->
+ <skip />
<string name="directory_access" msgid="4722237210725864244">"ڈائرکٹری تک رسائی"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ڈائرکٹری تک رسائی"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4148,24 +4165,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"ورچوئل اعلی فریکوئنسی پینل فعال کریں"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"تمام ترتیبات"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"آپ کی ترتیبات"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS ڈیٹا"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS ڈیٹا"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"نیٹ ورک کا انتخاب کریں"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"غیر منسلک"</string>
+ <string name="network_connected" msgid="4943925032253989621">"منسلک"</string>
+ <string name="network_connecting" msgid="76404590784733557">"منسلک ہو رہا ہے…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"منسلک نہیں کیا جا سکا"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"کوئی نیٹ ورک نہیں ملا۔"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"نیٹ ورکس نہیں مل سکے۔ دوبارہ کوشش کریں۔"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(ممنوع)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"کوئی SIM کارڈ نہیں ہے"</string>
</resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 294d50a..38cf85f 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Avval ulangan qurilmalar"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Avval ulangan qurilmalar"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Bluetooth yoqildi"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Hammasi"</string>
<string name="date_and_time" msgid="9062980487860757694">"Sana va vaqt"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Vaqt zonasini tanlang"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Tayyor"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Yuz yordamida"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Qulfni ochish"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Ilovaga kirish va to‘lov"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Qulfdan chiqarish uchun ko‘zlarni ochish kerak"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Yuz tekshiruvi faqat ko‘zlar ochiqligida ishlaydi"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Yuzni olib tashlash"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Yuzga oid axborotni yangilang"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Qurilmani ochish va ilovalarga kirishda yuzingizdan foydalanishingiz mumkin. "<annotation id="url">"Batafsil"</annotation></string>
@@ -2961,7 +2965,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Birlamchi ilovalar"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Tillar, vaqt, zaxira, yangilanishlar"</string>
<string name="search_results_title" msgid="1796252422574886932">"Sozlamalar"</string>
- <string name="search_menu" msgid="6283419262313758339">"Sozlamalar ichidan qidirish"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"Wi-Fi, WiFi, tarmoq aloqasi, Internet, simsiz, mobil internet, Wi Fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"Wi-Fi, wi-fi, almashtirish, boshqarish"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"SMS, matnli xabar, xabar, SMS/MMS, birlamchi"</string>
@@ -3006,7 +3009,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"to‘lash, bosish, to‘lovlar"</string>
<string name="keywords_backup" msgid="470070289135403022">"zaxira, zaxira nusxa olish"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"imo-ishora"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"yuz, ochish"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"yuz, qulfdan chiqarish, tekshiruv, kirish"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, prl versiyasi, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"tarmoq, mobil tarmoq holati, xizmat holati, signal kuchi, mobil tarmoq turi, rouming, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"seriya raqami, apparat versiyasi"</string>
@@ -3499,7 +3502,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Shaxsiy"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Ishga oid"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Ilovalar: hammasi"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Ilovalar: o‘chiq"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Bildirishnoma kelmaydi"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Turkumlar: favqulodda muhim"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Turkumlar: unchalik muhim emas"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Tukrumlar: o‘chiq"</string>
@@ -3956,7 +3959,7 @@
<string name="gesture_preference_summary" product="default" msgid="8627850388011956901">"Telefonni boshqarish uchun tezkor imo-ishoralar"</string>
<string name="gesture_preference_summary" product="tablet" msgid="4717535378272065510">"Planshetni boshqarish uchun tezkor imo-ishoralar"</string>
<string name="gesture_preference_summary" product="device" msgid="4205941452664950852">"Qurilmani boshqarish uchun tezkor imo-ishoralar"</string>
- <string name="double_tap_power_for_camera_title" msgid="64716226816032800">"Kameraga o‘tish"</string>
+ <string name="double_tap_power_for_camera_title" msgid="64716226816032800">"Kamerani tezkor ochish"</string>
<string name="double_tap_power_for_camera_summary" msgid="242037150983277829">"Kamerani tezda ochish uchun quvvat tugmasini ikki marta bosing. Har qanday ekranda ishlaydi."</string>
<string name="double_tap_power_for_camera_suggestion_title" msgid="6500405261202883589">"Kamerani tezkor ochish"</string>
<string name="double_twist_for_camera_mode_title" msgid="4877834147983530479">"Kamerani almashtirish"</string>
@@ -3973,12 +3976,14 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Telefonni olib bildirishnomalarni tekshirish"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Tekshirish uchun planshetni yuqoriga ko‘taring"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Tekshirish uchun qurilmani yuqoriga ko‘taring"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Ekranni yoqish"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Vaqt, bildirishnoma va boshqa ma’lumotlarni tekshirish uchun telefonni qo‘lingizga oling."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Vaqt, bildirishnoma va boshqa ma’lumotlarni tekshirish uchun planshetni qo‘lingizga oling."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Vaqt, bildirishnoma va boshqa ma’lumotlarni tekshirish uchun qurilmani qo‘lingizga oling."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Ruxsat olish uchun ishora"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
- <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Barmoq izi skaneridan foydalanish"</string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Ekran qulfini ko‘rsatish"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
+ <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Bildirishnomalarni ochish uchun barmoq izi skaneridan foydalanish"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Barmoq izi skaneri"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Bildirishnomalarni tekshirish uchun telefon orqasidagi barmoq izi skaneri ustida pastga suring"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"Bildirishnomalarni tekshirish uchun planshet orqasidagi barmoq izi skaneri ustida pastga suring"</string>
@@ -4122,6 +4127,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Siklsiz barcha GNSS sxema va davriyliklarini kuzatish"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Buzilish oynasi doim ko‘rsatilsin"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Ilova ishdan chiqqanda har safar muloqot oynasi ko‘rsatilsin"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"ANGLE yoqilgan ilovani tanlang"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"ANGLE yoqilgan ilova tanlanmagan"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"ANGLE yoqilgan ilova: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Kataloglarga kirish"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"kataloglarga kirish"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4166,24 +4174,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Virtual yuqori chastota panelini yoqish"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Barcha sozlamalar"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Sozlamalaringiz"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS axboroti"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS axboroti"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Tarmoqni tanlash"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Ulanmagan"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Ulandi"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Ulanmoqda…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Ulanmadi"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Birorta ham tarmoq topilmadi."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Hech qanday tarmoq topilmadi. Qaytadan urining."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(taqiqlangan)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"SIM karta solinmagan"</string>
</resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 9b372e2..fc9198a 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Các thiết bị đã kết nối trước đây"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Đã kết nối trước đó"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"Đã bật Bluetooth"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Xem tất cả"</string>
<string name="date_and_time" msgid="9062980487860757694">"Ngày và giờ"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Chọn múi giờ"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Xong"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Sử dụng khuôn mặt để"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Mở khóa thiết bị"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Đăng nhập ứng dụng và thanh toán"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Hãy mở mắt để mở khóa"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Khi sử dụng tính năng xác thực khuôn mặt, bạn phải mở mắt"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Xóa dữ liệu khuôn mặt"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Cải thiện dữ liệu khuôn mặt"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Bạn có thể sử dụng khuôn mặt để mở khóa thiết bị của mình và truy cập vào các ứng dụng. "<annotation id="url">"Tìm hiểu thêm"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Ứng dụng mặc định"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Ngôn ngữ, thời gian, sao lưu, cập nhật"</string>
<string name="search_results_title" msgid="1796252422574886932">"Cài đặt"</string>
- <string name="search_menu" msgid="6283419262313758339">"Tìm kiếm cài đặt"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, kết nối mạng, internet, không dây, dữ liệu, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, bật/tắt, kiểm soát"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"tin nhắn văn bản, nhắn tin, tin nhắn, mặc định"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"thanh toán, nhấn, khoản thanh toán"</string>
<string name="keywords_backup" msgid="470070289135403022">"sao lưu"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"cử chỉ"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"khuôn mặt, mở khóa"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"khuôn mặt, mở khóa, xác thực, đăng nhập"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, phiên bản prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"mạng, trạng thái mạng di động, trạng thái dịch vụ, cường độ tín hiệu, loại mạng di động, chuyển vùng, iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"số sê-ri, phiên bản phần cứng"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Cá nhân"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Cơ quan"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Ứng dụng: Tất cả"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Ứng dụng: Bị tắt"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Đã tắt"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Danh mục: Tầm q.trọng khẩn cấp"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Danh mục: Tầm quan trọng thấp"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Danh mục: Bị tắt"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Nhấc để kiểm tra điện thoại"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Nhấc để kiểm tra máy tính bảng"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Nhấc để kiểm tra thiết bị"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Đánh thức màn hình"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Để xem thời gian, thông báo và thông tin khác, hãy nhấc điện thoại của bạn lên."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Để xem thời gian, thông báo và thông tin khác, hãy nhấc máy tính bảng của bạn lên."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Để xem thời gian, thông báo và thông tin khác, hãy nhấc thiết bị của bạn lên."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Cử chỉ tiếp cận"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Cử chỉ đánh thức màn hình khóa"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Vuốt cảm biến vân tay để xem thông báo"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Vuốt vân tay"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Để kiểm tra thông báo, hãy vuốt xuống trên cảm biến vân tay ở mặt sau điện thoại."</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"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="8889957119867262599">"Luôn hiển thị hộp thoại sự cố"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Hiển thị hộp thoại mỗi khi ứng dụng gặp sự cố"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Chọn ứng dụng hỗ trợ ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Chưa đặt ứng dụng hỗ trợ ANGLE nào"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Ứng dụng hỗ trợ ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Quyền truy cập vào thư mục"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"quyền truy cập vào thư mục"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Bật Bảng ảo tần suất làm mới cao"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Tất cả tùy chọn cài đặt"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Tùy chọn cài đặt của bạn"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Dữ liệu CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Dữ liệu CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Chọn mạng"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Đã ngắt kết nối"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Đã kết nối"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Đang kết nối…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Không thể kết nối"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Không tìm thấy mạng nào."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Không tìm thấy mạng. Hãy thử lại."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(cấm)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Không có thẻ SIM nào"</string>
</resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 0a5d339..51546df 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"之前连接的设备"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"之前连接的设备"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"已开启蓝牙"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"查看全部"</string>
<string name="date_and_time" msgid="9062980487860757694">"日期和时间"</string>
<string name="choose_timezone" msgid="1362834506479536274">"选择时区"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"完成"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"使用您的人脸:"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"为设备解锁"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"应用登录和付款"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"睁开眼睛即可解锁"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"使用面孔身份验证时,您必须睁开眼睛"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"移除人脸数据"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"改善您的人脸数据"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"您可以使用自己的人脸将设备解锁及访问应用。"<annotation id="url">"了解详情"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"默认应用"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"语言、时间、备份、更新"</string>
<string name="search_results_title" msgid="1796252422574886932">"设置"</string>
- <string name="search_menu" msgid="6283419262313758339">"在设置中搜索"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, WLAN, 网络连接, 互联网, 无线, 数据, WLAN 网络"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"WLAN, wlan, 切换, 控制"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"短信, 发短信, 消息, 发消息, 默认"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"支付、点按、付款"</string>
<string name="keywords_backup" msgid="470070289135403022">"备份内容, 备份"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"手势"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"人脸、解锁"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"人脸, 解锁, 身份验证, 登录"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"IMEI, MEID, MIN, PRL 版本, IMEI SV"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"网络, 移动网络状态, 服务状态, 信号强度, 移动网络类型, 漫游, ICCID"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"序列号, 硬件版本"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"个人应用"</string>
<string name="filter_work_apps" msgid="24519936790795574">"工作应用"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"应用:全部"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"已屏蔽的应用"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"已关闭"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"类别:重要性 - 紧急"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"类别:重要性 - 低"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"类别:已关闭"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"拿起手机即显示"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"拿起平板电脑即可查看"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"拿起设备即可查看"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"唤醒显示屏"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"拿起您的手机即可查看时间、通知和其他信息。"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"拿起您的平板电脑即可查看时间、通知和其他信息。"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"拿起您的设备即可查看时间、通知和其他信息。"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"接触手势"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"唤醒锁定屏幕手势"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"滑动指纹即可查看通知"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"滑动指纹"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"要查看通知,请在手机背面的指纹传感器上向下滑动手指。"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"在停用工作周期的情况下跟踪所有 GNSS 星座和频率"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"一律显示崩溃对话框"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"在每次应用崩溃时显示对话框"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"选择已启用 ANGLE 的应用"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"未设置已启用 ANGLE 的应用"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"已启用 ANGLE 的应用:<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"目录访问权限"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"目录访问权限"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g>(<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"启用虚拟高频面板"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"所有设置"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"您的设置"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS 数据"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS 数据"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"选择网络"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"已断开连接"</string>
+ <string name="network_connected" msgid="4943925032253989621">"已连接"</string>
+ <string name="network_connecting" msgid="76404590784733557">"正在连接…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"无法连接"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"未找到网络。"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"找不到网络,请重试。"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(禁止)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"没有 SIM 卡"</string>
</resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 77756c1..2841efd 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"之前已連接的裝置"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"之前已連接的裝置"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"已開啟藍牙"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"查看全部"</string>
<string name="date_and_time" msgid="9062980487860757694">"日期和時間"</string>
<string name="choose_timezone" msgid="1362834506479536274">"選擇時區"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"完成"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"使用臉容完成以下操作"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"解鎖裝置"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"應用程式登入與付款"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"張開眼睛以解鎖"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"使用臉容驗證時必須張開眼睛"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"移除臉容資料"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"改善您的臉容資料"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"您的臉容可以用來解鎖裝置和存取應用程式。"<annotation id="url">"瞭解詳情"</annotation></string>
@@ -2946,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"預設應用程式"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"語言、時間、備份、更新"</string>
<string name="search_results_title" msgid="1796252422574886932">"設定"</string>
- <string name="search_menu" msgid="6283419262313758339">"搜尋設定"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"Wifi, Wi-Fi, 網絡連線, 互聯網, 無線, 數據, Wifi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"WiFi, Wi-Fi, 切換, 控制"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"短訊, 發短訊, 訊息, 傳送訊息, 預設"</string>
@@ -2991,7 +2994,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"支付, 輕按, 付款"</string>
<string name="keywords_backup" msgid="470070289135403022">"備份內容, 備份"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"手勢"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"臉容, 解鎖"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"臉容, 解鎖, 驗證, 登入"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"MEI, MEID, MIN, PRL 版本, IMEI SV"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"網絡, 流動網絡狀態, 服務狀態, 訊號強度, 流動網絡類型, 漫遊, ICCID"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"序號, 硬件版本"</string>
@@ -3484,7 +3487,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"個人"</string>
<string name="filter_work_apps" msgid="24519936790795574">"工作"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"應用程式:全部"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"應用程式:已關閉"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"已關閉"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"類別:緊急重要性"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"類別:低重要性"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"類別:已關閉"</string>
@@ -3958,11 +3961,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"拿起手機後顯示的資料"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"提起即可查看平板電腦"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"提起即可查看裝置"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"喚醒顯示屏"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"拿起您的手機即可查看時間、通知和其他資訊。"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"拿起您的平板電腦即可查看時間、通知和其他資訊。"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"拿起您的裝置即可查看時間、通知和其他資訊。"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"接觸手勢"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"喚醒上鎖畫面手勢"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"在指紋感應器滑動以查看通知"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"滑動指紋"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"在手機背面的指紋感應器向下滑動,即可查看通知。"</string>
@@ -4107,6 +4112,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"一律顯示當機對話框"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"在每次應用程式當機時顯示對話框"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"選取支援 ANGLE 的應用程式"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"尚未設定支援 ANGLE 的應用程式"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"支援 ANGLE 的應用程式:<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"目錄存取權"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"目錄存取權"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4151,24 +4159,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"啟用虛擬高頻率面板"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"所有設定"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"您的設定"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS 數據"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS 數據"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"選擇網絡"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"連接已中斷"</string>
+ <string name="network_connected" msgid="4943925032253989621">"已連接"</string>
+ <string name="network_connecting" msgid="76404590784733557">"連接中…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"無法連接"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"找不到網絡。"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"找不到網絡,請再試一次。"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(禁止)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"沒有 SIM 卡"</string>
</resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 7e51076..1de5ff7 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"先前連線的裝置"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"先前連線的裝置"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"已開啟藍牙"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"查看全部"</string>
<string name="date_and_time" msgid="9062980487860757694">"日期和時間"</string>
<string name="choose_timezone" msgid="1362834506479536274">"選擇時區"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"完成"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"使用你的臉孔:"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"將裝置解鎖"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"登入應用程式及付款"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"睜開眼睛即可解鎖"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"使用臉孔驗證時必須睜開眼睛"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"移除臉孔資料"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"改善臉孔資料"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"你可以使用自己的臉孔將裝置解鎖及存取應用程式。"<annotation id="url">"瞭解詳情"</annotation></string>
@@ -2945,7 +2949,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"預設應用程式"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"語言、時間、備份、更新"</string>
<string name="search_results_title" msgid="1796252422574886932">"設定"</string>
- <string name="search_menu" msgid="6283419262313758339">"搜尋設定"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"wifi, wi-fi, 網路連線, 網際網路, 無線, 數據, wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"wifi, wi-fi, 切換, 控制"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"簡訊, 發送簡訊, 訊息, 傳送訊息, 預設"</string>
@@ -2990,7 +2993,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"支付、輕觸、付款"</string>
<string name="keywords_backup" msgid="470070289135403022">"備份內容, 備份"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"手勢"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"人臉, 解鎖"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"臉孔, 解鎖, 驗證, 登入"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"IMEI、MEID、MIN、PRL 版本、IMEI SV"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"網路、行動網路狀態、服務狀態、訊號強度、行動網路類型、漫遊、ICCID"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"序號、硬體版本"</string>
@@ -3483,7 +3486,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"個人"</string>
<string name="filter_work_apps" msgid="24519936790795574">"工作"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"應用程式:全部"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"應用程式:已關閉"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"已關閉"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"類別:緊急重要性"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"類別:低重要性"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"類別:已關閉"</string>
@@ -3957,11 +3960,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"拿起手機即可查看"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"拿起平板電腦即可查看"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"拿起裝置即可查看"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"喚醒螢幕"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"拿起手機即可查看時間、通知和其他資訊。"</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"拿起平板電腦即可查看時間、通知和其他資訊。"</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"拿起裝置即可查看時間、通知和其他資訊。"</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"接觸手勢"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"喚醒鎖定畫面手勢"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"滑動感應指紋以查看通知"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"滑動手指"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"將手指放在手機背面的指紋感應器上並向下滑動,即可查看通知。"</string>
@@ -4106,6 +4111,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"在停用工作週期的情況下追蹤所有 GNSS 星座圖和頻率"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"一律顯示當機對話方塊"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"在每次應用程式當機時顯示對話方塊"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"選取已啟用 ANGLE 的應用程式"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"未設定已啟用 ANGLE 的應用程式"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"已啟用 ANGLE 的應用程式:<xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"目錄存取權"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"目錄存取權"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4150,24 +4158,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"啟用虛擬高頻率面板"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"所有設定"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"你的設定"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"CBRS 資料"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"CBRS 資料"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"選擇網路"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"連線中斷"</string>
+ <string name="network_connected" msgid="4943925032253989621">"已連線"</string>
+ <string name="network_connecting" msgid="76404590784733557">"連線中…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"無法連線"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"找不到網路。"</string>
+ <string name="network_query_error" msgid="7487714485362598410">"找不到網路,請再試一次。"</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(已禁止)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"沒有 SIM 卡"</string>
</resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 1431b95..e44d118 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -179,6 +179,7 @@
<string name="connected_device_previously_connected_title" msgid="491765792822244604">"Amadivayisi axhunywe ngaphambilini"</string>
<string name="connected_device_previously_connected_screen_title" msgid="6196066429488377795">"Kuxhunywe ngaphambilini"</string>
<string name="connected_device_bluetooth_turned_on_toast" msgid="5683648191381637533">"I-Bluetooth ivuliwe"</string>
+ <string name="previous_connected_see_all" msgid="3626779872898778415">"Buka konke"</string>
<string name="date_and_time" msgid="9062980487860757694">"Idethi nesikhathi"</string>
<string name="choose_timezone" msgid="1362834506479536274">"Khetha isikhathi sendawo"</string>
<!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -403,6 +404,9 @@
<string name="security_settings_face_enroll_done" msgid="6670735678797960484">"Kwenziwe"</string>
<string name="security_settings_face_settings_use_face_category" msgid="8444494667872034497">"Sebenzisa ubuso bakho"</string>
<string name="security_settings_face_settings_use_face_unlock_phone" msgid="8720574411679475571">"Vula idivayisi yakho"</string>
+ <string name="security_settings_face_settings_use_face_for_apps" msgid="5751549943998662469">"Ukungena ngemvume kohlelo lokusebenza nezinkokhelo"</string>
+ <string name="security_settings_face_settings_require_attention" msgid="1638445716306615123">"Amehlo avuliwe ukuze kuvulwe"</string>
+ <string name="security_settings_face_settings_require_attention_details" msgid="5749808567341263288">"Uma usebenzisa ukufakazela ubuqiniso bobuso, amehlo akho kumele avulwe"</string>
<string name="security_settings_face_settings_remove_face_data" msgid="3477772641643318370">"Susa idatha yobuso"</string>
<string name="security_settings_face_settings_improve_face" msgid="1771390557275699911">"Thuthukisa idatha yobuso bakho"</string>
<string name="security_settings_face_settings_footer" msgid="8056977398747222768">"Ubuso bakho bungasetshenziswa ukuvula idivayisi yakho nokufinyelela izinhlelo zokusebenza. "<annotation id="url">"Funda kabanzi"</annotation></string>
@@ -2946,7 +2950,6 @@
<string name="app_default_dashboard_title" msgid="7342549305933047317">"Izinhlelo zokusebenza ezizenzakalelayo"</string>
<string name="system_dashboard_summary" msgid="5797743225249766685">"Izilimi, isikhathi, isipele, izibuyekezo"</string>
<string name="search_results_title" msgid="1796252422574886932">"Izilungiselelo"</string>
- <string name="search_menu" msgid="6283419262313758339">"Sesha izilungiselelo"</string>
<string name="keywords_wifi" msgid="3646884600964177062">"i-wifi, i-wi-fi, uxhumo lwenethiwekhi, i-inthanethi, i-wireless, idatha, i-wi fi"</string>
<string name="keywords_change_wifi_state" msgid="627068244033681010">"I-wifi, i-wi-fi, guqula, lawula"</string>
<string name="keywords_more_default_sms_app" msgid="8597706109432491909">"umlayezo wombhalo, umbhalo, imilayezo, umlayezo, okuzenzakalelayo"</string>
@@ -2991,7 +2994,7 @@
<string name="keywords_payment_settings" msgid="5220104934130446416">"khokha, thepha, i-payments"</string>
<string name="keywords_backup" msgid="470070289135403022">"isipele, yenza isipele"</string>
<string name="keywords_assist_gesture_launch" msgid="813968759791342591">"ukuthinta"</string>
- <string name="keywords_face_unlock" msgid="5753804962088424662">"face, unlock"</string>
+ <string name="keywords_face_unlock" msgid="254144854349092754">"ubuso, ukuvulwa, i-auth, ukungena ngemvume"</string>
<string name="keywords_imei_info" msgid="7230982940217544527">"imei, meid, min, inguqulo ye-prl, imei sv"</string>
<string name="keywords_sim_status" msgid="1474422416860990564">"inethiwekhi, isimo senethiwekhi yeselula, isimo sesevisi, amandla esignali, uhlobo lwenethiwekhi yeselula, ukuzula, i-iccid"</string>
<string name="keywords_model_and_hardware" msgid="1459248377212829642">"inombolo yomkhiqizo, inguqulo yehadiwe"</string>
@@ -3484,7 +3487,7 @@
<string name="filter_personal_apps" msgid="3277727374174355971">"Okomuntu siqu"</string>
<string name="filter_work_apps" msgid="24519936790795574">"Umsebenzi"</string>
<string name="filter_notif_all_apps" msgid="2299049859443680242">"Izinhlelo zokusebenza: Konke"</string>
- <string name="filter_notif_blocked_apps" msgid="3300375727887991342">"Izinhlelo zokusebenza: Kuvaliwe"</string>
+ <string name="filter_notif_blocked_apps" msgid="3383043508771300704">"Vala"</string>
<string name="filter_notif_urgent_channels" msgid="3972473613117159653">"Izigaba: Ukubaluleka okusheshayo"</string>
<string name="filter_notif_low_channels" msgid="4128487387390004604">"Izigaba: Ukubaluleka okuphansi"</string>
<string name="filter_notif_blocked_channels" msgid="5880190882221644289">"Izigaba: Kuvaliwe"</string>
@@ -3958,11 +3961,13 @@
<string name="ambient_display_pickup_title" product="default" msgid="818688002837687268">"Phakamisa ukuze uhlole ifoni"</string>
<string name="ambient_display_pickup_title" product="tablet" msgid="4455864282995698097">"Phakamisa ukuze uhlole ithebulethi"</string>
<string name="ambient_display_pickup_title" product="device" msgid="5380534405773531175">"Phakamisa ukuze uhlole idivayisi"</string>
+ <string name="ambient_display_wake_screen_title" msgid="4091523525326925790">"Vusa isiboniso"</string>
+ <string name="ambient_display_wake_screen_summary" msgid="7046476455581790544"></string>
<string name="ambient_display_pickup_summary" product="default" msgid="3436302177038243869">"Ukuze uhlole isikhathi, izaziso, nolunye ulwazi, bamba ifoni yakho."</string>
<string name="ambient_display_pickup_summary" product="tablet" msgid="4938504160398665156">"Ukuze uhlole isikhathi, izaziso, nolunye ulwazi, bamba ithebhulethi yakho."</string>
<string name="ambient_display_pickup_summary" product="device" msgid="4264958533375250254">"Ukuze uhlole isikhathi, izaziso, nolunye ulwazi, bamba idivayisi yakho."</string>
- <string name="ambient_display_reach_title" msgid="6519700935117799437">"Finyelela ukuthinta"</string>
- <string name="ambient_display_reach_summary" product="default" msgid="1220765153509895824"></string>
+ <string name="ambient_display_wake_lock_screen_title" msgid="562547995385322349">"Vusa ukuthinta kokukhiya isikrini"</string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default" msgid="7758512805102207920"></string>
<string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Swayipha izigxivizo zeminwe ukuze uthole izaziso"</string>
<string name="fingerprint_gesture_screen_title" msgid="8562169633234041196">"Swayipha izigxivizo zeminwe"</string>
<string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Ukuze uhlole izaziso zakho, swayiphela phansi kunzwa yezigxivizo zeminwe ngemuva kwefoni yakho."</string>
@@ -4107,6 +4112,9 @@
<string name="enable_gnss_raw_meas_full_tracking_summary" msgid="496344699046454200">"Landelela onke ama-constellation nezimvamisa ngomjikelezo ongenawo umsebenzi"</string>
<string name="show_first_crash_dialog" msgid="8889957119867262599">"Njalo bonisa ibhokisi lokusaphazeka"</string>
<string name="show_first_crash_dialog_summary" msgid="703224456285060428">"Bonisa ibhokisi njalo izinhlelo zokusebenza zisaphazeka"</string>
+ <string name="angle_enabled_app" msgid="1841862539745838255">"Khetha uhlelo lokusebenza olunikwe amandla lwe-ANGLE"</string>
+ <string name="angle_enabled_app_not_set" msgid="864740024581634768">"Alukho uhlelo lokusebenza olunikwe amandla lwe-ANGLE olusethiwe"</string>
+ <string name="angle_enabled_app_set" msgid="226015765615525056">"Uhlelo lokusebenza olunikwe amandla lwe-ANGLE: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
<string name="directory_access" msgid="4722237210725864244">"Ukufinyelela kuhla lwemibhalo"</string>
<string name="keywords_directory_access" msgid="360557532842445280">"ukufinyelela kuhla lwemibhalo"</string>
<string name="directory_on_volume" msgid="1246959267814974387">"<xliff:g id="VOLUME">%1$s</xliff:g> (<xliff:g id="DIRECTORY">%2$s</xliff:g>)"</string>
@@ -4151,24 +4159,15 @@
<string name="high_frequency_display_device_summary" msgid="1476189143535389304">"Nika amandla iphaneli ebonakalayo yemvamisa ephezulu"</string>
<string name="homepage_all_settings" msgid="1245540304900512919">"Zonke izilungiselelo"</string>
<string name="homepage_personal_settings" msgid="3998213046366125494">"Izilungiselelo zakho"</string>
- <!-- no translation found for cbrs_data_switch (2438108549734702331) -->
- <skip />
- <!-- no translation found for cbrs_data_switch_summary (1359701543634843588) -->
- <skip />
- <!-- no translation found for choose_network_title (5702586742615861037) -->
- <skip />
- <!-- no translation found for network_disconnected (2933191767567503504) -->
- <skip />
- <!-- no translation found for network_connected (4943925032253989621) -->
- <skip />
- <!-- no translation found for network_connecting (76404590784733557) -->
- <skip />
- <!-- no translation found for network_could_not_connect (1113813392274155369) -->
- <skip />
- <!-- no translation found for empty_networks_list (2578752112731781190) -->
- <skip />
- <!-- no translation found for network_query_error (7487714485362598410) -->
- <skip />
- <!-- no translation found for forbidden_network (4626592887509826545) -->
- <skip />
+ <string name="cbrs_data_switch" msgid="2438108549734702331">"Idatha ye-CBRS"</string>
+ <string name="cbrs_data_switch_summary" msgid="1359701543634843588">"Idatha ye-CBRS"</string>
+ <string name="choose_network_title" msgid="5702586742615861037">"Khetha inethiwekhi"</string>
+ <string name="network_disconnected" msgid="2933191767567503504">"Inqamukile"</string>
+ <string name="network_connected" msgid="4943925032253989621">"Ixhunyiwe"</string>
+ <string name="network_connecting" msgid="76404590784733557">"Iyaxhuma…"</string>
+ <string name="network_could_not_connect" msgid="1113813392274155369">"Ayikwazanga ukuxhumeka"</string>
+ <string name="empty_networks_list" msgid="2578752112731781190">"Awekho amanethiwekhi atholakele."</string>
+ <string name="network_query_error" msgid="7487714485362598410">"Ayikwazanga ukuthola amanethiwekhi. Zama futhi."</string>
+ <string name="forbidden_network" msgid="4626592887509826545">"(kunqatshelwe)"</string>
+ <string name="no_sim_card" msgid="1360669528113557381">"Alikho ikhadi le-SIM."</string>
</resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index e57cbfa..6cc10fe 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1133,4 +1133,186 @@
<item>4</item> <!-- AutofillManager.FLAG_ADD_CLIENT_VERBOSE -->
</string-array>
+ <string-array name="enabled_networks_choices" translatable="false">
+ <item>@string/network_lte</item>
+ <item>@string/network_3G</item>
+ <item>@string/network_2G</item>
+ </string-array>
+ <string-array name="enabled_networks_4g_choices" translatable="false">
+ <item>@string/network_4G</item>
+ <item>@string/network_3G</item>
+ <item>@string/network_2G</item>
+ </string-array>
+ <string-array name="enabled_networks_values" translatable="false">
+ <item>"9"</item>
+ <item>"0"</item>
+ <item>"1"</item>
+ </string-array>
+
+ <string-array name="cdma_system_select_choices">
+ <!-- System select dialog screen, setting option name -->
+ <item>Home only</item>
+ <!-- Remove the following option "Affiliated Networks" from the option list -->
+ <!-- <item>Affiliated Networks</item> -->
+ <!-- System select dialog screen, setting option name -->
+ <item>Automatic</item>
+ </string-array>
+ <string-array name="cdma_system_select_values" translatable="false">
+ <!-- Do not translate. -->
+ <item>"0"</item>
+ <!-- Remove the following value "1" which corresponds to "Affiliated Networks" above -->
+ <!-- <item>"1"</item> -->
+ <!-- Do not translate. -->
+ <item>"2"</item>
+ </string-array>
+
+ <!-- The preferred network modes in Mobile network settings -->
+ <string-array name="preferred_network_mode_choices">
+ <item>GSM/WCDMA preferred</item>
+ <item>GSM only</item>
+ <item>WCDMA only</item>
+ <item>GSM/WCDMA auto</item>
+ <item>CDMA/EvDo auto</item>
+ <item>CDMA w/o EvDo</item>
+ <item>EvDo only</item>
+ <item>CDMA/EvDo/GSM/WCDMA</item>
+ <item>CDMA + LTE/EvDo</item>
+ <item>GSM/WCDMA/LTE</item>
+ <item>Global</item>
+ <item>LTE</item>
+ <item>LTE / WCDMA</item>
+ <item>TDSCDMA only</item>
+ <item>TDSCDMA/WCDMA</item>
+ <item>LTE/TDSCDMA</item>
+ <item>TDSCDMA/GSM</item>
+ <item>LTE/TDSCDMA/GSM</item>
+ <item>TDSCDMA/GSM/WCDMA</item>
+ <item>LTE/TDSCDMA/WCDMA</item>
+ <item>LTE/TDSCDMA/GSM/WCDMA</item>
+ <item>TDSCDMA/CDMA/EVDO/GSM/WCDMA </item>
+ <item>LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA</item>
+ </string-array>
+ <!-- The preferred network modes RIL constants, in order of the modes above,
+ e.g. the choice "GSM/WCDMA preferred" has the corresponding value "0" -->
+ <string-array name="preferred_network_mode_values" translatable="false">
+ <item>"0"</item>
+ <item>"1"</item>
+ <item>"2"</item>
+ <item>"3"</item>
+ <item>"4"</item>
+ <item>"5"</item>
+ <item>"6"</item>
+ <item>"7"</item>
+ <item>"8"</item>
+ <item>"9"</item>
+ <item>"10"</item>
+ <item>"11"</item>
+ <item>"12"</item>
+ <item>"13"</item>
+ <item>"14"</item>
+ <item>"15"</item>
+ <item>"16"</item>
+ <item>"17"</item>
+ <item>"18"</item>
+ <item>"19"</item>
+ <item>"20"</item>
+ <item>"21"</item>
+ <item>"22"</item>
+ </string-array>
+
+ <!-- Choices for CDMA subscription-->
+ <string-array name="cdma_subscription_choices">
+ <item>RUIM/SIM</item>
+ <item>NV</item>
+ </string-array>
+ <!-- Values for CDMA subscription-->
+ <string-array name="cdma_subscription_values">
+ <item>"0"</item>
+ <item>"1"</item>
+ </string-array>
+
+ <string-array name="enabled_networks_except_gsm_choices" translatable="false">
+ <item>@string/network_lte</item>
+ <item>@string/network_3G</item>
+ </string-array>
+ <string-array name="enabled_networks_except_gsm_4g_choices" translatable="false">
+ <item>@string/network_4G</item>
+ <item>@string/network_3G</item>
+ </string-array>
+ <string-array name="enabled_networks_except_gsm_values" translatable="false">
+ <item>"9"</item>
+ <item>"0"</item>
+ </string-array>
+
+ <string-array name="enabled_networks_except_lte_choices" translatable="false">
+ <item>@string/network_3G</item>
+ <item>@string/network_2G</item>
+ </string-array>
+ <string-array name="enabled_networks_except_lte_values" translatable="false">
+ <item>"0"</item>
+ <item>"1"</item>
+ </string-array>
+
+ <string-array name="enabled_networks_except_gsm_lte_choices" translatable="false">
+ <item>@string/network_3G</item>
+ </string-array>
+ <string-array name="enabled_networks_except_gsm_lte_values" translatable="false">
+ <item>"0"</item>
+ </string-array>
+
+ <string-array name="enabled_networks_cdma_choices" translatable="false">
+ <item>@string/network_lte</item>
+ <item>@string/network_3G</item>
+ <item>@string/network_1x</item>
+ <item>@string/network_global</item>
+ </string-array>
+ <string-array name="enabled_networks_cdma_values" translatable="false">
+ <item>"8"</item>
+ <item>"4"</item>
+ <item>"5"</item>
+ <item>"10"</item>
+ </string-array>
+
+ <string-array name="enabled_networks_cdma_no_lte_choices" translatable="false">
+ <item>@string/network_3G</item>
+ <item>@string/network_1x</item>
+ </string-array>
+ <string-array name="enabled_networks_cdma_no_lte_values" translatable="false">
+ <item>"4"</item>
+ <item>"5"</item>
+ </string-array>
+
+ <string-array name="enabled_networks_cdma_only_lte_choices" translatable="false">
+ <item>@string/network_lte</item>
+ <item>@string/network_global</item>
+ </string-array>
+ <string-array name="enabled_networks_cdma_only_lte_values" translatable="false">
+ <item>"8"</item>
+ <item>"10"</item>
+ </string-array>
+
+ <string-array name="enabled_networks_tdscdma_choices" translatable="false">
+ <item>@string/network_lte</item>
+ <item>@string/network_3G</item>
+ <item>@string/network_2G</item>
+ </string-array>
+ <string-array name="enabled_networks_tdscdma_values" translatable="false">
+ <item>"22"</item>
+ <item>"18"</item>
+ <item>"1"</item>
+ </string-array>
+
+ <!--String arrays for World preferred netwrok modes -->
+ <string-array name="preferred_network_mode_choices_world_mode">
+ <item>Global</item>
+ <item>LTE / CDMA</item>
+ <item>LTE / GSM / UMTS</item>
+ </string-array>
+
+ <string-array name="preferred_network_mode_values_world_mode">
+ <item>"10"</item>
+ <item>"8"</item>
+ <item>"9"</item>
+ </string-array>
+
</resources>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index e729126..afff3ce 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -50,13 +50,6 @@
<attr name="android:textAppearance" />
</declare-styleable>
- <declare-styleable name="ChartNetworkSeriesView">
- <attr name="strokeColor" format="color" />
- <attr name="fillColor" format="color" />
- <attr name="fillColorSecondary" format="color" />
- <attr name="safeRegion" />
- </declare-styleable>
-
<attr name="apnPreferenceStyle" format="reference" />
<attr name="footerPreferenceStyle" format="reference" />
@@ -75,6 +68,8 @@
<attr name="controller" format="string" />
<!-- {@code true} when the controller declared represents a slice from {@link android.app.SettingsSliceContract} -->
<attr name="platform_slice" format="boolean" />
+ <!-- Whether or not dynamic summary text from PreferenceController is allowed when creating slice object, by default it's false. -->
+ <attr name="allowDynamicSummaryInSlice" format="boolean" />
</declare-styleable>
<!-- For DotsPageIndicator -->
diff --git a/res/values/config.xml b/res/values/config.xml
index b9a69f1..8e60505 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -136,4 +136,13 @@
<!-- Whether or not TopLevelSettings should force rounded icon for injected tiles -->
<bool name="config_force_rounded_icon_TopLevelSettings">true</bool>
+
+ <!-- TODO(b/115429501): move those 3 configs to framework-->
+ <!-- Show enabled lte option for lte device -->
+ <bool name="config_enabled_lte" translatable="false">false</bool>
+ <!-- Show enabled tdscdma option for device -->
+ <bool name="config_support_tdscdma" translatable="false">false</bool>
+ <!-- Show enabled tdscdma option for device when connect roaming network -->
+ <string-array name="config_support_tdscdma_roaming_on_networks"
+ translatable="false"></string-array>
</resources>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 4d16851..a11dd5f 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -301,7 +301,7 @@
<!-- Margin for the reset screens -->
<dimen name="reset_network_margin_start">72dp</dimen>
<dimen name="reset_network_margin_end">12dp</dimen>
- <dimen name="reset_master_clear_margin_start">72dp</dimen>
+ <dimen name="reset_master_clear_margin_start">32dp</dimen>
<dimen name="reset_master_clear_margin_end">12dp</dimen>
<!-- Padding for screen pinning -->
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7308de7..9843b80 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -384,15 +384,15 @@
<!-- Summary for bluetooth item in connection detail page. (phone)-->
<string name="bluetooth_pref_summary" product="default">Allow your phone to communicate with nearby Bluetooth devices</string>
- <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=40] -->
+ <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] -->
<string name="bluetooth_disable_a2dp_hw_offload">Disable Bluetooth A2DP hardware offload</string>
- <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=20] -->
+ <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] -->
<string name="bluetooth_disable_a2dp_hw_offload_dialog_title">Restart Device?</string>
- <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=60] -->
+ <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] -->
<string name="bluetooth_disable_a2dp_hw_offload_dialog_message">You need to restart your device to change this setting.</string>
- <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=10] -->
+ <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] -->
<string name="bluetooth_disable_a2dp_hw_offload_dialog_confirm">Restart</string>
- <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=10] -->
+ <!-- UI debug setting: Disable Bluetooth A2DP hardware offload [CHAR LIMIT=none] -->
<string name="bluetooth_disable_a2dp_hw_offload_dialog_cancel">Cancel</string>
<!-- Title for Bluetooth device group with media capability group [CHAR LIMIT=none]-->
@@ -414,6 +414,9 @@
<!-- Toast text for hint user bluetooth is turned on [CHAR LIMIT=none]-->
<string name="connected_device_bluetooth_turned_on_toast">Bluetooth turned on</string>
+ <!-- Title to see all the previous connected devices [CHAR LIMIT=50] -->
+ <string name="previous_connected_see_all">See all</string>
+
<!-- Date & time settings screen title -->
<string name="date_and_time">Date & time</string>
<!-- The title of the activity to pick a time zone. -->
@@ -893,6 +896,12 @@
<string name="security_settings_face_settings_use_face_category">Use your face to</string>
<!-- Text shown on a toggle which allows or disallows the device to use face for unlocking the device. [CHAR LIMIT=20] -->
<string name="security_settings_face_settings_use_face_unlock_phone">Unlock your device</string>
+ <!-- Text shown on a toggle which allows or disallows the device to use face authentication for apps. This will be presented to the user together with the context of security_settings_face_settings_use_face_category. [CHAR LIMIT=30] -->
+ <string name="security_settings_face_settings_use_face_for_apps">App sign-in \u0026 payments</string>
+ <!-- Text shown on a toggle which disables/enables face authentication, depending if the user's eyes are open. [CHAR LIMIT=30] -->
+ <string name="security_settings_face_settings_require_attention">Eyes open to unlock</string>
+ <!-- Text shown on the details of a toggle which disables/enables face authentication, depending if the user's eyes are open. [CHAR LIMIT=70] -->
+ <string name="security_settings_face_settings_require_attention_details">When using face authentication, your eyes must be open</string>
<!-- Button text in face settings which removes the user's faces from the device [CHAR LIMIT=20] -->
<string name="security_settings_face_settings_remove_face_data">Remove face data</string>
<!-- Text shown in face settings allowing the user to update/improve the enrolled face. This brings the user back to the enrollment flow. [CHAR LIMIT=30] -->
@@ -6897,8 +6906,6 @@
<!-- Search strings -->
<!-- Text to describe the search results fragment title [CHAR LIMIT=16] -->
<string name="search_results_title">Settings</string>
- <!-- Text used as a search hint into the search box -->
- <string name="search_menu">Search settings</string>
<!-- Search breadcrumb connector symbol -->
<string name="search_breadcrumb_connector" translatable="false">
<xliff:g name="first_item">%1$s</xliff:g> > <xliff:g name="second_item">%2$s</xliff:g>
@@ -6949,7 +6956,7 @@
<string name="keywords_payment_settings">pay, tap, payments</string>
<string name="keywords_backup">backup, back up</string>
<string name="keywords_assist_gesture_launch">gesture</string>
- <string name="keywords_face_unlock">face, unlock</string>
+ <string name="keywords_face_unlock">face, unlock, auth, sign in</string>
<string name="keywords_imei_info">imei, meid, min, prl version, imei sv</string>
<string name="keywords_sim_status">network, mobile network state, service state, signal strength, mobile network type, roaming, iccid</string>
<string name="keywords_model_and_hardware">serial number, hardware version</string>
@@ -6964,6 +6971,9 @@
<!-- Search keyword for Ambient display settings screen. -->
<string name="keywords_ambient_display_screen">Ambient display, Lock screen display</string>
+ <!-- Search keyword for lock screen notification setting [CHAR_LIMIT=NONE] -->
+ <string name="keywords_lock_screen_notif">lock screen notification</string>
+
<!-- Search keyword for face settings. -->
<string name="keywords_face_settings">face</string>
@@ -9572,6 +9582,11 @@
<!-- Preference and settings suggestion title text for ambient display pick up (device) [CHAR LIMIT=60]-->
<string name="ambient_display_pickup_title" product="device">Lift to check device</string>
+ <!-- Preference and settings suggestion title text for display wake-up gesture [CHAR LIMIT=60]-->
+ <string name="ambient_display_wake_screen_title">Wake up display</string>
+ <!-- Summary text for ambient display wake-up gesture [CHAR LIMIT=NONE]-->
+ <string name="ambient_display_wake_screen_summary"></string>
+
<!-- Summary text for ambient display (phone) [CHAR LIMIT=NONE]-->
<string name="ambient_display_pickup_summary" product="default">To check time, notifications, and other info, pick up your phone.</string>
<!-- Summary text for ambient display (tablet) [CHAR LIMIT=NONE]-->
@@ -9579,10 +9594,10 @@
<!-- Summary text for ambient display (device) [CHAR LIMIT=NONE]-->
<string name="ambient_display_pickup_summary" product="device">To check time, notifications, and other info, pick up your device.</string>
- <!-- Preference and settings suggestion title text for reach gesture [CHAR LIMIT=60]-->
- <string name="ambient_display_reach_title">Reach gesture</string>
+ <!-- Preference and settings suggestion title text for gesture that shows the lock screen [CHAR LIMIT=60]-->
+ <string name="ambient_display_wake_lock_screen_title">Wake lock screen gesture</string>
<!-- Summary text for ambient display [CHAR LIMIT=NONE]-->
- <string name="ambient_display_reach_summary" product="default"></string>
+ <string name="ambient_display_wake_lock_screen_summary" product="default"></string>
<!-- Title text for swiping downwards on fingerprint sensor for notifications [CHAR LIMIT=80]-->
<string name="fingerprint_swipe_for_notifications_title">Swipe fingerprint for notifications</string>
@@ -9935,6 +9950,13 @@
<!-- UI debug setting: preference summary - describes the behavior of showing a dialog every time an app crashes [CHAR LIMIT=NONE] -->
<string name="show_first_crash_dialog_summary">Show dialog every time an app crashes</string>
+ <!-- UI debug setting: select current app to use ANGLE [CHAR LIMIT=100] -->
+ <string name="angle_enabled_app">Select ANGLE enabled app</string>
+ <!-- UI debug setting: no ANGLE enabled app has been set [CHAR LIMIT=100] -->
+ <string name="angle_enabled_app_not_set">No ANGLE enabled application set</string>
+ <!-- UI debug setting: ANGLE enabled app has been set [CHAR LIMIT=NONE] -->
+ <string name="angle_enabled_app_set">ANGLE enabled application: <xliff:g id="app_name" example="com.company.app">%1$s</xliff:g></string>
+
<!-- Title for Directory Access settings -->
<string name="directory_access">Directory access</string>
<!-- Keywords for Directory Access settings -->
@@ -10093,4 +10115,146 @@
<!-- Message informs the user that has no SIM card in personalized Settings [CHAR LIMIT=30] -->
<string name="no_sim_card">No SIM card</string>
+
+ <!-- Carrier variant of Enhaced 4G LTE Mode title. [CHAR LIMIT=50] -->
+ <string name="enhanced_4g_lte_mode_title_variant">Advanced Calling</string>
+ <!-- The following strings are summaries for preferred network modes in Mobile network settings,
+ and have a character limit of 100 -->
+ <!-- WCDMA preferred [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_wcdma_perf_summary">Preferred network mode: WCDMA preferred</string>
+ <!-- GSM only [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_gsm_only_summary">Preferred network mode: GSM only</string>
+ <!-- WCDMA only [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_wcdma_only_summary">Preferred network mode: WCDMA only</string>
+ <!-- GSM / WCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_gsm_wcdma_summary">Preferred network mode: GSM / WCDMA</string>
+ <!-- CDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_cdma_summary">Preferred network mode: CDMA</string>
+ <!-- CDMA / EvDo [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_cdma_evdo_summary">Preferred network mode: CDMA / EvDo</string>
+ <!-- CDMA only [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_cdma_only_summary">Preferred network mode: CDMA only</string>
+ <!-- EvDo only [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_evdo_only_summary">Preferred network mode: EvDo only</string>
+ <!-- CDMA/EvDo/GSM/WCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_cdma_evdo_gsm_wcdma_summary">Preferred network mode: CDMA/EvDo/GSM/WCDMA</string>
+ <!-- LTE [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_summary">Preferred network mode: LTE </string>
+ <!-- GSM/WCDMA/LTE [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_gsm_wcdma_summary">Preferred network mode: GSM/WCDMA/LTE</string>
+ <!-- CDMA+LTE/EVDO [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_cdma_evdo_summary">Preferred network mode: CDMA+LTE/EVDO</string>
+ <!-- Global [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_global_summary">Preferred network mode: Global</string>
+ <!-- LTE / WCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_wcdma_summary">Preferred network mode: LTE / WCDMA</string>
+ <!-- LTE / GSM / UMTS [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_gsm_umts_summary">Preferred network mode: LTE / GSM / UMTS</string>
+ <!-- LTE / CDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_cdma_summary">Preferred network mode: LTE / CDMA</string>
+ <!-- TDSCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_tdscdma_summary">Preferred network mode: TDSCDMA</string>
+ <!-- TDSCDMA / WCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_tdscdma_wcdma_summary">Preferred network mode: TDSCDMA / WCDMA</string>
+ <!-- LTE / TDSCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_tdscdma_summary">Preferred network mode: LTE / TDSCDMA</string>
+ <!-- TDSCDMA / GSM [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_tdscdma_gsm_summary">Preferred network mode: TDSCDMA / GSM</string>
+ <!-- LTE/GSM/TDSCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_tdscdma_gsm_summary">Preferred network mode: LTE/GSM/TDSCDMA</string>
+ <!-- TDSCDMA/GSM/WCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_tdscdma_gsm_wcdma_summary">Preferred network mode: TDSCDMA/GSM/WCDMA</string>
+ <!-- LTE/TDSCDMA/WCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_tdscdma_wcdma_summary">Preferred network mode: LTE/TDSCDMA/WCDMA</string>
+ <!-- LTE/TDSCDMA/GSM/WCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_tdscdma_gsm_wcdma_summary">Preferred network mode: LTE/TDSCDMA/GSM/WCDMA</string>
+ <!-- TDSCDMA/CDMA/EvDo/GSM/WCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary">Preferred network mode: TDSCDMA/CDMA/EvDo/GSM/WCDMA</string>
+ <!-- LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary">Preferred network mode: LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA</string>
+
+ <!-- Text for Network lte [CHAR LIMIT=NONE] -->
+ <string name="network_lte">LTE (recommended)</string>
+ <!-- Text for Network 4g [CHAR LIMIT=NONE] -->
+ <string name="network_4G">4G (recommended)</string>
+ <!-- Text for Network 3g [CHAR LIMIT=NONE] -->
+ <string name="network_3G" translatable="false">3G</string>
+ <!-- Text for Network 2g [CHAR LIMIT=NONE] -->
+ <string name="network_2G" translatable="false">2G</string>
+ <!-- Text for Network 1x [CHAR LIMIT=NONE] -->
+ <string name="network_1x" translatable="false">1x</string>
+ <!-- Text for Network global [CHAR LIMIT=NONE] -->
+ <string name="network_global">Global</string>
+
+ <!-- Configuration setting for world mode Format is <true;GID if any to be checked> [CHAR LIMIT=NONE] -->
+ <string translatable="false" name="config_world_mode"/>
+
+ <!-- Available networks screen title/heading [CHAR LIMIT=NONE] -->
+ <string name="label_available">Available networks</string>
+ <!-- Mobile network settings screen, toast when searching for available networks [CHAR LIMIT=NONE] -->
+ <string name="load_networks_progress">Searching\u2026</string>
+ <!-- Available networks screen, toast when registering on a specific network [CHAR LIMIT=NONE] -->
+ <string name="register_on_network">Registering on <xliff:g id="network" example="Verizon">%s</xliff:g>\u2026</string>
+ <!-- Available networks screen, toast when SIM card isn't allowed on a network [CHAR LIMIT=NONE] -->
+ <string name="not_allowed">Your SIM card doesn\u2019t allow a connection to this network.</string>
+ <!-- Available networks screen, toast when unable to connect to a network temporarily [CHAR LIMIT=NONE] -->
+ <string name="connect_later">Can\u2019t connect to this network right now. Try again later.</string>
+ <!-- Available networks screen, toast when registered on a specific network [CHAR LIMIT=NONE] -->
+ <string name="registration_done">Registered on network.</string>
+
+ <!-- Available networks screen, name of switch button for whether to select network automatically [CHAR LIMIT=NONE] -->
+ <string name="select_automatically">Automatically select network</string>
+
+ <!-- A menu item in "Mobile network settings" that allows the user to update the phone
+ with mobile operator specific settings. [CHAR LIMIT=25] -->
+ <string name="carrier_settings_title">Carrier settings</string>
+ <!-- Preference title for launching an account manager page for prepaid LTE [CHAR LIMIT=30] -->
+ <string name="cdma_lte_data_service">Set up data service</string>
+ <!-- Mobile network settings screen, title of Mobile Data switch preference [CHAR LIMIT=NONE] -->
+ <string name="mobile_data_settings_title">Mobile data</string>
+ <!-- Mobile network settings screen, title of Mobile data switch preference [CHAR LIMIT=NONE] -->
+ <string name="mobile_data_settings_summary">Access data using mobile network</string>
+
+ <!-- Title for preferred network type [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_title">Preferred network type</string>
+ <!-- Summary for preferred network type [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_summary">Change the network operating mode</string>
+ <!-- Dialog title for preferred network type [CHAR LIMIT=NONE] -->
+ <string name="preferred_network_mode_dialogtitle">Preferred network type</string>
+ <!-- Mobile network settings screen, name of the option to manage carrier profiles on devices which support embedded carrier profiles [CHAR LIMIT=NONE] -->
+ <string name="carrier_settings_euicc">Carrier</string>
+
+ <!-- Mobile network settings screen, name for call settings category [CHAR LIMIT=NONE] -->
+ <string name="call_category">Calling</string>
+ <!-- Mobile network settings screen, title of Video calling setting [CHAR LIMIT=NONE] -->
+ <string name="video_calling_settings_title">Carrier video calling</string>
+
+ <!-- Mobile network settings screen, setting option name [CHAR LIMIT=NONE] -->
+ <string name="cdma_system_select_title">System select</string>
+ <!-- Mobile network settings screen, setting summary text [CHAR LIMIT=NONE] -->
+ <string name="cdma_system_select_summary">Change the CDMA roaming mode</string>
+ <!-- System select settings screen title [CHAR LIMIT=NONE] -->
+ <string name="cdma_system_select_dialogtitle">System select</string>
+
+ <!-- Mobile network settings screen, name for network operator category [CHAR LIMIT=NONE] -->
+ <string name="network_operator_category">Network</string>
+ <!-- Available networks screen, name of button when user wants to select network manually [CHAR LIMIT=NONE] -->
+ <string name="network_select_title">Network</string>
+
+ <!-- Title for CDMA subscription [CHAR LIMIT=50] -->
+ <string name="cdma_subscription_title">CDMA subscription</string>
+ <!-- Summary for CDMA subscription [CHAR LIMIT=NONE] -->
+ <string name="cdma_subscription_summary">Change between RUIM/SIM and NV</string>
+ <!-- Dialog title for CDMA subscription [CHAR LIMIT=30] -->
+ <string name="cdma_subscription_dialogtitle">subscription</string>
+
+ <!-- Title to register automatically [CHAR LIMIT=NONE] -->
+ <string name="register_automatically">Automatic registration\u2026</string>
+ <!-- Mobile network settings screen, dialog message title when user selects the Data roaming check box [CHAR LIMIT=120] -->
+ <string name="roaming_alert_title">Allow data roaming?</string>
+ <!-- Mobile network settings screen, message asking the user to check their pricing with their Carrier, when enabling Data roaming. [CHAR LIMIT=NONE] -->
+ <string name="roaming_check_price_warning">Check with your network provider for pricing.</string>
+
+ <!-- Available networks screen, summary when button disallowed due to permanent automatic mode [CHAR LIMIT=NONE] -->
+ <string name="manual_mode_disallowed_summary">Unavailable when connected to <xliff:g id="carrier" example="verizon">%1$s</xliff:g></string>
</resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 88ff2bb..b096cf8 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -458,9 +458,4 @@
<item name="android:paddingBottom">24dp</item>
</style>
- <style name="master_clear_item_label" parent="android:Widget.TextView">
- <item name="android:textDirection">locale</item>
- <item name="android:textSize">18sp</item>
- </style>
-
</resources>
diff --git a/res/xml/app_info_settings.xml b/res/xml/app_info_settings.xml
index 684d032..81afc1a 100644
--- a/res/xml/app_info_settings.xml
+++ b/res/xml/app_info_settings.xml
@@ -68,6 +68,12 @@
settings:controller="com.android.settings.applications.appinfo.AppDataUsagePreferenceController" />
<Preference
+ android:key="data_settings_v2"
+ android:title="@string/data_usage_app_summary_title"
+ android:summary="@string/summary_placeholder"
+ settings:controller="com.android.settings.applications.appinfo.AppDataUsagePreferenceControllerV2" />
+
+ <Preference
android:key="time_spent_in_app"
android:title="@string/time_spent_in_app_pref_title"
settings:controller="com.android.settings.applications.appinfo.TimeSpentInAppPreferenceController" />
diff --git a/res/xml/cdma_options.xml b/res/xml/cdma_options.xml
new file mode 100644
index 0000000..046d16f
--- /dev/null
+++ b/res/xml/cdma_options.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <com.android.settings.mobilenetwork.CdmaSystemSelectListPreference
+ android:key="cdma_system_select_key"
+ android:title="@string/cdma_system_select_title"
+ android:summary="@string/cdma_system_select_summary"
+ android:entries="@array/cdma_system_select_choices"
+ android:entryValues="@array/cdma_system_select_values"
+ android:dialogTitle="@string/cdma_system_select_dialogtitle" />
+
+ <com.android.settings.mobilenetwork.CdmaSubscriptionListPreference
+ android:key="cdma_subscription_key"
+ android:title="@string/cdma_subscription_title"
+ android:summary="@string/cdma_subscription_summary"
+ android:entries="@array/cdma_subscription_choices"
+ android:entryValues="@array/cdma_subscription_values"
+ android:dialogTitle="@string/cdma_subscription_dialogtitle" />
+
+ <!--We want separate APN setting from reset of settings because-->
+ <!--we want user to change it with caution.-->
+ <PreferenceCategory
+ android:key="category_cdma_apn_key">
+ <!-- The launching Intent will be defined thru code as we need to pass some Extra -->
+ <com.android.settingslib.RestrictedPreference
+ android:key="button_cdma_apn_key"
+ android:title="@string/apn_settings"
+ android:persistent="false"/>
+ </PreferenceCategory>
+
+ <Preference
+ android:key="carrier_settings_key"
+ android:title="@string/carrier_settings_title">
+ <!-- b/114749736, create a preference controller to build intent -->
+ </Preference>
+
+</PreferenceScreen>
diff --git a/res/xml/connected_devices.xml b/res/xml/connected_devices.xml
index 424ca75..29c9e01 100644
--- a/res/xml/connected_devices.xml
+++ b/res/xml/connected_devices.xml
@@ -41,18 +41,24 @@
settings:useAdminDisabledSummary="true"
settings:controller="com.android.settings.connecteddevice.AddDevicePreferenceController"/>
- <Preference
+ <PreferenceCategory
android:key="previously_connected_devices"
android:title="@string/connected_device_previously_connected_title"
- android:icon="@drawable/ic_devices_other_black"
- android:fragment="com.android.settings.connecteddevice.PreviouslyConnectedDeviceDashboardFragment"
- settings:allowDividerAbove="true"
- settings:controller="com.android.settings.connecteddevice.PreviouslyConnectedDevicePreferenceController"/>
+ settings:controller="com.android.settings.connecteddevice.PreviouslyConnectedDevicePreferenceController">
+
+ <Preference
+ android:key="previously_connected_devices_see_all"
+ android:title="@string/previous_connected_see_all"
+ android:icon="@drawable/ic_chevron_right_24dp"
+ android:order="10"
+ android:fragment="com.android.settings.connecteddevice.PreviouslyConnectedDeviceDashboardFragment"/>
+ </PreferenceCategory>
<Preference
android:key="connection_preferences"
android:title="@string/connected_device_connections_title"
android:fragment="com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment"
+ settings:allowDividerAbove="true"
settings:controller="com.android.settings.connecteddevice.AdvancedConnectedDeviceController"/>
</PreferenceScreen>
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 5b6d215..5a36463 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -424,6 +424,9 @@
android:summary="%s"
android:title="@string/simulate_color_space" />
+ <Preference android:key="angle_enabled_app"
+ android:title="@string/angle_enabled_app" />
+
</PreferenceCategory>
<PreferenceCategory
diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml
index aa99446..df86251 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -28,10 +28,16 @@
settings:controller="com.android.settings.gestures.AssistGestureSettingsPreferenceController" />
<Preference
- android:key="gesture_reach_summary"
- android:title="@string/ambient_display_reach_title"
- android:fragment="com.android.settings.gestures.ReachGestureSettings"
- settings:controller="com.android.settings.gestures.ReachGesturePreferenceController" />
+ android:key="gesture_wake_screen_input_summary"
+ android:title="@string/ambient_display_wake_screen_title"
+ android:fragment="com.android.settings.gestures.WakeScreenGestureSettings"
+ settings:controller="com.android.settings.gestures.WakeScreenGesturePreferenceController" />
+
+ <Preference
+ android:key="gesture_wake_lock_screen_summary"
+ android:title="@string/ambient_display_wake_lock_screen_title"
+ android:fragment="com.android.settings.gestures.WakeLockScreenGestureSettings"
+ settings:controller="com.android.settings.gestures.WakeLockScreenGesturePreferenceController" />
<Preference
android:key="gesture_swipe_down_fingerprint_input_summary"
diff --git a/res/xml/gsm_umts_options.xml b/res/xml/gsm_umts_options.xml
new file mode 100644
index 0000000..6ca9ad6
--- /dev/null
+++ b/res/xml/gsm_umts_options.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <com.android.settings.mobilenetwork.NetworkOperators
+ android:key="network_operators_category_key"
+ android:title="@string/network_operator_category"
+ android:persistent="false">
+
+ <SwitchPreference
+ android:key="button_auto_select_key"
+ android:title="@string/select_automatically"
+ android:persistent="false"/>
+
+ <com.android.settings.mobilenetwork.NetworkSelectListPreference
+ android:key="button_network_select_key"
+ android:title="@string/network_select_title"
+ android:persistent="false"/>
+
+ <Preference
+ android:key="button_choose_network_key"
+ android:title="@string/choose_network_title"
+ android:fragment="com.android.phone.NetworkSelectSetting" />
+ </com.android.settings.mobilenetwork.NetworkOperators>
+
+ <!--We want separate APN setting from reset of settings because-->
+ <!--we want user to change it with caution.-->
+ <PreferenceCategory
+ android:key="category_gsm_apn_key"
+ android:layout="@layout/preference_category_no_label">
+
+ <com.android.settingslib.RestrictedPreference
+ android:key="button_gsm_apn_key"
+ android:title="@string/apn_settings"
+ android:persistent="false" />
+ </PreferenceCategory>
+
+ <PreferenceScreen
+ android:key="carrier_settings_key"
+ android:title="@string/carrier_settings_title">
+ <!-- b/114749736, create a preference controller to build intent -->
+ </PreferenceScreen>
+
+</PreferenceScreen>
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 535f61a..7165218 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -47,7 +47,10 @@
android:order="3"
android:title="@string/status_number"
android:summary="@string/summary_placeholder"
- android:selectable="false"/>
+ android:selectable="false"
+ settings:allowDynamicSummaryInSlice="true"
+ settings:controller=
+ "com.android.settings.deviceinfo.PhoneNumberPreferenceController" />
<Preference
android:key="emergency_info"
@@ -96,6 +99,7 @@
android:title="@string/hardware_info"
settings:keywords="@string/keywords_model_and_hardware"
android:summary="@string/summary_placeholder"
+ settings:allowDynamicSummaryInSlice="true"
settings:controller=
"com.android.settings.deviceinfo.DeviceModelPreferenceController" />
@@ -109,11 +113,12 @@
<!-- Android version -->
<Preference
- android:key="my_device_firmware_version"
+ android:key="firmware_version"
android:order="32"
android:title="@string/firmware_version"
settings:keywords="@string/keywords_android_version"
android:summary="@string/summary_placeholder"
+ settings:allowDynamicSummaryInSlice="true"
settings:controller=
"com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController" />
diff --git a/res/xml/network_setting_fragment.xml b/res/xml/network_setting_fragment.xml
new file mode 100644
index 0000000..c383ab6
--- /dev/null
+++ b/res/xml/network_setting_fragment.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
+ settings:initialExpandedChildrenCount="4">
+
+ <PreferenceScreen
+ android:key="cdma_lte_data_service_key"
+ android:title="@string/cdma_lte_data_service">
+ </PreferenceScreen>
+
+ <com.android.settings.mobilenetwork.MobileDataPreference
+ android:key="mobile_data_enable"
+ android:title="@string/mobile_data_settings_title"
+ android:summary="@string/mobile_data_settings_summary"/>
+
+ <com.android.settingslib.RestrictedSwitchPreference
+ android:key="button_roaming_key"
+ android:title="@string/roaming"
+ android:persistent="false"
+ android:summaryOn="@string/roaming_enable"
+ android:summaryOff="@string/roaming_disable"/>
+
+ <com.android.settings.mobilenetwork.DataUsagePreference
+ android:key="data_usage_summary"
+ android:title="@string/data_usage_title" />
+
+ <SwitchPreference
+ android:key="enhanced_4g_lte"
+ android:title="@string/enhanced_4g_lte_mode_title"
+ android:persistent="false"
+ android:summary="@string/enhanced_4g_lte_mode_summary"/>
+
+ <ListPreference
+ android:key="preferred_network_mode_key"
+ android:title="@string/preferred_network_mode_title"
+ android:summary="@string/preferred_network_mode_summary"
+ android:entries="@array/preferred_network_mode_choices"
+ android:entryValues="@array/preferred_network_mode_values"
+ android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
+
+ <ListPreference
+ android:key="enabled_networks_key"
+ android:title="@string/preferred_network_mode_title"
+ android:summary="@string/preferred_network_mode_summary"
+ android:entries="@array/enabled_networks_choices"
+ android:entryValues="@array/enabled_networks_values"
+ android:dialogTitle="@string/preferred_network_mode_dialogtitle" />
+
+ <Preference
+ android:key="carrier_settings_euicc_key"
+ android:title="@string/carrier_settings_euicc" />
+
+ <PreferenceCategory
+ android:key="calling"
+ android:title="@string/call_category">
+
+ <PreferenceScreen
+ android:key="wifi_calling_key"
+ android:title="@string/wifi_calling_settings_title">
+
+ <intent android:action="android.intent.action.MAIN"
+ android:targetPackage="com.android.settings"
+ android:targetClass="com.android.settings.Settings$WifiCallingSettingsActivity">
+ <extra android:name="show_drawer_menu" android:value="true" />
+ </intent>
+
+ </PreferenceScreen>
+
+ <SwitchPreference
+ android:key="video_calling_key"
+ android:title="@string/video_calling_settings_title"
+ android:persistent="true"/>
+
+ </PreferenceCategory>
+
+</PreferenceScreen>
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index 71a1895..f829c8a 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -27,7 +27,8 @@
<com.android.settings.RestrictedListPreference
android:key="security_setting_lock_screen_notif"
android:title="@string/lock_screen_notifications_title"
- android:summary="@string/summary_placeholder" />
+ android:summary="@string/summary_placeholder"
+ settings:keywords="@string/keywords_lock_screen_notif"/>
<com.android.settingslib.RestrictedSwitchPreference
android:key="security_lockscreen_add_users_when_locked"
@@ -70,6 +71,12 @@
android:fragment="com.android.settings.gestures.PickupGestureSettings"
settings:controller="com.android.settings.gestures.PickupGesturePreferenceController" />
+ <Preference
+ android:key="ambient_display_wake_screen"
+ android:title="@string/ambient_display_wake_screen_title"
+ android:fragment="com.android.settings.gestures.WakeScreenGestureSettings"
+ settings:controller="com.android.settings.gestures.WakeScreenGesturePreferenceController" />
+
<SwitchPreference
android:key="ambient_display_notification"
android:title="@string/doze_title"
diff --git a/res/xml/security_settings_face.xml b/res/xml/security_settings_face.xml
index 3dfcfd7..2bdfdc8 100644
--- a/res/xml/security_settings_face.xml
+++ b/res/xml/security_settings_face.xml
@@ -22,21 +22,34 @@
<com.android.settings.widget.VideoPreference
android:key="security_settings_face_video"
+ android:title="@string/summary_placeholder"
app:animation="@raw/gesture_fingerprint_swipe"
- app:preview="@drawable/face_enroll_introduction" />
+ app:preview="@drawable/face_enroll_introduction"
+ app:controller="com.android.settings.widget.VideoPreferenceController"/>
<PreferenceCategory
android:key="security_settings_face_unlock_category"
android:title="@string/security_settings_face_settings_use_face_category">
<SwitchPreference
- android:key="security_settings_face_unlock"
+ android:key="security_settings_face_keyguard"
android:title="@string/security_settings_face_settings_use_face_unlock_phone"
app:keywords="@string/keywords_face_unlock"
- app:controller="com.android.settings.biometrics.face.FaceSettingsUnlockPreferenceController"/>
+ app:controller="com.android.settings.biometrics.face.FaceSettingsKeyguardPreferenceController"/>
+ <SwitchPreference
+ android:key="security_settings_face_app"
+ android:title="@string/security_settings_face_settings_use_face_for_apps"
+ app:keywords="@string/keywords_face_unlock"
+ app:controller="com.android.settings.biometrics.face.FaceSettingsAppPreferenceController"/>
</PreferenceCategory>
<PreferenceCategory
android:key="security_settings_face_manage_category">
+ <SwitchPreference
+ android:key="security_settings_face_require_attention"
+ android:title="@string/security_settings_face_settings_require_attention"
+ app:keywords="@string/keywords_face_unlock"
+ app:controller="com.android.settings.biometrics.face.FaceSettingsAttentionPreferenceController"/>
+
<Preference
android:key="security_settings_face_improve"
android:title="@string/security_settings_face_settings_improve_face">
diff --git a/res/xml/top_level_settings.xml b/res/xml/top_level_settings.xml
index 6c91aea..dbb106e 100644
--- a/res/xml/top_level_settings.xml
+++ b/res/xml/top_level_settings.xml
@@ -120,6 +120,7 @@
android:summary="@string/support_summary"
android:title="@string/page_tab_title_support"
android:icon="@drawable/ic_homepage_support"
- android:order="100"/>
+ android:order="100"
+ settings:controller="com.android.settings.support.SupportPreferenceController"/>
</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/reach_gesture_settings.xml b/res/xml/wake_lock_screen_gesture_settings.xml
similarity index 62%
copy from res/xml/reach_gesture_settings.xml
copy to res/xml/wake_lock_screen_gesture_settings.xml
index e933e15..5491bb1 100644
--- a/res/xml/reach_gesture_settings.xml
+++ b/res/xml/wake_lock_screen_gesture_settings.xml
@@ -18,20 +18,20 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
- android:key="gesture_reach_screen"
- android:title="@string/ambient_display_reach_title">
+ android:key="gesture_wake_lock_screen_screen"
+ android:title="@string/ambient_display_wake_lock_screen_title">
<com.android.settings.widget.VideoPreference
- android:key="gesture_reach_video"
- app:animation="@raw/gesture_ambient_reach"
- app:preview="@drawable/gesture_ambient_reach" />
+ android:key="gesture_wake_lock_screen_video"
+ app:animation="@raw/gesture_ambient_wake_lock_screen"
+ app:preview="@drawable/gesture_ambient_wake_lock_screen" />
<SwitchPreference
- android:key="gesture_reach"
- android:title="@string/ambient_display_reach_title"
- android:summary="@string/ambient_display_reach_summary"
+ android:key="gesture_wake_lock_screen"
+ android:title="@string/ambient_display_wake_lock_screen_title"
+ android:summary="@string/ambient_display_wake_lock_screen_summary"
app:keywords="@string/keywords_gesture"
- app:controller="com.android.settings.gestures.ReachGesturePreferenceController"
+ app:controller="com.android.settings.gestures.WakeLockScreenGesturePreferenceController"
app:allowDividerAbove="true" />
</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/reach_gesture_settings.xml b/res/xml/wake_screen_gesture_settings.xml
similarity index 64%
rename from res/xml/reach_gesture_settings.xml
rename to res/xml/wake_screen_gesture_settings.xml
index e933e15..7bcb2e9 100644
--- a/res/xml/reach_gesture_settings.xml
+++ b/res/xml/wake_screen_gesture_settings.xml
@@ -18,20 +18,20 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
- android:key="gesture_reach_screen"
- android:title="@string/ambient_display_reach_title">
+ android:key="gesture_wake_screen_screen"
+ android:title="@string/ambient_display_wake_screen_title">
<com.android.settings.widget.VideoPreference
- android:key="gesture_reach_video"
- app:animation="@raw/gesture_ambient_reach"
- app:preview="@drawable/gesture_ambient_reach" />
+ android:key="gesture_wake_screen_video"
+ app:animation="@raw/gesture_ambient_wake_screen"
+ app:preview="@drawable/gesture_ambient_wake_screen" />
<SwitchPreference
- android:key="gesture_reach"
- android:title="@string/ambient_display_reach_title"
- android:summary="@string/ambient_display_reach_summary"
+ android:key="gesture_wake_screen"
+ android:title="@string/ambient_display_wake_screen_title"
+ android:summary="@string/ambient_display_wake_screen_summary"
app:keywords="@string/keywords_gesture"
- app:controller="com.android.settings.gestures.ReachGesturePreferenceController"
+ app:controller="com.android.settings.gestures.WakeScreenGesturePreferenceController"
app:allowDividerAbove="true" />
</PreferenceScreen>
\ No newline at end of file
diff --git a/src/com/android/settings/CredentialStorage.java b/src/com/android/settings/CredentialStorage.java
index 319d599..7b0be94 100644
--- a/src/com/android/settings/CredentialStorage.java
+++ b/src/com/android/settings/CredentialStorage.java
@@ -205,7 +205,7 @@
try {
final ASN1InputStream bIn = new ASN1InputStream(new ByteArrayInputStream(keyData));
final PrivateKeyInfo pki = PrivateKeyInfo.getInstance(bIn.readObject());
- final String algOid = pki.getAlgorithmId().getAlgorithm().getId();
+ final String algOid = pki.getPrivateKeyAlgorithm().getAlgorithm().getId();
final String algName = new AlgorithmId(new ObjectIdentifier(algOid)).getName();
return KeyChain.isBoundKeyAlgorithm(algName);
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index c8ec448..97942fe 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -21,7 +21,7 @@
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AuthenticatorDescription;
-import android.annotation.Nullable;
+import android.app.ActionBar;
import android.app.Activity;
import android.content.ComponentName;
import android.content.ContentResolver;
@@ -31,6 +31,7 @@
import android.content.pm.ResolveInfo;
import android.content.pm.UserInfo;
import android.content.res.Resources;
+import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
@@ -61,8 +62,9 @@
import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.password.ConfirmLockPattern;
-import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.setupwizardlib.TemplateLayout;
+import com.android.setupwizardlib.template.ButtonFooterMixin;
import java.util.List;
@@ -79,8 +81,10 @@
public class MasterClear extends InstrumentedFragment implements OnGlobalLayoutListener {
private static final String TAG = "MasterClear";
- @VisibleForTesting static final int KEYGUARD_REQUEST = 55;
- @VisibleForTesting static final int CREDENTIAL_CONFIRM_REQUEST = 56;
+ @VisibleForTesting
+ static final int KEYGUARD_REQUEST = 55;
+ @VisibleForTesting
+ static final int CREDENTIAL_CONFIRM_REQUEST = 56;
private static final String KEY_SHOW_ESIM_RESET_CHECKBOX
= "masterclear.allow_retain_esim_profiles_after_fdr";
@@ -89,27 +93,41 @@
static final String ERASE_ESIMS_EXTRA = "erase_esim";
private View mContentView;
- @VisibleForTesting Button mInitiateButton;
+ @VisibleForTesting
+ Button mInitiateButton;
private View mExternalStorageContainer;
- @VisibleForTesting CheckBox mExternalStorage;
+ @VisibleForTesting
+ CheckBox mExternalStorage;
private View mEsimStorageContainer;
- @VisibleForTesting CheckBox mEsimStorage;
- @VisibleForTesting ScrollView mScrollView;
+ @VisibleForTesting
+ CheckBox mEsimStorage;
+ @VisibleForTesting
+ ScrollView mScrollView;
@Override
public void onGlobalLayout() {
mInitiateButton.setEnabled(hasReachedBottom(mScrollView));
}
- @Override
- public void onCreate(@Nullable Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- getActivity().setTitle(R.string.master_clear_short_title);
+ private void setUpActionBarAndTitle() {
+ final Activity activity = getActivity();
+ if (activity == null) {
+ Log.e(TAG, "No activity attached, skipping setUpActionBarAndTitle");
+ return;
+ }
+ final ActionBar actionBar = activity.getActionBar();
+ if (actionBar == null) {
+ Log.e(TAG, "No actionbar, skipping setUpActionBarAndTitle");
+ return;
+ }
+ actionBar.hide();
+ activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
}
/**
* Keyguard validation is run using the standard {@link ConfirmLockPattern}
* component as a subactivity
+ *
* @param request the request code to be returned once confirmation finishes
* @return true if confirmation launched
*/
@@ -189,8 +207,8 @@
Account[] accounts = am.getAccountsByType(accountType);
if (accounts != null && accounts.length > 0) {
final Intent requestAccountConfirmation = new Intent()
- .setPackage(packageName)
- .setComponent(new ComponentName(packageName, className));
+ .setPackage(packageName)
+ .setComponent(new ComponentName(packageName, className));
// Check to make sure that the intent is supported.
final PackageManager pm = context.getPackageManager();
final ResolveInfo resolution = pm.resolveActivity(requestAccountConfirmation, 0);
@@ -259,8 +277,9 @@
*/
@VisibleForTesting
void establishInitialState() {
- mInitiateButton = mContentView.findViewById(R.id.initiate_master_clear);
- mInitiateButton.setOnClickListener(mInitiateListener);
+ setUpActionBarAndTitle();
+ setUpInitiateButton();
+
mExternalStorageContainer = mContentView.findViewById(R.id.erase_external_container);
mExternalStorage = mContentView.findViewById(R.id.erase_external);
mEsimStorageContainer = mContentView.findViewById(R.id.erase_esim_container);
@@ -334,7 +353,7 @@
mScrollView.setOnScrollChangeListener(new OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX,
- int oldScrollY) {
+ int oldScrollY) {
if (v instanceof ScrollView && hasReachedBottom((ScrollView) v)) {
mInitiateButton.setEnabled(true);
mScrollView.setOnScrollChangeListener(null);
@@ -360,8 +379,8 @@
}
ContentResolver cr = context.getContentResolver();
return Settings.Global.getInt(cr, Settings.Global.EUICC_PROVISIONED, 0) != 0
- || Settings.Global.getInt(
- cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
+ || Settings.Global.getInt(
+ cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
}
@VisibleForTesting
@@ -388,21 +407,36 @@
return diff <= 0;
}
+ private void setUpInitiateButton() {
+ if (mInitiateButton != null) {
+ return;
+ }
+
+ final TemplateLayout layout = mContentView.findViewById(R.id.setup_wizard_layout);
+ final ButtonFooterMixin buttonFooterMixin = layout.getMixin(ButtonFooterMixin.class);
+ buttonFooterMixin.removeAllViews();
+ buttonFooterMixin.addSpace();
+ buttonFooterMixin.addSpace();
+ mInitiateButton = buttonFooterMixin.addButton(R.string.master_clear_button_text,
+ R.style.SuwGlifButton_Primary);
+ mInitiateButton.setOnClickListener(mInitiateListener);
+ }
+
private void getContentDescription(View v, StringBuffer description) {
- if (v.getVisibility() != View.VISIBLE) {
- return;
- }
- if (v instanceof ViewGroup) {
- ViewGroup vGroup = (ViewGroup) v;
- for (int i = 0; i < vGroup.getChildCount(); i++) {
- View nextChild = vGroup.getChildAt(i);
- getContentDescription(nextChild, description);
- }
- } else if (v instanceof TextView) {
- TextView vText = (TextView) v;
- description.append(vText.getText());
- description.append(","); // Allow Talkback to pause between sections.
- }
+ if (v.getVisibility() != View.VISIBLE) {
+ return;
+ }
+ if (v instanceof ViewGroup) {
+ ViewGroup vGroup = (ViewGroup) v;
+ for (int i = 0; i < vGroup.getChildCount(); i++) {
+ View nextChild = vGroup.getChildAt(i);
+ getContentDescription(nextChild, description);
+ }
+ } else if (v instanceof TextView) {
+ TextView vText = (TextView) v;
+ description.append(vText.getText());
+ description.append(","); // Allow Talkback to pause between sections.
+ }
}
private boolean isExtStorageEncrypted() {
@@ -412,7 +446,7 @@
private void loadAccountList(final UserManager um) {
View accountsLabel = mContentView.findViewById(R.id.accounts_label);
- LinearLayout contents = (LinearLayout)mContentView.findViewById(R.id.accounts);
+ LinearLayout contents = (LinearLayout) mContentView.findViewById(R.id.accounts);
contents.removeAllViews();
Context context = getActivity();
@@ -421,7 +455,7 @@
AccountManager mgr = AccountManager.get(context);
- LayoutInflater inflater = (LayoutInflater)context.getSystemService(
+ LayoutInflater inflater = (LayoutInflater) context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
int accountsCount = 0;
diff --git a/src/com/android/settings/MasterClearConfirm.java b/src/com/android/settings/MasterClearConfirm.java
index cfd20eb..8ebb710 100644
--- a/src/com/android/settings/MasterClearConfirm.java
+++ b/src/com/android/settings/MasterClearConfirm.java
@@ -16,18 +16,23 @@
package com.android.settings;
+
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import android.app.ActionBar;
+import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
+import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
import android.service.oemlock.OemLockManager;
import android.service.persistentdata.PersistentDataBlockManager;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -37,8 +42,9 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.enterprise.ActionDisabledByAdminDialogHelper;
-import com.android.settingslib.RestrictedLockUtils;
import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.setupwizardlib.TemplateLayout;
+import com.android.setupwizardlib.template.ButtonFooterMixin;
/**
* Confirm and execute a reset of the device to a clean "just out of the box"
@@ -51,6 +57,7 @@
* This is the confirmation screen.
*/
public class MasterClearConfirm extends InstrumentedFragment {
+ private final static String TAG = "MasterClearConfirm";
private View mContentView;
private boolean mEraseSdCard;
@@ -103,9 +110,11 @@
mProgressDialog.show();
// need to prevent orientation changes as we're about to go into
- // a long IO request, so we won't be able to access inflate resources on flash
+ // a long IO request, so we won't be able to access inflate resources on
+ // flash
mOldOrientation = getActivity().getRequestedOrientation();
- getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
+ getActivity().setRequestedOrientation(
+ ActivityInfo.SCREEN_ORIENTATION_LOCKED);
}
}.execute();
} else {
@@ -140,8 +149,29 @@
* Configure the UI for the final confirmation interaction
*/
private void establishFinalConfirmationState() {
- mContentView.findViewById(R.id.execute_master_clear)
- .setOnClickListener(mFinalClickListener);
+ final TemplateLayout layout = mContentView.findViewById(R.id.setup_wizard_layout);
+
+ final ButtonFooterMixin buttonFooterMixin = layout.getMixin(ButtonFooterMixin.class);
+ buttonFooterMixin.removeAllViews();
+ buttonFooterMixin.addSpace();
+ buttonFooterMixin.addSpace();
+ buttonFooterMixin.addButton(R.string.master_clear_button_text,
+ R.style.SuwGlifButton_Primary).setOnClickListener(mFinalClickListener);
+ }
+
+ private void setUpActionBarAndTitle() {
+ final Activity activity = getActivity();
+ if (activity == null) {
+ Log.e(TAG, "No activity attached, skipping setUpActionBarAndTitle");
+ return;
+ }
+ final ActionBar actionBar = activity.getActionBar();
+ if (actionBar == null) {
+ Log.e(TAG, "No actionbar, skipping setUpActionBarAndTitle");
+ return;
+ }
+ actionBar.hide();
+ activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
}
@Override
@@ -160,6 +190,7 @@
return new View(getActivity());
}
mContentView = inflater.inflate(R.layout.master_clear_confirm, null);
+ setUpActionBarAndTitle();
establishFinalConfirmationState();
setAccessibilityTitle();
return mContentView;
@@ -167,8 +198,7 @@
private void setAccessibilityTitle() {
CharSequence currentTitle = getActivity().getTitle();
- TextView confirmationMessage =
- (TextView) mContentView.findViewById(R.id.master_clear_confirm);
+ TextView confirmationMessage = mContentView.findViewById(R.id.master_clear_confirm);
if (confirmationMessage != null) {
String accessibleText = new StringBuilder(currentTitle).append(",").append(
confirmationMessage.getText()).toString();
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index ea2370c..a51d45f 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -65,14 +65,12 @@
import com.android.settings.homepage.SettingsHomepageActivity;
import com.android.settings.homepage.TopLevelSettings;
import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.search.DeviceIndexFeatureProvider;
import com.android.settings.wfd.WifiDisplaySettings;
import com.android.settings.widget.SwitchBar;
import com.android.settingslib.core.instrumentation.Instrumentable;
import com.android.settingslib.core.instrumentation.SharedPreferencesLogger;
import com.android.settingslib.development.DevelopmentSettingsEnabler;
import com.android.settingslib.drawer.DashboardCategory;
-import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
import java.util.List;
@@ -514,7 +512,6 @@
registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
updateTilesList();
- updateDeviceIndex();
}
@Override
@@ -636,14 +633,6 @@
});
}
- private void updateDeviceIndex() {
- DeviceIndexFeatureProvider indexProvider = FeatureFactory.getFactory(
- this).getDeviceIndexFeatureProvider();
-
- ThreadUtils.postOnBackgroundThread(
- () -> indexProvider.updateIndex(SettingsActivity.this, false /* force */));
- }
-
private void doUpdateTilesList() {
PackageManager pm = getPackageManager();
final UserManager um = UserManager.get(this);
diff --git a/src/com/android/settings/applications/AppPermissions.java b/src/com/android/settings/applications/AppPermissions.java
deleted file mode 100644
index 6299921..0000000
--- a/src/com/android/settings/applications/AppPermissions.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.applications;
-
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.PermissionInfo;
-import android.os.Build;
-import android.util.ArrayMap;
-import android.util.Log;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Based off from
- * packages/apps/PackageInstaller/src/com/android/packageinstaller/permission/AppPermissions.java
- * Except we only care about the number rather than the details.
- */
-public final class AppPermissions {
- private static final String TAG = "AppPermissions";
-
- private final ArrayMap<String, PermissionGroup> mGroups = new ArrayMap<>();
- private final Context mContext;
- private final PackageInfo mPackageInfo;
-
- public AppPermissions(Context context, String packageName) {
- mContext = context;
- mPackageInfo = getPackageInfo(packageName);
- refresh();
- }
-
- private PackageInfo getPackageInfo(String packageName) {
- try {
- return mContext.getPackageManager().getPackageInfo(packageName,
- PackageManager.GET_PERMISSIONS);
- } catch (NameNotFoundException e) {
- Log.e(TAG, "Unable to find " + packageName, e);
- return null;
- }
- }
-
- public void refresh() {
- if (mPackageInfo != null) {
- loadPermissionGroups();
- }
- }
-
- public int getPermissionCount() {
- return mGroups.size();
- }
-
- public int getGrantedPermissionsCount() {
- int ct = 0;
- for (int i = 0; i < mGroups.size(); i++) {
- if (mGroups.valueAt(i).areRuntimePermissionsGranted()) {
- ct++;
- }
- }
- return ct;
- }
-
- private void loadPermissionGroups() {
- mGroups.clear();
- if (mPackageInfo.requestedPermissions == null) {
- return;
- }
-
- final boolean appSupportsRuntimePermissions = appSupportsRuntime(
- mPackageInfo.applicationInfo);
-
- for (int i = 0; i < mPackageInfo.requestedPermissions.length; i++) {
- String requestedPerm = mPackageInfo.requestedPermissions[i];
-
- final PermissionInfo permInfo;
- try {
- permInfo = mContext.getPackageManager().getPermissionInfo(requestedPerm, 0);
- } catch (NameNotFoundException e) {
- Log.w(TAG, "Unknown permission: " + requestedPerm);
- continue;
- }
-
- String permName = permInfo.name;
- String groupName = permInfo.group != null ? permInfo.group : permName;
-
- PermissionGroup group = mGroups.get(groupName);
- if (group == null) {
- group = new PermissionGroup();
- mGroups.put(groupName, group);
- }
-
- final boolean runtime = appSupportsRuntimePermissions
- && permInfo.protectionLevel == PermissionInfo.PROTECTION_DANGEROUS;
- final boolean granted = (mPackageInfo.requestedPermissionsFlags[i]
- & PackageInfo.REQUESTED_PERMISSION_GRANTED) != 0;
-
- Permission permission = new Permission(runtime, granted);
- group.addPermission(permission, permName);
- }
- // Only care about runtime perms for now.
- for (int i = mGroups.size() - 1; i >= 0; i--) {
- if (!mGroups.valueAt(i).mHasRuntimePermissions) {
- mGroups.removeAt(i);
- }
- }
- }
-
- public static boolean appSupportsRuntime(ApplicationInfo info) {
- return info.targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1;
- }
-
- private static final class PermissionGroup {
- private final ArrayMap<String, Permission> mPermissions = new ArrayMap<>();
- private boolean mHasRuntimePermissions;
-
- public boolean hasRuntimePermissions() {
- return mHasRuntimePermissions;
- }
-
- public boolean areRuntimePermissionsGranted() {
- final int permissionCount = mPermissions.size();
- for (int i = 0; i < permissionCount; i++) {
- Permission permission = mPermissions.valueAt(i);
- if (permission.runtime && !permission.granted) {
- return false;
- }
- }
- return true;
- }
-
- public List<Permission> getPermissions() {
- return new ArrayList<>(mPermissions.values());
- }
-
- void addPermission(Permission permission, String permName) {
- mPermissions.put(permName, permission);
- if (permission.runtime) {
- mHasRuntimePermissions = true;
- }
- }
- }
-
- private static final class Permission {
- private final boolean runtime;
- private boolean granted;
-
- public Permission(boolean runtime, boolean granted) {
- this.runtime = runtime;
- this.granted = granted;
- }
- }
-}
diff --git a/src/com/android/settings/applications/SpecialAppAccessPreferenceController.java b/src/com/android/settings/applications/SpecialAppAccessPreferenceController.java
index a395f98..1763d84 100644
--- a/src/com/android/settings/applications/SpecialAppAccessPreferenceController.java
+++ b/src/com/android/settings/applications/SpecialAppAccessPreferenceController.java
@@ -23,6 +23,7 @@
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.datausage.AppStateDataUsageBridge;
+import com.android.settings.datausage.AppStateDataUsageBridge.DataUsageState;
import com.android.settings.datausage.DataSaverBackend;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -108,8 +109,8 @@
if (!ApplicationsState.FILTER_DOWNLOADED_AND_LAUNCHER.filterApp(entry)) {
continue;
}
- if (entry.extraInfo != null && ((AppStateDataUsageBridge.DataUsageState)
- entry.extraInfo).isDataSaverWhitelisted) {
+ if (entry.extraInfo instanceof DataUsageState
+ && ((DataUsageState) entry.extraInfo).isDataSaverWhitelisted) {
count++;
}
}
diff --git a/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java
index 4337b88..9443c93 100644
--- a/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java
@@ -25,6 +25,7 @@
import android.os.ServiceManager;
import android.text.format.DateUtils;
import android.text.format.Formatter;
+import android.util.FeatureFlagUtils;
import androidx.annotation.VisibleForTesting;
import androidx.loader.app.LoaderManager;
@@ -35,6 +36,7 @@
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
+import com.android.settings.core.FeatureFlags;
import com.android.settings.datausage.AppDataUsage;
import com.android.settings.datausage.DataUsageList;
import com.android.settings.datausage.DataUsageUtils;
@@ -45,6 +47,12 @@
import com.android.settingslib.net.ChartData;
import com.android.settingslib.net.ChartDataLoaderCompat;
+/**
+ * Deprecated in favor of {@link AppDataUsagePreferenceControllerV2}
+ *
+ * @deprecated
+ */
+@Deprecated
public class AppDataUsagePreferenceController extends AppInfoPreferenceControllerBase
implements LoaderManager.LoaderCallbacks<ChartData>, LifecycleObserver, OnResume, OnPause {
@@ -57,6 +65,9 @@
@Override
public int getAvailabilityStatus() {
+ if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.DATA_USAGE_V2)) {
+ return UNSUPPORTED_ON_DEVICE;
+ }
return isBandwidthControlEnabled() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
}
@@ -93,7 +104,9 @@
@Override
public void onPause() {
- mParent.getLoaderManager().destroyLoader(mParent.LOADER_CHART_DATA);
+ if (mStatsSession != null) {
+ mParent.getLoaderManager().destroyLoader(mParent.LOADER_CHART_DATA);
+ }
}
@Override
diff --git a/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2.java b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2.java
new file mode 100644
index 0000000..9bbc5c0
--- /dev/null
+++ b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2.java
@@ -0,0 +1,158 @@
+/*
+ * 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.applications.appinfo;
+
+import android.content.Context;
+import android.net.NetworkTemplate;
+import android.os.Bundle;
+import android.text.format.DateUtils;
+import android.text.format.Formatter;
+import android.util.FeatureFlagUtils;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.Utils;
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.datausage.AppDataUsageV2;
+import com.android.settings.datausage.DataUsageUtils;
+import com.android.settingslib.AppItem;
+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.net.NetworkCycleDataForUid;
+import com.android.settingslib.net.NetworkCycleDataForUidLoader;
+
+import java.util.List;
+
+public class AppDataUsagePreferenceControllerV2 extends AppInfoPreferenceControllerBase
+ implements LoaderManager.LoaderCallbacks<List<NetworkCycleDataForUid>>, LifecycleObserver,
+ OnResume, OnPause {
+
+ private List<NetworkCycleDataForUid> mAppUsageData;
+
+ public AppDataUsagePreferenceControllerV2(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ if (!FeatureFlagUtils.isEnabled(mContext, FeatureFlags.DATA_USAGE_V2)) {
+ return UNSUPPORTED_ON_DEVICE;
+ }
+ return isBandwidthControlEnabled() ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ preference.setSummary(getDataSummary());
+ }
+
+ @Override
+ public void onResume() {
+ if (isAvailable()) {
+ final int uid = mParent.getAppEntry().info.uid;
+ final AppItem app = new AppItem(uid);
+ app.addUid(uid);
+ mParent.getLoaderManager().restartLoader(mParent.LOADER_CHART_DATA, null /* args */,
+ this);
+ }
+ }
+
+ @Override
+ public void onPause() {
+ if (isAvailable()) {
+ mParent.getLoaderManager().destroyLoader(mParent.LOADER_CHART_DATA);
+ }
+ }
+
+ @Override
+ public Loader<List<NetworkCycleDataForUid>> onCreateLoader(int id, Bundle args) {
+ final NetworkTemplate template = getTemplate(mContext);
+ return NetworkCycleDataForUidLoader.builder(mContext)
+ .setUid(mParent.getAppEntry().info.uid)
+ .setRetrieveDetail(false)
+ .setNetworkTemplate(template)
+ .setSubscriberId(template.getSubscriberId())
+ .build();
+ }
+
+ @Override
+ public void onLoadFinished(Loader<List<NetworkCycleDataForUid>> loader,
+ List<NetworkCycleDataForUid> data) {
+ mAppUsageData = data;
+ updateState(mPreference);
+ }
+
+ @Override
+ public void onLoaderReset(Loader<List<NetworkCycleDataForUid>> loader) {
+ // Leave last result.
+ }
+
+ @Override
+ protected Class<? extends SettingsPreferenceFragment> getDetailFragmentClass() {
+ return AppDataUsageV2.class;
+ }
+
+ private CharSequence getDataSummary() {
+ if (mAppUsageData != null) {
+ long totalBytes = 0;
+ long startTime = System.currentTimeMillis();
+ for (NetworkCycleDataForUid data : mAppUsageData) {
+ totalBytes += data.getTotalUsage();
+ final long cycleStart = data.getStartTime();
+ if (cycleStart < startTime) {
+ startTime = cycleStart;
+ }
+ }
+ if (totalBytes == 0) {
+ return mContext.getString(R.string.no_data_usage);
+ }
+ return mContext.getString(R.string.data_summary_format,
+ Formatter.formatFileSize(mContext, totalBytes),
+ DateUtils.formatDateTime(mContext, startTime,
+ DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_ABBREV_MONTH));
+ }
+ return mContext.getString(R.string.computing_size);
+ }
+
+ private static NetworkTemplate getTemplate(Context context) {
+ if (DataUsageUtils.hasReadyMobileRadio(context)) {
+ return NetworkTemplate.buildTemplateMobileWildcard();
+ }
+ if (DataUsageUtils.hasWifiRadio(context)) {
+ return NetworkTemplate.buildTemplateWifiWildcard();
+ }
+ return NetworkTemplate.buildTemplateEthernet();
+ }
+
+ @VisibleForTesting
+ boolean isBandwidthControlEnabled() {
+ return Utils.isBandwidthControlEnabled();
+ }
+
+}
diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
index 7b9cc79..64fd36d 100755
--- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
+++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
@@ -34,6 +34,7 @@
import android.os.UserHandle;
import android.os.UserManager;
import android.text.TextUtils;
+import android.util.FeatureFlagUtils;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
@@ -48,6 +49,7 @@
import com.android.settings.applications.manageapplications.ManageApplications;
import com.android.settings.applications.specialaccess.pictureinpicture
.PictureInPictureDetailPreferenceController;
+import com.android.settings.core.FeatureFlags;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -139,7 +141,11 @@
final String packageName = getPackageName();
use(TimeSpentInAppPreferenceController.class).setPackageName(packageName);
- use(AppDataUsagePreferenceController.class).setParentFragment(this);
+ if (FeatureFlagUtils.isEnabled(context, FeatureFlags.DATA_USAGE_V2)) {
+ use(AppDataUsagePreferenceControllerV2.class).setParentFragment(this);
+ } else {
+ use(AppDataUsagePreferenceController.class).setParentFragment(this);
+ }
final AppInstallerInfoPreferenceController installer =
use(AppInstallerInfoPreferenceController.class);
installer.setPackageName(packageName);
diff --git a/src/com/android/settings/applications/appinfo/ExternalSourcesDetails.java b/src/com/android/settings/applications/appinfo/ExternalSourcesDetails.java
index be41c0f..38e70d1 100644
--- a/src/com/android/settings/applications/appinfo/ExternalSourcesDetails.java
+++ b/src/com/android/settings/applications/appinfo/ExternalSourcesDetails.java
@@ -80,21 +80,20 @@
}
public static CharSequence getPreferenceSummary(Context context, AppEntry entry) {
+ final UserHandle userHandle = UserHandle.getUserHandleForUid(entry.info.uid);
final UserManager um = UserManager.get(context);
final int userRestrictionSource = um.getUserRestrictionSource(
- UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
- UserHandle.getUserHandleForUid(entry.info.uid));
- switch (userRestrictionSource) {
- case UserManager.RESTRICTION_SOURCE_DEVICE_OWNER:
- case UserManager.RESTRICTION_SOURCE_PROFILE_OWNER:
- return context.getString(R.string.disabled_by_admin);
- case UserManager.RESTRICTION_SOURCE_SYSTEM:
- return context.getString(R.string.disabled);
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES, userHandle)
+ | um.getUserRestrictionSource(
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
+ userHandle);
+ if ((userRestrictionSource & UserManager.RESTRICTION_SOURCE_SYSTEM) != 0) {
+ return context.getString(R.string.disabled_by_admin);
+ } else if (userRestrictionSource != 0) {
+ return context.getString(R.string.disabled);
}
-
final InstallAppsState appsState = new AppStateInstallAppsBridge(context, null, null)
.createInstallAppsStateFor(entry.info.packageName, entry.info.uid);
-
return context.getString(appsState.canInstallApps()
? R.string.app_permission_summary_allowed
: R.string.app_permission_summary_not_allowed);
@@ -119,6 +118,10 @@
return true;
}
mSwitchPref.checkRestrictionAndSetDisabled(UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES);
+ if (!mSwitchPref.isDisabledByAdmin()) {
+ mSwitchPref.checkRestrictionAndSetDisabled(
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY);
+ }
if (mSwitchPref.isDisabledByAdmin()) {
return true;
}
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 1f577b4..44ea575 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -67,7 +67,6 @@
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
-import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.Spinner;
@@ -128,6 +127,7 @@
import com.android.settingslib.applications.StorageStatsSource;
import com.android.settingslib.fuelgauge.PowerWhitelistBackend;
import com.android.settingslib.utils.ThreadUtils;
+import com.android.settingslib.widget.settingsspinner.SettingsSpinnerAdapter;
import java.util.ArrayList;
import java.util.Arrays;
@@ -757,7 +757,7 @@
}
}
- static class FilterSpinnerAdapter extends ArrayAdapter<CharSequence> {
+ static class FilterSpinnerAdapter extends SettingsSpinnerAdapter<CharSequence> {
private final ManageApplications mManageApplications;
private final Context mContext;
@@ -767,10 +767,9 @@
private final ArrayList<AppFilterItem> mFilterOptions = new ArrayList<>();
public FilterSpinnerAdapter(ManageApplications manageApplications) {
- super(manageApplications.getContext(), R.layout.filter_spinner_item);
+ super(manageApplications.getContext());
mContext = manageApplications.getContext();
mManageApplications = manageApplications;
- setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
}
public AppFilterItem getFilter(int position) {
diff --git a/src/com/android/settings/biometrics/BiometricStatusPreferenceController.java b/src/com/android/settings/biometrics/BiometricStatusPreferenceController.java
index 90d4cc2..379a02b 100644
--- a/src/com/android/settings/biometrics/BiometricStatusPreferenceController.java
+++ b/src/com/android/settings/biometrics/BiometricStatusPreferenceController.java
@@ -33,7 +33,7 @@
protected final UserManager mUm;
protected final LockPatternUtils mLockPatternUtils;
- protected final int mUserId = UserHandle.myUserId();
+ private final int mUserId = UserHandle.myUserId();
protected final int mProfileChallengeUserId;
/**
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
index c718dde..748f874 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
@@ -104,7 +104,7 @@
if (mFaceManager == null) {
return 0;
}
- return mFaceManager.preEnroll();
+ return mFaceManager.generateChallenge();
}
@Override
diff --git a/src/com/android/settings/biometrics/face/FaceSettings.java b/src/com/android/settings/biometrics/face/FaceSettings.java
index 4944c7f..d7dc9f8 100644
--- a/src/com/android/settings/biometrics/face/FaceSettings.java
+++ b/src/com/android/settings/biometrics/face/FaceSettings.java
@@ -16,11 +16,16 @@
package com.android.settings.biometrics.face;
+import static android.app.Activity.RESULT_OK;
+
import static com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST;
+import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED;
import android.content.Context;
+import android.content.Intent;
import android.hardware.face.FaceManager;
import android.os.Bundle;
+import android.os.UserHandle;
import android.provider.SearchIndexableResource;
import android.util.Log;
@@ -30,6 +35,7 @@
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.widget.VideoPreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.search.SearchIndexable;
@@ -47,7 +53,11 @@
private static final String TAG = "FaceSettings";
private static final String KEY_LAUNCHED_CONFIRM = "key_launched_confirm";
+ private FaceManager mFaceManager;
+ private int mUserId;
private boolean mLaunchedConfirm;
+ private byte[] mToken;
+ private FaceSettingsAttentionPreferenceController mAttentionController;
public static boolean isAvailable(Context context) {
FaceManager manager = Utils.getFaceManagerOrNull(context);
@@ -79,14 +89,20 @@
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ mFaceManager = getPrefContext().getSystemService(FaceManager.class);
+ mUserId = getActivity().getIntent().getIntExtra(
+ Intent.EXTRA_USER_ID, UserHandle.myUserId());
+
if (savedInstanceState != null) {
mLaunchedConfirm = savedInstanceState.getBoolean(KEY_LAUNCHED_CONFIRM, false);
}
if (!mLaunchedConfirm) {
+ final long challenge = mFaceManager.generateChallenge();
ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(getActivity(), this);
if (!helper.launchConfirmationActivity(CONFIRM_REQUEST,
- getString(R.string.security_settings_face_preference_title))) {
+ getString(R.string.security_settings_face_preference_title),
+ null, null, challenge, mUserId)) {
Log.e(TAG, "Password not set");
finish();
}
@@ -94,16 +110,59 @@
}
@Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ super.onActivityResult(requestCode, resultCode, data);
+ if (requestCode == CONFIRM_REQUEST) {
+ if (resultCode == RESULT_FINISHED || resultCode == RESULT_OK) {
+ // The pin/pattern/password was set.
+ if (data != null) {
+ mToken = data.getByteArrayExtra(
+ ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
+ if (mToken != null) {
+ mAttentionController.setToken(mToken);
+ }
+ }
+ }
+ }
+
+ if (mToken == null) {
+ // Didn't get an authentication, finishing
+ getActivity().finish();
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ if (getActivity().isFinishing()) {
+ final int result = mFaceManager.revokeChallenge();
+ if (result < 0) {
+ Log.w(TAG, "revokeChallenge failed, result: " + result);
+ }
+ }
+ }
+
+ @Override
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
- return buildPreferenceControllers(context, getSettingsLifecycle());
+ final List<AbstractPreferenceController> controllers =
+ buildPreferenceControllers(context, getSettingsLifecycle());
+ for (AbstractPreferenceController controller : controllers) {
+ if (controller instanceof FaceSettingsAttentionPreferenceController) {
+ mAttentionController = (FaceSettingsAttentionPreferenceController) controller;
+ break;
+ }
+ }
+
+ return controllers;
}
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
Lifecycle lifecycle) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
- controllers.add(new FaceSettingsVideoPreferenceController(context));
controllers.add(new FaceSettingsImprovePreferenceController(context));
- controllers.add(new FaceSettingsUnlockPreferenceController(context));
+ controllers.add(new FaceSettingsKeyguardPreferenceController(context));
+ controllers.add(new FaceSettingsAppPreferenceController(context));
+ controllers.add(new FaceSettingsAttentionPreferenceController(context));
controllers.add(new FaceSettingsRemoveButtonPreferenceController(context));
controllers.add(new FaceSettingsFooterPreferenceController(context));
return controllers;
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java
new file mode 100644
index 0000000..038dbd8
--- /dev/null
+++ b/src/com/android/settings/biometrics/face/FaceSettingsAppPreferenceController.java
@@ -0,0 +1,65 @@
+/*
+ * 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.biometrics.face;
+
+import static android.provider.Settings.Secure.FACE_UNLOCK_APP_ENABLED;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import com.android.settings.core.TogglePreferenceController;
+
+/**
+ * Preference controller for Face settings page controlling the ability to use
+ * Face authentication in apps (through BiometricPrompt).
+ */
+public class FaceSettingsAppPreferenceController extends TogglePreferenceController {
+
+ private static final String KEY = "security_settings_face_app";
+
+ private static final int ON = 1;
+ private static final int OFF = 0;
+ private static final int DEFAULT = ON; // face unlock is enabled for BiometricPrompt by default
+
+ public FaceSettingsAppPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ }
+
+ public FaceSettingsAppPreferenceController(Context context) {
+ this(context, KEY);
+ }
+
+ @Override
+ public boolean isChecked() {
+ if (!FaceSettings.isAvailable(mContext)) {
+ return false;
+ }
+ return Settings.Secure.getInt(
+ mContext.getContentResolver(), FACE_UNLOCK_APP_ENABLED, DEFAULT) == ON;
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ return Settings.Secure.putInt(mContext.getContentResolver(), FACE_UNLOCK_APP_ENABLED,
+ isChecked ? ON : OFF);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+}
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceController.java
new file mode 100644
index 0000000..9c4f964
--- /dev/null
+++ b/src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceController.java
@@ -0,0 +1,86 @@
+/*
+ * 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.biometrics.face;
+
+import android.content.Context;
+import android.hardware.face.FaceManager;
+
+import com.android.settings.Utils;
+import com.android.settings.core.TogglePreferenceController;
+
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+/**
+ * Preference controller that manages the ability to use face authentication with/without
+ * user attention. See {@link FaceManager#setRequireAttention(boolean, byte[])}.
+ */
+public class FaceSettingsAttentionPreferenceController extends TogglePreferenceController {
+
+ public static final String KEY = "security_settings_face_require_attention";
+
+ private byte[] mToken;
+ private FaceManager mFaceManager;
+ private SwitchPreference mPreference;
+
+ public FaceSettingsAttentionPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ mFaceManager = Utils.getFaceManagerOrNull(context);
+ }
+
+ public FaceSettingsAttentionPreferenceController(Context context) {
+ this(context, KEY);
+ }
+
+ public void setToken(byte[] token) {
+ mToken = token;
+ mPreference.setChecked(mFaceManager.getRequireAttention(mToken));
+ }
+
+ /**
+ * Displays preference in this controller.
+ */
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = (SwitchPreference) screen.findPreference(KEY);
+ }
+
+ @Override
+ public boolean isChecked() {
+ if (!FaceSettings.isAvailable(mContext)) {
+ return true;
+ } else if (mToken == null) {
+ // The token will be null when the controller is first created, since CC has not been
+ // completed by the user. Once it's completed, FaceSettings will use setToken which
+ // will retrieve the correct value from FaceService
+ return true;
+ }
+ return mFaceManager.getRequireAttention(mToken);
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ mFaceManager.setRequireAttention(isChecked, mToken);
+ return true;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+}
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsUnlockPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsKeyguardPreferenceController.java
similarity index 89%
rename from src/com/android/settings/biometrics/face/FaceSettingsUnlockPreferenceController.java
rename to src/com/android/settings/biometrics/face/FaceSettingsKeyguardPreferenceController.java
index 5c84646..fe7d398 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsUnlockPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsKeyguardPreferenceController.java
@@ -31,19 +31,19 @@
* Preference controller for Face settings page controlling the ability to unlock the phone
* with face.
*/
-public class FaceSettingsUnlockPreferenceController extends TogglePreferenceController {
+public class FaceSettingsKeyguardPreferenceController extends TogglePreferenceController {
- private static final String KEY = "security_settings_face_unlock";
+ private static final String KEY = "security_settings_face_keyguard";
private static final int ON = 1;
private static final int OFF = 0;
private static final int DEFAULT = ON; // face unlock is enabled on keyguard by default
- public FaceSettingsUnlockPreferenceController(Context context, String preferenceKey) {
+ public FaceSettingsKeyguardPreferenceController(Context context, String preferenceKey) {
super(context, preferenceKey);
}
- public FaceSettingsUnlockPreferenceController(Context context) {
+ public FaceSettingsKeyguardPreferenceController(Context context) {
this(context, KEY);
}
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsVideoPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsVideoPreferenceController.java
deleted file mode 100644
index 6fbb9c4..0000000
--- a/src/com/android/settings/biometrics/face/FaceSettingsVideoPreferenceController.java
+++ /dev/null
@@ -1,40 +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.biometrics.face;
-
-import android.content.Context;
-
-import com.android.settings.core.BasePreferenceController;
-
-public class FaceSettingsVideoPreferenceController extends BasePreferenceController {
-
- private static final String PREF_KEY_VIDEO = "security_settings_face_video";
-
- public FaceSettingsVideoPreferenceController(Context context,
- String preferenceKey) {
- super(context, preferenceKey);
- }
-
- public FaceSettingsVideoPreferenceController(Context context) {
- this(context, PREF_KEY_VIDEO);
- }
-
- @Override
- public int getAvailabilityStatus() {
- return AVAILABLE;
- }
-}
diff --git a/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java b/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java
index cd27dbb..8450577 100644
--- a/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java
@@ -46,7 +46,7 @@
@Override
protected boolean hasEnrolledBiometrics() {
- return mFaceManager.hasEnrolledTemplates(mUserId);
+ return mFaceManager.hasEnrolledTemplates(getUserId());
}
@Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceController.java b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceController.java
index 2fcff5c..0e1ccd7 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceController.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceController.java
@@ -45,12 +45,12 @@
@Override
protected boolean hasEnrolledBiometrics() {
- return mFingerprintManager.hasEnrolledFingerprints(mUserId);
+ return mFingerprintManager.hasEnrolledFingerprints(getUserId());
}
@Override
protected String getSummaryTextEnrolled() {
- final int numEnrolled = mFingerprintManager.getEnrolledFingerprints(mUserId).size();
+ final int numEnrolled = mFingerprintManager.getEnrolledFingerprints(getUserId()).size();
return mContext.getResources().getQuantityString(
R.plurals.security_settings_fingerprint_preference_summary,
numEnrolled, numEnrolled);
diff --git a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
index 6ffc096..08f5c7e 100644
--- a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java
@@ -22,6 +22,7 @@
import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
+import android.os.storage.StorageManager;
import android.widget.Button;
import android.widget.TextView;
@@ -32,7 +33,6 @@
import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
import com.android.settings.password.SetupChooseLockGeneric;
import com.android.settings.password.SetupSkipDialog;
-import com.android.settings.password.StorageManagerWrapper;
public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntroduction {
private static final String KEY_LOCK_SCREEN_PRESENT = "wasLockScreenPresent";
@@ -59,7 +59,7 @@
protected Intent getChooseLockIntent() {
Intent intent = new Intent(this, SetupChooseLockGeneric.class);
- if (StorageManagerWrapper.isFileEncryptedNativeOrEmulated()) {
+ if (StorageManager.isFileEncryptedNativeOrEmulated()) {
intent.putExtra(
LockPatternUtils.PASSWORD_TYPE_KEY,
DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
index 297c90b..cac4565 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceUpdater.java
@@ -269,8 +269,9 @@
final BluetoothDevice device = cachedDevice.getDevice();
if (DBG) {
Log.d(TAG, "isDeviceConnected() device name : " + cachedDevice.getName() +
- ", is connected : " + device.isConnected());
+ ", is connected : " + device.isConnected() + " , is profile connected : "
+ + cachedDevice.isConnected());
}
- return device.getBondState() == BluetoothDevice.BOND_BONDED && device.isConnected();
+ return device.getBondState() == BluetoothDevice.BOND_BONDED && cachedDevice.isConnected();
}
}
diff --git a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
index 8c6d3f2..127cb03 100644
--- a/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
+++ b/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdater.java
@@ -43,9 +43,10 @@
final BluetoothDevice device = cachedDevice.getDevice();
if (DBG) {
Log.d(TAG, "isFilterMatched() device name : " + cachedDevice.getName() +
- ", is connected : " + device.isConnected());
+ ", is connected : " + device.isConnected() + ", is profile connected : "
+ + cachedDevice.isConnected());
}
- return device.getBondState() == BluetoothDevice.BOND_BONDED && !device.isConnected();
+ return device.getBondState() == BluetoothDevice.BOND_BONDED && !cachedDevice.isConnected();
}
@Override
diff --git a/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java b/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
index 5f6ffb2..ffcd1fc 100644
--- a/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
@@ -20,6 +20,7 @@
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
+import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
@@ -35,7 +36,9 @@
public class PreviouslyConnectedDevicePreferenceController extends BasePreferenceController
implements LifecycleObserver, OnStart, OnStop, DevicePreferenceCallback {
- private Preference mPreference;
+ private static final int MAX_DEVICE_NUM = 3;
+
+ private PreferenceGroup mPreferenceGroup;
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
private DockUpdater mSavedDockUpdater;
private int mPreferenceSize;
@@ -57,8 +60,10 @@
@Override
public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen);
+ mPreferenceGroup = (PreferenceGroup) screen.findPreference(getPreferenceKey());
+ mPreferenceGroup.setVisible(false);
+
if (isAvailable()) {
- mPreference = screen.findPreference(getPreferenceKey());
final Context context = screen.getContext();
mBluetoothDeviceUpdater.setPrefContext(context);
mSavedDockUpdater.setPreferenceContext(context);
@@ -69,7 +74,6 @@
public void onStart() {
mBluetoothDeviceUpdater.registerCallback();
mSavedDockUpdater.registerCallback();
- updatePreferenceOnSizeChanged();
}
@Override
@@ -86,13 +90,17 @@
@Override
public void onDeviceAdded(Preference preference) {
mPreferenceSize++;
- updatePreferenceOnSizeChanged();
+ if (mPreferenceSize <= MAX_DEVICE_NUM) {
+ mPreferenceGroup.addPreference(preference);
+ }
+ updatePreferenceVisiblity();
}
@Override
public void onDeviceRemoved(Preference preference) {
mPreferenceSize--;
- updatePreferenceOnSizeChanged();
+ mPreferenceGroup.removePreference(preference);
+ updatePreferenceVisiblity();
}
@VisibleForTesting
@@ -106,18 +114,12 @@
}
@VisibleForTesting
- void setPreferenceSize(int size) {
- mPreferenceSize = size;
+ void setPreferenceGroup(PreferenceGroup preferenceGroup) {
+ mPreferenceGroup = preferenceGroup;
}
@VisibleForTesting
- void setPreference(Preference preference) {
- mPreference = preference;
- }
-
- private void updatePreferenceOnSizeChanged() {
- if (isAvailable()) {
- mPreference.setEnabled(mPreferenceSize != 0);
- }
+ void updatePreferenceVisiblity() {
+ mPreferenceGroup.setVisible(mPreferenceSize > 0);
}
}
diff --git a/src/com/android/settings/core/PreferenceXmlParserUtils.java b/src/com/android/settings/core/PreferenceXmlParserUtils.java
index 8ef7f8d..9fdeeef 100644
--- a/src/com/android/settings/core/PreferenceXmlParserUtils.java
+++ b/src/com/android/settings/core/PreferenceXmlParserUtils.java
@@ -69,7 +69,8 @@
MetadataFlag.FLAG_NEED_PREF_TITLE,
MetadataFlag.FLAG_NEED_PREF_SUMMARY,
MetadataFlag.FLAG_NEED_PREF_ICON,
- MetadataFlag.FLAG_NEED_SEARCHABLE})
+ MetadataFlag.FLAG_NEED_SEARCHABLE,
+ MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE})
@Retention(RetentionPolicy.SOURCE)
public @interface MetadataFlag {
int FLAG_INCLUDE_PREF_SCREEN = 1;
@@ -82,6 +83,7 @@
int FLAG_NEED_PLATFORM_SLICE_FLAG = 1 << 7;
int FLAG_NEED_KEYWORDS = 1 << 8;
int FLAG_NEED_SEARCHABLE = 1 << 9;
+ int FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE = 1 << 10;
}
public static final String METADATA_PREF_TYPE = "type";
@@ -93,6 +95,8 @@
public static final String METADATA_PLATFORM_SLICE_FLAG = "platform_slice";
public static final String METADATA_KEYWORDS = "keywords";
public static final String METADATA_SEARCHABLE = "searchable";
+ public static final String METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE =
+ "allow_dynamic_summary_in_slice";
private static final String ENTRIES_SEPARATOR = "|";
@@ -228,6 +232,10 @@
preferenceMetadata.putBoolean(METADATA_SEARCHABLE,
isSearchable(preferenceAttributes));
}
+ if (hasFlag(flags, MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE)) {
+ preferenceMetadata.putBoolean(METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
+ isDynamicSummaryAllowed(preferenceAttributes));
+ }
metadata.add(preferenceMetadata);
preferenceAttributes.recycle();
@@ -312,6 +320,11 @@
return styledAttributes.getBoolean(R.styleable.Preference_searchable, true /* default */);
}
+ private static boolean isDynamicSummaryAllowed(TypedArray styledAttributes) {
+ return styledAttributes.getBoolean(R.styleable.Preference_allowDynamicSummaryInSlice,
+ false /* default */);
+ }
+
private static String getKeywords(TypedArray styleAttributes) {
return styleAttributes.getString(R.styleable.Preference_keywords);
}
diff --git a/src/com/android/settings/datausage/AppDataUsageV2.java b/src/com/android/settings/datausage/AppDataUsageV2.java
new file mode 100644
index 0000000..4e8325b
--- /dev/null
+++ b/src/com/android/settings/datausage/AppDataUsageV2.java
@@ -0,0 +1,430 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the
+ * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package com.android.settings.datausage;
+
+import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.net.NetworkTemplate;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.util.ArraySet;
+import android.util.IconDrawableFactory;
+import android.util.Log;
+import android.view.View;
+import android.widget.AdapterView;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.loader.app.LoaderManager;
+import androidx.loader.content.Loader;
+import androidx.preference.Preference;
+import androidx.preference.Preference.OnPreferenceChangeListener;
+import androidx.preference.PreferenceCategory;
+
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
+import com.android.settings.applications.AppInfoBase;
+import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.AppItem;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settingslib.RestrictedSwitchPreference;
+import com.android.settingslib.net.NetworkCycleDataForUid;
+import com.android.settingslib.net.NetworkCycleDataForUidLoader;
+import com.android.settingslib.net.UidDetail;
+import com.android.settingslib.net.UidDetailProvider;
+
+import java.util.List;
+
+public class AppDataUsageV2 extends DataUsageBaseFragment implements OnPreferenceChangeListener,
+ DataSaverBackend.Listener {
+
+ private static final String TAG = "AppDataUsageV2";
+
+ public static final String ARG_APP_ITEM = "app_item";
+ public static final String ARG_NETWORK_TEMPLATE = "network_template";
+
+ private static final String KEY_TOTAL_USAGE = "total_usage";
+ private static final String KEY_FOREGROUND_USAGE = "foreground_usage";
+ private static final String KEY_BACKGROUND_USAGE = "background_usage";
+ private static final String KEY_APP_SETTINGS = "app_settings";
+ private static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
+ private static final String KEY_APP_LIST = "app_list";
+ private static final String KEY_CYCLE = "cycle";
+ private static final String KEY_UNRESTRICTED_DATA = "unrestricted_data_saver";
+
+ private static final int LOADER_APP_USAGE_DATA = 2;
+ private static final int LOADER_APP_PREF = 3;
+
+ private PackageManager mPackageManager;
+ private final ArraySet<String> mPackages = new ArraySet<>();
+ private Preference mTotalUsage;
+ private Preference mForegroundUsage;
+ private Preference mBackgroundUsage;
+ private Preference mAppSettings;
+ private RestrictedSwitchPreference mRestrictBackground;
+ private PreferenceCategory mAppList;
+
+ private Drawable mIcon;
+ private CharSequence mLabel;
+ private String mPackageName;
+ private CycleAdapter mCycleAdapter;
+
+ private List<NetworkCycleDataForUid> mUsageData;
+ private NetworkTemplate mTemplate;
+ private AppItem mAppItem;
+ private Intent mAppSettingsIntent;
+ private SpinnerPreference mCycle;
+ private RestrictedSwitchPreference mUnrestrictedData;
+ private DataSaverBackend mDataSaverBackend;
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ super.onCreate(icicle);
+ mPackageManager = getPackageManager();
+ final Bundle args = getArguments();
+
+ mAppItem = (args != null) ? (AppItem) args.getParcelable(ARG_APP_ITEM) : null;
+ mTemplate = (args != null) ? (NetworkTemplate) args.getParcelable(ARG_NETWORK_TEMPLATE)
+ : null;
+ if (mTemplate == null) {
+ Context context = getContext();
+ mTemplate = DataUsageUtils.getDefaultTemplate(context,
+ DataUsageUtils.getDefaultSubscriptionId(context));
+ }
+ if (mAppItem == null) {
+ int uid = (args != null) ? args.getInt(AppInfoBase.ARG_PACKAGE_UID, -1)
+ : getActivity().getIntent().getIntExtra(AppInfoBase.ARG_PACKAGE_UID, -1);
+ if (uid == -1) {
+ // TODO: Log error.
+ getActivity().finish();
+ } else {
+ addUid(uid);
+ mAppItem = new AppItem(uid);
+ mAppItem.addUid(uid);
+ }
+ } else {
+ for (int i = 0; i < mAppItem.uids.size(); i++) {
+ addUid(mAppItem.uids.keyAt(i));
+ }
+ }
+
+ mTotalUsage = findPreference(KEY_TOTAL_USAGE);
+ mForegroundUsage = findPreference(KEY_FOREGROUND_USAGE);
+ mBackgroundUsage = findPreference(KEY_BACKGROUND_USAGE);
+
+ mCycle = (SpinnerPreference) findPreference(KEY_CYCLE);
+ mCycleAdapter = new CycleAdapter(getContext(), mCycle, mCycleListener, false);
+
+ if (mAppItem.key > 0) {
+ if (mPackages.size() != 0) {
+ try {
+ ApplicationInfo info = mPackageManager.getApplicationInfoAsUser(
+ mPackages.valueAt(0), 0, UserHandle.getUserId(mAppItem.key));
+ mIcon = IconDrawableFactory.newInstance(getActivity()).getBadgedIcon(info);
+ mLabel = info.loadLabel(mPackageManager);
+ mPackageName = info.packageName;
+ } catch (PackageManager.NameNotFoundException e) {
+ }
+ }
+ if (!UserHandle.isApp(mAppItem.key)) {
+ removePreference(KEY_UNRESTRICTED_DATA);
+ removePreference(KEY_RESTRICT_BACKGROUND);
+ } else {
+ mRestrictBackground = (RestrictedSwitchPreference) findPreference(
+ KEY_RESTRICT_BACKGROUND);
+ mRestrictBackground.setOnPreferenceChangeListener(this);
+ mUnrestrictedData = (RestrictedSwitchPreference) findPreference(
+ KEY_UNRESTRICTED_DATA);
+ mUnrestrictedData.setOnPreferenceChangeListener(this);
+ }
+ mDataSaverBackend = new DataSaverBackend(getContext());
+ mAppSettings = findPreference(KEY_APP_SETTINGS);
+
+ mAppSettingsIntent = new Intent(Intent.ACTION_MANAGE_NETWORK_USAGE);
+ mAppSettingsIntent.addCategory(Intent.CATEGORY_DEFAULT);
+
+ PackageManager pm = getPackageManager();
+ boolean matchFound = false;
+ for (String packageName : mPackages) {
+ mAppSettingsIntent.setPackage(packageName);
+ if (pm.resolveActivity(mAppSettingsIntent, 0) != null) {
+ matchFound = true;
+ break;
+ }
+ }
+ if (!matchFound) {
+ removePreference(KEY_APP_SETTINGS);
+ mAppSettings = null;
+ }
+
+ if (mPackages.size() > 1) {
+ mAppList = (PreferenceCategory) findPreference(KEY_APP_LIST);
+ getLoaderManager().initLoader(LOADER_APP_PREF, Bundle.EMPTY, mAppPrefCallbacks);
+ } else {
+ removePreference(KEY_APP_LIST);
+ }
+ } else {
+ final Context context = getActivity();
+ UidDetail uidDetail = new UidDetailProvider(context).getUidDetail(mAppItem.key, true);
+ mIcon = uidDetail.icon;
+ mLabel = uidDetail.label;
+ mPackageName = context.getPackageName();
+
+ removePreference(KEY_UNRESTRICTED_DATA);
+ removePreference(KEY_APP_SETTINGS);
+ removePreference(KEY_RESTRICT_BACKGROUND);
+ removePreference(KEY_APP_LIST);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ if (mDataSaverBackend != null) {
+ mDataSaverBackend.addListener(this);
+ }
+ getLoaderManager().restartLoader(LOADER_APP_USAGE_DATA, null /* args */, mUidDataCallbacks);
+ updatePrefs();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ if (mDataSaverBackend != null) {
+ mDataSaverBackend.remListener(this);
+ }
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (preference == mRestrictBackground) {
+ mDataSaverBackend.setIsBlacklisted(mAppItem.key, mPackageName, !(Boolean) newValue);
+ updatePrefs();
+ return true;
+ } else if (preference == mUnrestrictedData) {
+ mDataSaverBackend.setIsWhitelisted(mAppItem.key, mPackageName, (Boolean) newValue);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public boolean onPreferenceTreeClick(Preference preference) {
+ if (preference == mAppSettings) {
+ // TODO: target towards entire UID instead of just first package
+ getActivity().startActivityAsUser(mAppSettingsIntent, new UserHandle(
+ UserHandle.getUserId(mAppItem.key)));
+ return true;
+ }
+ return super.onPreferenceTreeClick(preference);
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.app_data_usage;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
+
+ @VisibleForTesting
+ void updatePrefs() {
+ updatePrefs(getAppRestrictBackground(), getUnrestrictData());
+ }
+
+ private void updatePrefs(boolean restrictBackground, boolean unrestrictData) {
+ final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted(
+ getContext(), mPackageName, UserHandle.getUserId(mAppItem.key));
+ if (mRestrictBackground != null) {
+ mRestrictBackground.setChecked(!restrictBackground);
+ mRestrictBackground.setDisabledByAdmin(admin);
+ }
+ if (mUnrestrictedData != null) {
+ if (restrictBackground) {
+ mUnrestrictedData.setVisible(false);
+ } else {
+ mUnrestrictedData.setVisible(true);
+ mUnrestrictedData.setChecked(unrestrictData);
+ mUnrestrictedData.setDisabledByAdmin(admin);
+ }
+ }
+ }
+
+ private void addUid(int uid) {
+ String[] packages = getPackageManager().getPackagesForUid(uid);
+ if (packages != null) {
+ for (int i = 0; i < packages.length; i++) {
+ mPackages.add(packages[i]);
+ }
+ }
+ }
+
+ @VisibleForTesting
+ void bindData(int position) {
+ final long backgroundBytes, foregroundBytes;
+ if (mUsageData == null || position >= mUsageData.size()) {
+ backgroundBytes = foregroundBytes = 0;
+ mCycle.setVisible(false);
+ } else {
+ mCycle.setVisible(true);
+ final NetworkCycleDataForUid data = mUsageData.get(position);
+ backgroundBytes = data.getBackgroudUsage();
+ foregroundBytes = data.getForegroudUsage();
+ }
+ final long totalBytes = backgroundBytes + foregroundBytes;
+ final Context context = getContext();
+
+ mTotalUsage.setSummary(DataUsageUtils.formatDataUsage(context, totalBytes));
+ mForegroundUsage.setSummary(DataUsageUtils.formatDataUsage(context, foregroundBytes));
+ mBackgroundUsage.setSummary(DataUsageUtils.formatDataUsage(context, backgroundBytes));
+ }
+
+ private boolean getAppRestrictBackground() {
+ final int uid = mAppItem.key;
+ final int uidPolicy = services.mPolicyManager.getUidPolicy(uid);
+ return (uidPolicy & POLICY_REJECT_METERED_BACKGROUND) != 0;
+ }
+
+ private boolean getUnrestrictData() {
+ if (mDataSaverBackend != null) {
+ return mDataSaverBackend.isWhitelisted(mAppItem.key);
+ }
+ return false;
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+
+ String pkg = mPackages.size() != 0 ? mPackages.valueAt(0) : null;
+ int uid = 0;
+ if (pkg != null) {
+ try {
+ uid = mPackageManager.getPackageUidAsUser(pkg,
+ UserHandle.getUserId(mAppItem.key));
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.w(TAG, "Skipping UID because cannot find package " + pkg);
+ }
+ }
+
+ final boolean showInfoButton = mAppItem.key > 0;
+
+ final Activity activity = getActivity();
+ final Preference pref = EntityHeaderController
+ .newInstance(activity, this, null /* header */)
+ .setRecyclerView(getListView(), getSettingsLifecycle())
+ .setUid(uid)
+ .setHasAppInfoLink(showInfoButton)
+ .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
+ EntityHeaderController.ActionType.ACTION_NONE)
+ .setIcon(mIcon)
+ .setLabel(mLabel)
+ .setPackageName(pkg)
+ .done(activity, getPrefContext());
+ getPreferenceScreen().addPreference(pref);
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsEvent.APP_DATA_USAGE;
+ }
+
+ private AdapterView.OnItemSelectedListener mCycleListener =
+ new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+ bindData(position);
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView<?> parent) {
+ // ignored
+ }
+ };
+
+ private final LoaderManager.LoaderCallbacks<List<NetworkCycleDataForUid>> mUidDataCallbacks =
+ new LoaderManager.LoaderCallbacks<List<NetworkCycleDataForUid>>() {
+ @Override
+ public Loader<List<NetworkCycleDataForUid>> onCreateLoader(int id, Bundle args) {
+ return NetworkCycleDataForUidLoader.builder(getContext())
+ .setUid(mAppItem.key)
+ .setRetrieveDetail(true)
+ .setNetworkTemplate(mTemplate)
+ .setSubscriberId(mTemplate.getSubscriberId())
+ .build();
+ }
+
+ @Override
+ public void onLoadFinished(Loader<List<NetworkCycleDataForUid>> loader,
+ List<NetworkCycleDataForUid> data) {
+ mUsageData = data;
+ mCycleAdapter.updateCycleList(data);
+ bindData(0 /* position */);
+ }
+
+ @Override
+ public void onLoaderReset(Loader<List<NetworkCycleDataForUid>> loader) {
+ }
+ };
+
+ private final LoaderManager.LoaderCallbacks<ArraySet<Preference>> mAppPrefCallbacks =
+ new LoaderManager.LoaderCallbacks<ArraySet<Preference>>() {
+ @Override
+ public Loader<ArraySet<Preference>> onCreateLoader(int i, Bundle bundle) {
+ return new AppPrefLoader(getPrefContext(), mPackages, getPackageManager());
+ }
+
+ @Override
+ public void onLoadFinished(Loader<ArraySet<Preference>> loader,
+ ArraySet<Preference> preferences) {
+ if (preferences != null && mAppList != null) {
+ for (Preference preference : preferences) {
+ mAppList.addPreference(preference);
+ }
+ }
+ }
+
+ @Override
+ public void onLoaderReset(Loader<ArraySet<Preference>> loader) {
+ }
+ };
+
+ @Override
+ public void onDataSaverChanged(boolean isDataSaving) {
+
+ }
+
+ @Override
+ public void onWhitelistStatusChanged(int uid, boolean isWhitelisted) {
+ if (mAppItem.uids.get(uid, false)) {
+ updatePrefs(getAppRestrictBackground(), isWhitelisted);
+ }
+ }
+
+ @Override
+ public void onBlacklistStatusChanged(int uid, boolean isBlacklisted) {
+ if (mAppItem.uids.get(uid, false)) {
+ updatePrefs(isBlacklisted, getUnrestrictData());
+ }
+ }
+}
diff --git a/src/com/android/settings/datausage/ChartDataUsagePreference.java b/src/com/android/settings/datausage/ChartDataUsagePreference.java
index 72a1094..a0cef3a 100644
--- a/src/com/android/settings/datausage/ChartDataUsagePreference.java
+++ b/src/com/android/settings/datausage/ChartDataUsagePreference.java
@@ -23,6 +23,7 @@
import android.text.format.Formatter;
import android.text.style.ForegroundColorSpan;
import android.util.AttributeSet;
+import android.util.FeatureFlagUtils;
import android.util.SparseIntArray;
import androidx.annotation.VisibleForTesting;
@@ -31,7 +32,12 @@
import com.android.settings.R;
import com.android.settings.Utils;
+import com.android.settings.core.FeatureFlags;
import com.android.settings.widget.UsageView;
+import com.android.settingslib.net.NetworkCycleChartData;
+import com.android.settingslib.net.NetworkCycleData;
+
+import java.util.List;
public class ChartDataUsagePreference extends Preference {
@@ -45,7 +51,9 @@
private NetworkPolicy mPolicy;
private long mStart;
private long mEnd;
+ @Deprecated
private NetworkStatsHistory mNetwork;
+ private NetworkCycleChartData mNetworkCycleChartData;
private int mSecondaryColor;
private int mSeriesColor;
@@ -60,13 +68,25 @@
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
- UsageView chart = (UsageView) holder.findViewById(R.id.data_usage);
- if (mNetwork == null) return;
+ final UsageView chart = (UsageView) holder.findViewById(R.id.data_usage);
+ if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DATA_USAGE_V2)) {
+ if (mNetworkCycleChartData == null) {
+ return;
+ }
+ } else {
+ if (mNetwork == null) {
+ return;
+ }
+ }
- int top = getTop();
+ final int top = getTop();
chart.clearPaths();
chart.configureGraph(toInt(mEnd - mStart), top);
- calcPoints(chart);
+ if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DATA_USAGE_V2)) {
+ calcPoints(chart, mNetworkCycleChartData.getUsageBuckets());
+ } else {
+ calcPoints(chart);
+ }
chart.setBottomLabels(new CharSequence[] {
Utils.formatDateRange(getContext(), mStart, mStart),
Utils.formatDateRange(getContext(), mEnd, mEnd),
@@ -76,21 +96,26 @@
}
public int getTop() {
- NetworkStatsHistory.Entry entry = null;
long totalData = 0;
- final int start = mNetwork.getIndexBefore(mStart);
- final int end = mNetwork.getIndexAfter(mEnd);
+ if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DATA_USAGE_V2)) {
+ totalData = mNetworkCycleChartData.getTotalUsage();
+ } else {
+ NetworkStatsHistory.Entry entry = null;
+ final int start = mNetwork.getIndexBefore(mStart);
+ final int end = mNetwork.getIndexAfter(mEnd);
- for (int i = start; i <= end; i++) {
- entry = mNetwork.getValues(i, entry);
+ for (int i = start; i <= end; i++) {
+ entry = mNetwork.getValues(i, entry);
- // increment by current bucket total
- totalData += entry.rxBytes + entry.txBytes;
+ // increment by current bucket total
+ totalData += entry.rxBytes + entry.txBytes;
+ }
}
long policyMax = mPolicy != null ? Math.max(mPolicy.limitBytes, mPolicy.warningBytes) : 0;
return (int) (Math.max(totalData, policyMax) / RESOLUTION);
}
+ @Deprecated
@VisibleForTesting
void calcPoints(UsageView chart) {
SparseIntArray points = new SparseIntArray();
@@ -123,6 +148,33 @@
}
}
+ @VisibleForTesting
+ void calcPoints(UsageView chart, List<NetworkCycleData> usageSummary) {
+ if (usageSummary == null) {
+ return;
+ }
+ final SparseIntArray points = new SparseIntArray();
+ points.put(0, 0);
+
+ long totalData = 0;
+ for (NetworkCycleData data : usageSummary) {
+ final long startTime = data.getStartTime();
+ final long endTime = data.getEndTime();
+
+ // increment by current bucket total
+ totalData += data.getTotalUsage();
+
+ if (points.size() == 1) {
+ points.put(toInt(startTime - mStart) - 1, -1);
+ }
+ points.put(toInt(startTime - mStart + 1), (int) (totalData / RESOLUTION));
+ points.put(toInt(endTime - mStart), (int) (totalData / RESOLUTION));
+ }
+ if (points.size() > 1) {
+ chart.addPath(points);
+ }
+ }
+
private int toInt(long l) {
// Don't need that much resolution on these times.
return (int) (l / (1000 * 60));
@@ -168,6 +220,7 @@
notifyChanged();
}
+ @Deprecated
public void setVisibleRange(long start, long end) {
mStart = start;
mEnd = end;
@@ -182,11 +235,19 @@
return mEnd;
}
+ @Deprecated
public void setNetworkStats(NetworkStatsHistory network) {
mNetwork = network;
notifyChanged();
}
+ public void setNetworkCycleData(NetworkCycleChartData data) {
+ mNetworkCycleChartData = data;
+ mStart = data.getStartTime();
+ mEnd = data.getEndTime();
+ notifyChanged();
+ }
+
public void setColors(int seriesColor, int secondaryColor) {
mSeriesColor = seriesColor;
mSecondaryColor = secondaryColor;
diff --git a/src/com/android/settings/datausage/CycleAdapter.java b/src/com/android/settings/datausage/CycleAdapter.java
index e5c4e43..9378dea 100644
--- a/src/com/android/settings/datausage/CycleAdapter.java
+++ b/src/com/android/settings/datausage/CycleAdapter.java
@@ -25,9 +25,11 @@
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settingslib.net.ChartData;
+import com.android.settingslib.net.NetworkCycleData;
import java.time.ZonedDateTime;
import java.util.Iterator;
+import java.util.List;
import java.util.Objects;
public class CycleAdapter extends ArrayAdapter<CycleAdapter.CycleItem> {
@@ -68,7 +70,8 @@
* {@link NetworkStatsHistory} data. Always selects the newest item,
* updating the inspection range on chartData.
*/
- public boolean updateCycleList(NetworkPolicy policy, ChartData chartData) {
+ @Deprecated
+ public boolean updateCycleList(NetworkPolicy policy, ChartData chartData) {
// stash away currently selected cycle to try restoring below
final CycleAdapter.CycleItem previousItem = (CycleAdapter.CycleItem)
mSpinner.getSelectedItem();
@@ -150,6 +153,37 @@
}
/**
+ * Rebuild list based on network data. Always selects the newest item,
+ * updating the inspection range on chartData.
+ */
+ public boolean updateCycleList(List<? extends NetworkCycleData> cycleData) {
+ // stash away currently selected cycle to try restoring below
+ final CycleAdapter.CycleItem previousItem = (CycleAdapter.CycleItem)
+ mSpinner.getSelectedItem();
+ clear();
+
+ final Context context = getContext();
+ for (NetworkCycleData data : cycleData) {
+ add(new CycleAdapter.CycleItem(context, data.getStartTime(), data.getEndTime()));
+ }
+
+ // force pick the current cycle (first item)
+ if (getCount() > 0) {
+ final int position = findNearestPosition(previousItem);
+ mSpinner.setSelection(position);
+
+ // only force-update cycle when changed; skipping preserves any
+ // user-defined inspection region.
+ final CycleAdapter.CycleItem selectedItem = getItem(position);
+ if (!Objects.equals(selectedItem, previousItem)) {
+ mListener.onItemSelected(null, null, position, 0);
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
* List item that reflects a specific data usage cycle.
*/
public static class CycleItem implements Comparable<CycleItem> {
diff --git a/src/com/android/settings/datausage/DataUsageList.java b/src/com/android/settings/datausage/DataUsageList.java
index a3c9612..0458207 100644
--- a/src/com/android/settings/datausage/DataUsageList.java
+++ b/src/com/android/settings/datausage/DataUsageList.java
@@ -14,18 +14,15 @@
package com.android.settings.datausage;
-import static android.net.ConnectivityManager.TYPE_MOBILE;
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
import static android.net.TrafficStats.UID_REMOVED;
import static android.net.TrafficStats.UID_TETHERING;
-import static android.telephony.TelephonyManager.SIM_STATE_READY;
import android.app.ActivityManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.UserInfo;
import android.graphics.Color;
-import android.net.ConnectivityManager;
import android.net.INetworkStatsSession;
import android.net.NetworkPolicy;
import android.net.NetworkStats;
@@ -35,13 +32,11 @@
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.RemoteException;
-import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
import android.text.format.DateUtils;
import android.util.Log;
import android.util.SparseArray;
@@ -352,7 +347,7 @@
/**
* Bind the given {@link NetworkStats}, or {@code null} to clear list.
*/
- public void bindStats(NetworkStats stats, int[] restrictedUids) {
+ private void bindStats(NetworkStats stats, int[] restrictedUids) {
ArrayList<AppItem> items = new ArrayList<>();
long largest = 0;
@@ -464,7 +459,7 @@
* @param entry the network stats entry to extract data usage from.
* @param itemCategory the item is categorized on the list view by this category. Must be
*/
- private static long accumulate(int collapseKey, final SparseArray<AppItem> knownItems,
+ private long accumulate(int collapseKey, final SparseArray<AppItem> knownItems,
NetworkStats.Entry entry, int itemCategory, ArrayList<AppItem> items, long largest) {
final int uid = entry.uid;
AppItem item = knownItems.get(collapseKey);
diff --git a/src/com/android/settings/datausage/DataUsageListV2.java b/src/com/android/settings/datausage/DataUsageListV2.java
index c3b2bb2..aef9519 100644
--- a/src/com/android/settings/datausage/DataUsageListV2.java
+++ b/src/com/android/settings/datausage/DataUsageListV2.java
@@ -14,12 +14,11 @@
package com.android.settings.datausage;
-import static android.net.ConnectivityManager.TYPE_MOBILE;
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
import static android.net.TrafficStats.UID_REMOVED;
import static android.net.TrafficStats.UID_TETHERING;
-import static android.telephony.TelephonyManager.SIM_STATE_READY;
+import android.app.Activity;
import android.app.ActivityManager;
import android.app.usage.NetworkStats;
import android.app.usage.NetworkStats.Bucket;
@@ -28,15 +27,11 @@
import android.content.pm.UserInfo;
import android.graphics.Color;
import android.net.ConnectivityManager;
-import android.net.INetworkStatsSession;
import android.net.NetworkPolicy;
-import android.net.NetworkStatsHistory;
import android.net.NetworkTemplate;
-import android.net.TrafficStats;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.RemoteException;
-import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -64,9 +59,10 @@
import com.android.settings.datausage.CycleAdapter.SpinnerInterface;
import com.android.settings.widget.LoadingViewController;
import com.android.settingslib.AppItem;
-import com.android.settingslib.net.ChartData;
import com.android.settingslib.net.ChartDataLoaderCompat;
-import com.android.settingslib.net.NetworkStatsDetailLoader;
+import com.android.settingslib.net.NetworkCycleChartDataLoader;
+import com.android.settingslib.net.NetworkCycleChartData;
+import com.android.settingslib.net.NetworkStatsSummaryLoader;
import com.android.settingslib.net.UidDetailProvider;
import java.util.ArrayList;
@@ -101,8 +97,8 @@
}
};
- private INetworkStatsSession mStatsSession;
private ChartDataUsagePreference mChart;
+ private TelephonyManager mTelephonyManager;
@VisibleForTesting
NetworkTemplate mTemplate;
@@ -110,7 +106,7 @@
int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
@VisibleForTesting
int mNetworkType;
- private ChartData mChartData;
+ private List<NetworkCycleChartData> mCycleData;
private LoadingViewController mLoadingViewController;
private UidDetailProvider mUidDetailProvider;
@@ -120,7 +116,6 @@
private PreferenceGroup mApps;
private View mHeader;
-
@Override
public int getMetricsCategory() {
return MetricsEvent.DATA_USAGE_LIST;
@@ -129,21 +124,15 @@
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- final Context context = getActivity();
+ final Activity activity = getActivity();
if (!isBandwidthControlEnabled()) {
Log.w(TAG, "No bandwidth control; leaving");
- getActivity().finish();
+ activity.finish();
}
- try {
- mStatsSession = services.mStatsService.openSession();
- } catch (RemoteException e) {
- throw new RuntimeException(e);
- }
-
- mUidDetailProvider = new UidDetailProvider(context);
-
+ mUidDetailProvider = new UidDetailProvider(activity);
+ mTelephonyManager = activity.getSystemService(TelephonyManager.class);
mUsageAmount = findPreference(KEY_USAGE_AMOUNT);
mChart = (ChartDataUsagePreference) findPreference(KEY_CHART_DATA);
mApps = (PreferenceGroup) findPreference(KEY_APPS_GROUP);
@@ -233,8 +222,6 @@
mUidDetailProvider.clearCache();
mUidDetailProvider = null;
- TrafficStats.closeQuietly(mStatsSession);
-
super.onDestroy();
}
@@ -264,8 +251,7 @@
}
/**
- * Update body content based on current tab. Loads
- * {@link NetworkStatsHistory} and {@link NetworkPolicy} from system, and
+ * Update body content based on current tab. Loads network cycle data from system, and
* binds them to visible controls.
*/
private void updateBody() {
@@ -277,7 +263,7 @@
// TODO: consider chaining two loaders together instead of reloading
// network history when showing app detail.
getLoaderManager().restartLoader(LOADER_CHART_DATA,
- ChartDataLoaderCompat.buildArgs(mTemplate, null), mChartDataCallbacks);
+ ChartDataLoaderCompat.buildArgs(mTemplate, null), mNetworkCycleDataCallbacks);
// detail mode can change visible menus, invalidate
getActivity().invalidateOptionsMenu();
@@ -316,7 +302,7 @@
}
// generate cycle list based on policy and available history
- if (mCycleAdapter.updateCycleList(policy, mChartData)) {
+ if (mCycleAdapter.updateCycleList(mCycleData)) {
updateDetailData();
}
}
@@ -329,30 +315,20 @@
private void updateDetailData() {
if (LOGD) Log.d(TAG, "updateDetailData()");
- final long start = mChart.getInspectStart();
- final long end = mChart.getInspectEnd();
- final long now = System.currentTimeMillis();
-
- final Context context = getActivity();
-
- NetworkStatsHistory.Entry entry = null;
- if (mChartData != null) {
- entry = mChartData.network.getValues(start, end, now, null);
- }
-
// kick off loader for detailed stats
getLoaderManager().restartLoader(LOADER_SUMMARY, null /* args */,
mNetworkStatsDetailCallbacks);
- final long totalBytes = entry != null ? entry.rxBytes + entry.txBytes : 0;
- final CharSequence totalPhrase = DataUsageUtils.formatDataUsage(context, totalBytes);
+ final long totalBytes = mCycleData != null
+ ? mCycleData.get(mCycleSpinner.getSelectedItemPosition()).getTotalUsage() : 0;
+ final CharSequence totalPhrase = DataUsageUtils.formatDataUsage(getActivity(), totalBytes);
mUsageAmount.setTitle(getString(R.string.data_used_template, totalPhrase));
}
/**
* Bind the given {@link NetworkStats}, or {@code null} to clear list.
*/
- public void bindStats(NetworkStats stats, int[] restrictedUids) {
+ private void bindStats(NetworkStats stats, int[] restrictedUids) {
mApps.removeAll();
if (stats == null) {
if (LOGD) {
@@ -448,11 +424,11 @@
private void startAppDataUsage(AppItem item) {
final Bundle args = new Bundle();
- args.putParcelable(AppDataUsage.ARG_APP_ITEM, item);
- args.putParcelable(AppDataUsage.ARG_NETWORK_TEMPLATE, mTemplate);
+ args.putParcelable(AppDataUsageV2.ARG_APP_ITEM, item);
+ args.putParcelable(AppDataUsageV2.ARG_NETWORK_TEMPLATE, mTemplate);
new SubSettingLauncher(getContext())
- .setDestination(AppDataUsage.class.getName())
+ .setDestination(AppDataUsageV2.class.getName())
.setTitleRes(R.string.app_data_usage)
.setArguments(args)
.setSourceMetricsCategory(getMetricsCategory())
@@ -496,7 +472,7 @@
// update chart to show selected cycle, and update detail data
// to match updated sweep bounds.
- mChart.setVisibleRange(cycle.start, cycle.end);
+ mChart.setNetworkCycleData(mCycleData.get(position));
updateDetailData();
}
@@ -507,27 +483,28 @@
}
};
- private final LoaderCallbacks<ChartData> mChartDataCallbacks = new LoaderCallbacks<
- ChartData>() {
+ private final LoaderCallbacks<List<NetworkCycleChartData>> mNetworkCycleDataCallbacks =
+ new LoaderCallbacks<List<NetworkCycleChartData>>() {
@Override
- public Loader<ChartData> onCreateLoader(int id, Bundle args) {
- return new ChartDataLoaderCompat(getActivity(), mStatsSession, args);
+ public Loader<List<NetworkCycleChartData>> onCreateLoader(int id, Bundle args) {
+ return NetworkCycleChartDataLoader.builder(getContext())
+ .setNetworkTemplate(mTemplate)
+ .setSubscriberId(mTelephonyManager.getSubscriberId(mSubId))
+ .build();
}
@Override
- public void onLoadFinished(Loader<ChartData> loader, ChartData data) {
+ public void onLoadFinished(Loader<List<NetworkCycleChartData>> loader,
+ List<NetworkCycleChartData> data) {
mLoadingViewController.showContent(false /* animate */);
- mChartData = data;
- mChart.setNetworkStats(mChartData.network);
-
+ mCycleData = data;
// calculate policy cycles based on available data
updatePolicy();
}
@Override
- public void onLoaderReset(Loader<ChartData> loader) {
- mChartData = null;
- mChart.setNetworkStats(null);
+ public void onLoaderReset(Loader<List<NetworkCycleChartData>> loader) {
+ mCycleData = null;
}
};
@@ -535,11 +512,11 @@
new LoaderCallbacks<NetworkStats>() {
@Override
public Loader<NetworkStats> onCreateLoader(int id, Bundle args) {
- return new NetworkStatsDetailLoader.Builder(getContext())
+ return new NetworkStatsSummaryLoader.Builder(getContext())
.setStartTime(mChart.getInspectStart())
.setEndTime(mChart.getInspectEnd())
.setNetworkType(mNetworkType)
- .setSubscriptionId(mSubId)
+ .setSubscriberId(mTelephonyManager.getSubscriberId(mSubId))
.build();
}
diff --git a/src/com/android/settings/datausage/DataUsagePreference.java b/src/com/android/settings/datausage/DataUsagePreference.java
index 5bd8dcd..aa4e646 100644
--- a/src/com/android/settings/datausage/DataUsagePreference.java
+++ b/src/com/android/settings/datausage/DataUsagePreference.java
@@ -51,8 +51,7 @@
}
@Override
- public void setTemplate(NetworkTemplate template, int subId,
- NetworkServices services) {
+ public void setTemplate(NetworkTemplate template, int subId, NetworkServices services) {
mTemplate = template;
mSubId = subId;
final DataUsageController controller = getDataUsageController();
@@ -66,7 +65,7 @@
DataUsageUtils.formatDataUsage(getContext(), usageInfo.usageLevel),
usageInfo.period));
}
- final long usageLevel = controller.getHistoriclUsageLevel(template);
+ final long usageLevel = controller.getHistoricalUsageLevel(template);
if (usageLevel > 0L) {
setIntent(getIntent());
} else {
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index c7c906f..97715db 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -283,8 +283,7 @@
formatUsedData()));
} else {
final DataUsageController.DataUsageInfo info =
- mDataController
- .getDataUsageInfo(NetworkTemplate.buildTemplateWifiWildcard());
+ mDataController.getWifiDataUsageInfo();
if (info == null) {
mSummaryLoader.setSummary(this, null);
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
index 5b54ebb..92d3e29 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
@@ -178,7 +178,7 @@
carrierInfo.setVisibility(View.GONE);
limitInfo.setVisibility(View.GONE);
- final long usageLevel = getHistoriclUsageLevel();
+ final long usageLevel = getHistoricalUsageLevel();
if (usageLevel > 0L) {
launchButton.setOnClickListener((view) -> {
launchWifiDataUsage(getContext());
@@ -339,9 +339,9 @@
}
@VisibleForTesting
- long getHistoriclUsageLevel() {
+ long getHistoricalUsageLevel() {
final DataUsageController controller = new DataUsageController(getContext());
- return controller.getHistoriclUsageLevel(NetworkTemplate.buildTemplateWifiWildcard());
+ return controller.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard());
}
}
diff --git a/src/com/android/settings/datausage/DataUsageUtils.java b/src/com/android/settings/datausage/DataUsageUtils.java
index 096bdfe..3001d2e 100644
--- a/src/com/android/settings/datausage/DataUsageUtils.java
+++ b/src/com/android/settings/datausage/DataUsageUtils.java
@@ -18,6 +18,8 @@
import static android.net.ConnectivityManager.TYPE_WIFI;
import static android.telephony.TelephonyManager.SIM_STATE_READY;
+import android.app.usage.NetworkStats.Bucket;
+import android.app.usage.NetworkStatsManager;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.INetworkStatsService;
@@ -33,8 +35,11 @@
import android.text.BidiFormatter;
import android.text.format.Formatter;
import android.text.format.Formatter.BytesResult;
+import android.util.FeatureFlagUtils;
import android.util.Log;
+import com.android.settings.core.FeatureFlags;
+
import java.util.List;
/**
@@ -69,28 +74,48 @@
}
final ConnectivityManager conn = ConnectivityManager.from(context);
- final boolean hasEthernet = conn.isNetworkSupported(ConnectivityManager.TYPE_ETHERNET);
-
- final long ethernetBytes;
- try {
- INetworkStatsService statsService = INetworkStatsService.Stub.asInterface(
- ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
-
- INetworkStatsSession statsSession = statsService.openSession();
- if (statsSession != null) {
- ethernetBytes = statsSession.getSummaryForNetwork(
- NetworkTemplate.buildTemplateEthernet(), Long.MIN_VALUE, Long.MAX_VALUE)
- .getTotalBytes();
- TrafficStats.closeQuietly(statsSession);
- } else {
- ethernetBytes = 0;
- }
- } catch (RemoteException e) {
- throw new RuntimeException(e);
+ if (!conn.isNetworkSupported(ConnectivityManager.TYPE_ETHERNET)) {
+ return false;
}
- // only show ethernet when both hardware present and traffic has occurred
- return hasEthernet && ethernetBytes > 0;
+ if (FeatureFlagUtils.isEnabled(context, FeatureFlags.DATA_USAGE_V2)) {
+ final TelephonyManager telephonyManager = TelephonyManager.from(context);;
+ final NetworkStatsManager networkStatsManager =
+ context.getSystemService(NetworkStatsManager.class);
+ boolean hasEthernetUsage = false;
+ try {
+ final Bucket bucket = networkStatsManager.querySummaryForUser(
+ ConnectivityManager.TYPE_ETHERNET, telephonyManager.getSubscriberId(),
+ 0L /* startTime */, System.currentTimeMillis() /* endTime */);
+ if (bucket != null) {
+ hasEthernetUsage = bucket.getRxBytes() > 0 || bucket.getTxBytes() > 0;
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG, "Exception querying network detail.", e);
+ }
+ return hasEthernetUsage;
+ } else {
+ final long ethernetBytes;
+ try {
+ INetworkStatsService statsService = INetworkStatsService.Stub.asInterface(
+ ServiceManager.getService(Context.NETWORK_STATS_SERVICE));
+
+ INetworkStatsSession statsSession = statsService.openSession();
+ if (statsSession != null) {
+ ethernetBytes = statsSession.getSummaryForNetwork(
+ NetworkTemplate.buildTemplateEthernet(), Long.MIN_VALUE, Long.MAX_VALUE)
+ .getTotalBytes();
+ TrafficStats.closeQuietly(statsSession);
+ } else {
+ ethernetBytes = 0;
+ }
+ } catch (RemoteException e) {
+ throw new RuntimeException(e);
+ }
+
+ // only show ethernet when both hardware present and traffic has occurred
+ return ethernetBytes > 0;
+ }
}
/**
diff --git a/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceController.java b/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceController.java
index 233111a..a819f10 100644
--- a/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceController.java
+++ b/src/com/android/settings/datetime/timezone/TimeZoneInfoPreferenceController.java
@@ -17,10 +17,10 @@
package com.android.settings.datetime.timezone;
import android.content.Context;
-import android.icu.impl.OlsonTimeZone;
import android.icu.text.DateFormat;
import android.icu.text.DisplayContext;
import android.icu.text.SimpleDateFormat;
+import android.icu.util.BasicTimeZone;
import android.icu.util.Calendar;
import android.icu.util.TimeZone;
import android.icu.util.TimeZoneTransition;
@@ -115,17 +115,17 @@
}
private TimeZoneTransition findNextDstTransition(TimeZone timeZone) {
- if (!(timeZone instanceof OlsonTimeZone)) {
+ if (!(timeZone instanceof BasicTimeZone)) {
return null;
}
- final OlsonTimeZone olsonTimeZone = (OlsonTimeZone) timeZone;
- TimeZoneTransition transition = olsonTimeZone.getNextTransition(
+ final BasicTimeZone basicTimeZone = (BasicTimeZone) timeZone;
+ TimeZoneTransition transition = basicTimeZone.getNextTransition(
mDate.getTime(), /* inclusive */ false);
do {
if (transition.getTo().getDSTSavings() != transition.getFrom().getDSTSavings()) {
break;
}
- transition = olsonTimeZone.getNextTransition(
+ transition = basicTimeZone.getNextTransition(
transition.getTime(), /*inclusive */ false);
} while (transition != null);
return transition;
diff --git a/src/com/android/settings/development/AngleEnabledAppPreferenceController.java b/src/com/android/settings/development/AngleEnabledAppPreferenceController.java
new file mode 100644
index 0000000..3a7f6bf
--- /dev/null
+++ b/src/com/android/settings/development/AngleEnabledAppPreferenceController.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.android.settings.development.DevelopmentOptionsActivityRequestCodes
+ .REQUEST_CODE_ANGLE_ENABLED_APP;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.provider.Settings;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class AngleEnabledAppPreferenceController extends DeveloperOptionsPreferenceController
+ implements PreferenceControllerMixin, OnActivityResultListener {
+
+ private static final String ANGLE_ENABLED_APP_KEY = "angle_enabled_app";
+
+ private final DevelopmentSettingsDashboardFragment mFragment;
+ private final PackageManager mPackageManager;
+
+ public AngleEnabledAppPreferenceController(Context context,
+ DevelopmentSettingsDashboardFragment fragment) {
+ super(context);
+ mFragment = fragment;
+ mPackageManager = mContext.getPackageManager();
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return ANGLE_ENABLED_APP_KEY;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (ANGLE_ENABLED_APP_KEY.equals(preference.getKey())) {
+ // pass it on to settings
+ final Intent intent = getActivityStartIntent();
+ mFragment.startActivityForResult(intent, REQUEST_CODE_ANGLE_ENABLED_APP);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ updatePreferenceSummary();
+ }
+
+ @Override
+ public boolean onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode != REQUEST_CODE_ANGLE_ENABLED_APP || resultCode != Activity.RESULT_OK) {
+ return false;
+ }
+ Settings.Global.putString(mContext.getContentResolver(), Settings.Global.ANGLE_ENABLED_APP,
+ data.getAction());
+ updatePreferenceSummary();
+ return true;
+ }
+
+ @Override
+ protected void onDeveloperOptionsSwitchDisabled() {
+ super.onDeveloperOptionsSwitchDisabled();
+ mPreference.setSummary(mContext.getResources().getString(
+ R.string.angle_enabled_app_not_set));
+ }
+
+ @VisibleForTesting
+ Intent getActivityStartIntent() {
+ Intent intent = new Intent(mContext, AppPicker.class);
+ intent.putExtra(AppPicker.EXTRA_NON_SYSTEM, true /* value */);
+ return intent;
+ }
+
+ private void updatePreferenceSummary() {
+ final String angleEnabledApp = Settings.Global.getString(
+ mContext.getContentResolver(), Settings.Global.ANGLE_ENABLED_APP);
+ if (angleEnabledApp != null && angleEnabledApp.length() > 0) {
+ mPreference.setSummary(mContext.getResources().getString(
+ R.string.angle_enabled_app_set,
+ getAppLabel(angleEnabledApp)));
+ } else {
+ mPreference.setSummary(mContext.getResources().getString(
+ R.string.angle_enabled_app_not_set));
+ }
+ }
+
+ private String getAppLabel(String angleEnabledApp) {
+ try {
+ final ApplicationInfo ai = mPackageManager.getApplicationInfo(angleEnabledApp,
+ PackageManager.GET_DISABLED_COMPONENTS);
+ final CharSequence lab = mPackageManager.getApplicationLabel(ai);
+ return lab != null ? lab.toString() : angleEnabledApp;
+ } catch (PackageManager.NameNotFoundException e) {
+ return angleEnabledApp;
+ }
+ }
+}
diff --git a/src/com/android/settings/development/AppPicker.java b/src/com/android/settings/development/AppPicker.java
index 433f31a..04f318f 100644
--- a/src/com/android/settings/development/AppPicker.java
+++ b/src/com/android/settings/development/AppPicker.java
@@ -45,9 +45,11 @@
public static final String EXTRA_REQUESTIING_PERMISSION
= "com.android.settings.extra.REQUESTIING_PERMISSION";
public static final String EXTRA_DEBUGGABLE = "com.android.settings.extra.DEBUGGABLE";
+ public static final String EXTRA_NON_SYSTEM = "com.android.settings.extra.NON_SYSTEM";
private String mPermissionName;
private boolean mDebuggableOnly;
+ private boolean mNonSystemOnly;
@Override
protected void onCreate(Bundle icicle) {
@@ -55,6 +57,7 @@
mPermissionName = getIntent().getStringExtra(EXTRA_REQUESTIING_PERMISSION);
mDebuggableOnly = getIntent().getBooleanExtra(EXTRA_DEBUGGABLE, false);
+ mNonSystemOnly = getIntent().getBooleanExtra(EXTRA_NON_SYSTEM, false);
mAdapter = new AppListAdapter(this);
if (mAdapter.getCount() <= 0) {
@@ -113,6 +116,11 @@
}
}
+ // Filter out apps that are system apps if requested
+ if (mNonSystemOnly && ai.isSystemApp()) {
+ continue;
+ }
+
// Filter out apps that do not request the permission if required.
if (mPermissionName != null) {
boolean requestsPermission = false;
diff --git a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
index b0e35d3..0fcec05 100644
--- a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
@@ -66,20 +66,6 @@
}
}
- @Override
- protected void onDeveloperOptionsSwitchDisabled() {
- super.onDeveloperOptionsSwitchDisabled();
- final boolean offloadSupported =
- SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false);
- if (offloadSupported) {
- ((SwitchPreference) mPreference).setChecked(false);
- SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, "false");
- } else {
- ((SwitchPreference) mPreference).setChecked(true);
- SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, "true");
- }
- }
-
public void onA2dpHwDialogConfirmed() {
final boolean offloadDisabled =
SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
diff --git a/src/com/android/settings/development/CbrsDataSwitchPreferenceController.java b/src/com/android/settings/development/CbrsDataSwitchPreferenceController.java
index ec1f8e0..d5c78e8 100644
--- a/src/com/android/settings/development/CbrsDataSwitchPreferenceController.java
+++ b/src/com/android/settings/development/CbrsDataSwitchPreferenceController.java
@@ -54,12 +54,12 @@
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean state = (Boolean)newValue;
- return mTelephonyManager.setAlternativeNetworkAccessState(state);
+ return mTelephonyManager.setAlternativeNetworkState(state);
}
@Override
public void updateState(Preference preference) {
- boolean state = mTelephonyManager.isAlternativeNetworkAccessEnabled();
+ boolean state = mTelephonyManager.isAlternativeNetworkEnabled();
((SwitchPreference) mPreference).setChecked(state);
}
diff --git a/src/com/android/settings/development/DevelopmentOptionsActivityRequestCodes.java b/src/com/android/settings/development/DevelopmentOptionsActivityRequestCodes.java
index b7b2759..6e3ec93 100644
--- a/src/com/android/settings/development/DevelopmentOptionsActivityRequestCodes.java
+++ b/src/com/android/settings/development/DevelopmentOptionsActivityRequestCodes.java
@@ -25,4 +25,6 @@
int REQUEST_CODE_DEBUG_APP = 1;
int REQUEST_MOCK_LOCATION_APP = 2;
+
+ int REQUEST_CODE_ANGLE_ENABLED_APP = 3;
}
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 873cec4..cc8bd2e 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -405,6 +405,7 @@
controllers.add(new SelectDebugAppPreferenceController(context, fragment));
controllers.add(new WaitForDebuggerPreferenceController(context));
controllers.add(new EnableGpuDebugLayersPreferenceController(context));
+ controllers.add(new AngleEnabledAppPreferenceController(context, fragment));
controllers.add(new VerifyAppsOverUsbPreferenceController(context));
controllers.add(new LogdSizePreferenceController(context));
controllers.add(new LogPersistPreferenceController(context, fragment, lifecycle));
diff --git a/src/com/android/settings/development/featureflags/FeatureFlagPersistent.java b/src/com/android/settings/development/featureflags/FeatureFlagPersistent.java
index 7670ef1..d27af64 100644
--- a/src/com/android/settings/development/featureflags/FeatureFlagPersistent.java
+++ b/src/com/android/settings/development/featureflags/FeatureFlagPersistent.java
@@ -23,6 +23,8 @@
import androidx.annotation.VisibleForTesting;
+import androidx.annotation.VisibleForTesting;
+
import com.android.settings.core.FeatureFlags;
import java.util.HashSet;
diff --git a/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java b/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java
index 8fdd19f..25090dc 100644
--- a/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java
@@ -73,6 +73,11 @@
return true;
}
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+
public static String getDeviceModel() {
FutureTask<String> msvSuffixTask = new FutureTask<String>(new Callable<String>() {
@Override
diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
index 8e60b06..6f5f346 100644
--- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
@@ -29,15 +29,13 @@
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.DeviceInfoUtils;
-import com.android.settingslib.core.AbstractPreferenceController;
import java.util.ArrayList;
import java.util.List;
-public class PhoneNumberPreferenceController extends AbstractPreferenceController implements
- PreferenceControllerMixin {
+public class PhoneNumberPreferenceController extends BasePreferenceController {
private final static String KEY_PHONE_NUMBER = "phone_number";
@@ -45,21 +43,20 @@
private final SubscriptionManager mSubscriptionManager;
private final List<Preference> mPreferenceList = new ArrayList<>();
- public PhoneNumberPreferenceController(Context context) {
- super(context);
- mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
- mSubscriptionManager = (SubscriptionManager) context.getSystemService(
- Context.TELEPHONY_SUBSCRIPTION_SERVICE);
+ public PhoneNumberPreferenceController(Context context, String key) {
+ super(context, key);
+ mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
+ mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class);
}
@Override
- public String getPreferenceKey() {
- return KEY_PHONE_NUMBER;
+ public int getAvailabilityStatus() {
+ return mTelephonyManager.isVoiceCapable() ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
}
@Override
- public boolean isAvailable() {
- return mTelephonyManager.isVoiceCapable();
+ public CharSequence getSummary() {
+ return getFirstPhoneNumber();
}
@Override
@@ -89,10 +86,26 @@
}
}
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+
+ private CharSequence getFirstPhoneNumber() {
+ final List<SubscriptionInfo> subscriptionInfoList =
+ mSubscriptionManager.getActiveSubscriptionInfoList();
+ if (subscriptionInfoList == null) {
+ return mContext.getText(R.string.device_info_default);
+ }
+
+ // For now, We only return first result for slice view.
+ return getFormattedPhoneNumber(subscriptionInfoList.get(0));
+ }
+
private CharSequence getPhoneNumber(int simSlot) {
final SubscriptionInfo subscriptionInfo = getSubscriptionInfo(simSlot);
if (subscriptionInfo == null) {
- return mContext.getString(R.string.device_info_default);
+ return mContext.getText(R.string.device_info_default);
}
return getFormattedPhoneNumber(subscriptionInfo);
diff --git a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
index 5503ea9..37f80b7 100644
--- a/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
+++ b/src/com/android/settings/deviceinfo/aboutphone/MyDeviceInfoFragment.java
@@ -41,7 +41,6 @@
import com.android.settings.deviceinfo.FeedbackPreferenceController;
import com.android.settings.deviceinfo.IpAddressPreferenceController;
import com.android.settings.deviceinfo.ManualPreferenceController;
-import com.android.settings.deviceinfo.PhoneNumberPreferenceController;
import com.android.settings.deviceinfo.RegulatoryInfoPreferenceController;
import com.android.settings.deviceinfo.SafetyInfoPreferenceController;
import com.android.settings.deviceinfo.UptimePreferenceController;
@@ -110,7 +109,6 @@
Lifecycle lifecycle) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new EmergencyInfoPreferenceController(context));
- controllers.add(new PhoneNumberPreferenceController(context));
controllers.add(new BrandedAccountPreferenceController(context));
DeviceNamePreferenceController deviceNamePreferenceController =
new DeviceNamePreferenceController(context);
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceController.java
index d2d3bf4..7d12d43 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceController.java
@@ -56,4 +56,9 @@
FirmwareVersionDialogFragment.show(mFragment);
return true;
}
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
}
diff --git a/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceController.java
index 1a5152e..1dd3d98 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageSummaryDonutPreferenceController.java
@@ -43,6 +43,20 @@
super(context);
}
+ /**
+ * Converts a used storage amount to a formatted text.
+ *
+ * @param context Context
+ * @param usedBytes used bytes of storage
+ * @return a formatted text.
+ */
+ public static CharSequence convertUsedBytesToFormattedText(Context context, long usedBytes) {
+ final Formatter.BytesResult result = Formatter.formatBytes(context.getResources(),
+ usedBytes, 0);
+ return TextUtils.expandTemplate(context.getText(R.string.storage_size_large_alternate),
+ result.value, result.units);
+ }
+
@Override
public void displayPreference(PreferenceScreen screen) {
mSummary = (StorageSummaryDonutPreference) screen.findPreference("pref_summary");
@@ -53,11 +67,7 @@
public void updateState(Preference preference) {
super.updateState(preference);
StorageSummaryDonutPreference summary = (StorageSummaryDonutPreference) preference;
- final Formatter.BytesResult result = Formatter.formatBytes(mContext.getResources(),
- mUsedBytes, 0);
- summary.setTitle(TextUtils.expandTemplate(
- mContext.getText(R.string.storage_size_large_alternate), result.value,
- result.units));
+ summary.setTitle(convertUsedBytesToFormattedText(mContext, mUsedBytes));
summary.setSummary(mContext.getString(R.string.storage_volume_total,
Formatter.formatShortFileSize(mContext, mTotalBytes)));
summary.setPercent(mUsedBytes, mTotalBytes);
@@ -83,6 +93,7 @@
/**
* Updates the state of the donut preference for the next update.
+ *
* @param used Total number of used bytes on the summarized volume.
* @param total Total number of bytes on the summarized volume.
*/
@@ -94,6 +105,7 @@
/**
* Updates the state of the donut preference for the next update using volume to summarize.
+ *
* @param volume VolumeInfo to use to populate the informayion.
*/
public void updateSizes(StorageVolumeProvider svp, VolumeInfo volume) {
diff --git a/src/com/android/settings/gestures/ReachGesturePreferenceController.java b/src/com/android/settings/gestures/WakeLockScreenGesturePreferenceController.java
similarity index 69%
copy from src/com/android/settings/gestures/ReachGesturePreferenceController.java
copy to src/com/android/settings/gestures/WakeLockScreenGesturePreferenceController.java
index 6bfe4f3..1f1630e 100644
--- a/src/com/android/settings/gestures/ReachGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/WakeLockScreenGesturePreferenceController.java
@@ -16,7 +16,7 @@
package com.android.settings.gestures;
-import static android.provider.Settings.Secure.DOZE_REACH_GESTURE;
+import static android.provider.Settings.Secure.DOZE_WAKE_LOCK_SCREEN_GESTURE;
import android.annotation.UserIdInt;
import android.content.Context;
@@ -26,33 +26,34 @@
import com.android.internal.hardware.AmbientDisplayConfiguration;
-public class ReachGesturePreferenceController extends GesturePreferenceController {
+public class WakeLockScreenGesturePreferenceController extends GesturePreferenceController {
private static final int ON = 1;
private static final int OFF = 0;
- private static final String PREF_KEY_VIDEO = "gesture_reach_video";
- private final String mReachUpPrefKey;
+ private static final String PREF_KEY_VIDEO = "gesture_wake_lock_screen_video";
+ private final String mWakeLockScreenPrefKey;
private AmbientDisplayConfiguration mAmbientConfig;
@UserIdInt
private final int mUserId;
- public ReachGesturePreferenceController(Context context, String key) {
+ public WakeLockScreenGesturePreferenceController(Context context, String key) {
super(context, key);
mUserId = UserHandle.myUserId();
- mReachUpPrefKey = key;
+ mWakeLockScreenPrefKey = key;
}
- public ReachGesturePreferenceController setConfig(AmbientDisplayConfiguration config) {
+ public WakeLockScreenGesturePreferenceController
+ setConfig(AmbientDisplayConfiguration config) {
mAmbientConfig = config;
return this;
}
@Override
public int getAvailabilityStatus() {
- // No hardware support for Reach Gesture
- if (!getAmbientConfig().reachGestureAvailable()) {
+ // No hardware support for this Gesture
+ if (!getAmbientConfig().wakeLockScreenGestureAvailable()) {
return UNSUPPORTED_ON_DEVICE;
}
@@ -61,7 +62,7 @@
@Override
public boolean isSliceable() {
- return TextUtils.equals(getPreferenceKey(), "gesture_reach");
+ return TextUtils.equals(getPreferenceKey(), "gesture_wake_lock_screen");
}
@Override
@@ -71,17 +72,17 @@
@Override
public boolean isChecked() {
- return getAmbientConfig().reachGestureEnabled(mUserId);
+ return getAmbientConfig().wakeLockScreenGestureEnabled(mUserId);
}
@Override
public String getPreferenceKey() {
- return mReachUpPrefKey;
+ return mWakeLockScreenPrefKey;
}
@Override
public boolean setChecked(boolean isChecked) {
- return Settings.Secure.putInt(mContext.getContentResolver(), DOZE_REACH_GESTURE,
+ return Settings.Secure.putInt(mContext.getContentResolver(), DOZE_WAKE_LOCK_SCREEN_GESTURE,
isChecked ? ON : OFF);
}
diff --git a/src/com/android/settings/gestures/ReachGestureSettings.java b/src/com/android/settings/gestures/WakeLockScreenGestureSettings.java
similarity index 84%
rename from src/com/android/settings/gestures/ReachGestureSettings.java
rename to src/com/android/settings/gestures/WakeLockScreenGestureSettings.java
index 3df9fcf..e6b7265 100644
--- a/src/com/android/settings/gestures/ReachGestureSettings.java
+++ b/src/com/android/settings/gestures/WakeLockScreenGestureSettings.java
@@ -33,12 +33,12 @@
import java.util.List;
@SearchIndexable
-public class ReachGestureSettings extends DashboardFragment {
+public class WakeLockScreenGestureSettings extends DashboardFragment {
- private static final String TAG = "ReachGestureSettings";
+ private static final String TAG = "WakeLockScreenGestureSettings";
public static final String PREF_KEY_SUGGESTION_COMPLETE =
- "pref_reach_gesture_suggestion_complete";
+ "pref_wake_lock_screen_gesture_suggestion_complete";
@Override
public void onAttach(Context context) {
@@ -48,13 +48,13 @@
SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
- use(ReachGesturePreferenceController.class)
+ use(WakeLockScreenGesturePreferenceController.class)
.setConfig(new AmbientDisplayConfiguration(context));
}
@Override
public int getMetricsCategory() {
- return MetricsProto.MetricsEvent.SETTINGS_GESTURE_REACH;
+ return MetricsProto.MetricsEvent.SETTINGS_GESTURE_WAKE_LOCK_SCREEN;
}
@Override
@@ -64,7 +64,7 @@
@Override
protected int getPreferenceScreenResId() {
- return R.xml.reach_gesture_settings;
+ return R.xml.wake_lock_screen_gesture_settings;
}
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
@@ -73,7 +73,7 @@
public List<SearchIndexableResource> getXmlResourcesToIndex(
Context context, boolean enabled) {
final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.reach_gesture_settings;
+ sir.xmlResId = R.xml.wake_lock_screen_gesture_settings;
return Arrays.asList(sir);
}
};
diff --git a/src/com/android/settings/gestures/ReachGesturePreferenceController.java b/src/com/android/settings/gestures/WakeScreenGesturePreferenceController.java
similarity index 69%
rename from src/com/android/settings/gestures/ReachGesturePreferenceController.java
rename to src/com/android/settings/gestures/WakeScreenGesturePreferenceController.java
index 6bfe4f3..2c7bed2 100644
--- a/src/com/android/settings/gestures/ReachGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/WakeScreenGesturePreferenceController.java
@@ -16,7 +16,7 @@
package com.android.settings.gestures;
-import static android.provider.Settings.Secure.DOZE_REACH_GESTURE;
+import static android.provider.Settings.Secure.DOZE_WAKE_SCREEN_GESTURE;
import android.annotation.UserIdInt;
import android.content.Context;
@@ -24,35 +24,29 @@
import android.provider.Settings;
import android.text.TextUtils;
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.hardware.AmbientDisplayConfiguration;
-public class ReachGesturePreferenceController extends GesturePreferenceController {
+public class WakeScreenGesturePreferenceController extends GesturePreferenceController {
private static final int ON = 1;
private static final int OFF = 0;
- private static final String PREF_KEY_VIDEO = "gesture_reach_video";
- private final String mReachUpPrefKey;
+ private static final String PREF_KEY_VIDEO = "gesture_wake_screen_video";
private AmbientDisplayConfiguration mAmbientConfig;
@UserIdInt
private final int mUserId;
- public ReachGesturePreferenceController(Context context, String key) {
+ public WakeScreenGesturePreferenceController(Context context, String key) {
super(context, key);
mUserId = UserHandle.myUserId();
- mReachUpPrefKey = key;
- }
-
- public ReachGesturePreferenceController setConfig(AmbientDisplayConfiguration config) {
- mAmbientConfig = config;
- return this;
}
@Override
public int getAvailabilityStatus() {
- // No hardware support for Reach Gesture
- if (!getAmbientConfig().reachGestureAvailable()) {
+ // No hardware support for Wake Screen Gesture
+ if (!getAmbientConfig().wakeScreenGestureAvailable()) {
return UNSUPPORTED_ON_DEVICE;
}
@@ -61,7 +55,7 @@
@Override
public boolean isSliceable() {
- return TextUtils.equals(getPreferenceKey(), "gesture_reach");
+ return TextUtils.equals(getPreferenceKey(), "gesture_wake_screen");
}
@Override
@@ -71,17 +65,12 @@
@Override
public boolean isChecked() {
- return getAmbientConfig().reachGestureEnabled(mUserId);
- }
-
- @Override
- public String getPreferenceKey() {
- return mReachUpPrefKey;
+ return getAmbientConfig().wakeScreenGestureEnabled(mUserId);
}
@Override
public boolean setChecked(boolean isChecked) {
- return Settings.Secure.putInt(mContext.getContentResolver(), DOZE_REACH_GESTURE,
+ return Settings.Secure.putInt(mContext.getContentResolver(), DOZE_WAKE_SCREEN_GESTURE,
isChecked ? ON : OFF);
}
@@ -92,4 +81,9 @@
return mAmbientConfig;
}
+
+ @VisibleForTesting
+ public void setConfig(AmbientDisplayConfiguration config) {
+ mAmbientConfig = config;
+ }
}
diff --git a/src/com/android/settings/gestures/ReachGestureSettings.java b/src/com/android/settings/gestures/WakeScreenGestureSettings.java
similarity index 69%
copy from src/com/android/settings/gestures/ReachGestureSettings.java
copy to src/com/android/settings/gestures/WakeScreenGestureSettings.java
index 3df9fcf..708ac01 100644
--- a/src/com/android/settings/gestures/ReachGestureSettings.java
+++ b/src/com/android/settings/gestures/WakeScreenGestureSettings.java
@@ -33,28 +33,16 @@
import java.util.List;
@SearchIndexable
-public class ReachGestureSettings extends DashboardFragment {
+public class WakeScreenGestureSettings extends DashboardFragment {
- private static final String TAG = "ReachGestureSettings";
+ private static final String TAG = "WakeScreenGestureSettings";
public static final String PREF_KEY_SUGGESTION_COMPLETE =
- "pref_reach_gesture_suggestion_complete";
-
- @Override
- public void onAttach(Context context) {
- super.onAttach(context);
- SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory.getFactory(context)
- .getSuggestionFeatureProvider(context);
- SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
- prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
-
- use(ReachGesturePreferenceController.class)
- .setConfig(new AmbientDisplayConfiguration(context));
- }
+ "pref_wake_screen_gesture_suggestion_complete";
@Override
public int getMetricsCategory() {
- return MetricsProto.MetricsEvent.SETTINGS_GESTURE_REACH;
+ return MetricsProto.MetricsEvent.SETTINGS_GESTURE_WAKE_SCREEN;
}
@Override
@@ -64,7 +52,7 @@
@Override
protected int getPreferenceScreenResId() {
- return R.xml.reach_gesture_settings;
+ return R.xml.wake_screen_gesture_settings;
}
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
@@ -73,7 +61,7 @@
public List<SearchIndexableResource> getXmlResourcesToIndex(
Context context, boolean enabled) {
final SearchIndexableResource sir = new SearchIndexableResource(context);
- sir.xmlResId = R.xml.reach_gesture_settings;
+ sir.xmlResId = R.xml.wake_screen_gesture_settings;
return Arrays.asList(sir);
}
};
diff --git a/src/com/android/settings/homepage/CardContentLoader.java b/src/com/android/settings/homepage/CardContentLoader.java
index 9805ae3..0b0d6c5 100644
--- a/src/com/android/settings/homepage/CardContentLoader.java
+++ b/src/com/android/settings/homepage/CardContentLoader.java
@@ -16,17 +16,33 @@
package com.android.settings.homepage;
+import static android.app.slice.Slice.HINT_ERROR;
+
+import static androidx.slice.widget.SliceLiveData.SUPPORTED_SPECS;
+
+import android.content.ContentProviderClient;
+import android.content.ContentResolver;
import android.content.Context;
+import android.content.pm.PackageManager;
import android.database.Cursor;
+import android.net.Uri;
+import android.util.Log;
import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.slice.Slice;
+import com.android.settings.homepage.deviceinfo.DataUsageSlice;
+import com.android.settings.homepage.deviceinfo.DeviceInfoSlice;
+import com.android.settings.homepage.deviceinfo.StorageSlice;
import com.android.settingslib.utils.AsyncLoaderCompat;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
public class CardContentLoader extends AsyncLoaderCompat<List<ContextualCard>> {
+ private static final String TAG = "CardContentLoader";
static final int CARD_CONTENT_LOADER_ID = 1;
private Context mContext;
@@ -49,20 +65,118 @@
@Override
public List<ContextualCard> loadInBackground() {
final List<ContextualCard> result = new ArrayList<>();
- try (Cursor cursor = CardDatabaseHelper.getInstance(mContext).getContextualCards()) {
+ try (Cursor cursor = getContextualCardsFromProvider()) {
if (cursor.getCount() == 0) {
- //TODO(b/113372471): Load Default static cards and return 3 static cards
- return result;
- }
- for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
- final ContextualCard card = new ContextualCard(cursor);
- if (card.isCustomCard()) {
- //TODO(b/114688391): Load and generate custom card,then add into list
- } else {
- result.add(card);
+ result.addAll(createStaticCards());
+ } else {
+ for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
+ final ContextualCard card = new ContextualCard(cursor);
+ if (card.isCustomCard()) {
+ //TODO(b/114688391): Load and generate custom card,then add into list
+ } else {
+ result.add(card);
+ }
}
}
}
+ return filter(result);
+ }
+
+ @VisibleForTesting
+ Cursor getContextualCardsFromProvider() {
+ return CardDatabaseHelper.getInstance(mContext).getContextualCards();
+ }
+
+ @VisibleForTesting
+ List<ContextualCard> createStaticCards() {
+ final long appVersionCode = getAppVersionCode();
+ final String packageName = mContext.getPackageName();
+ final double rankingScore = 0.0;
+ final List<ContextualCard> result = new ArrayList() {{
+ add(new ContextualCard.Builder()
+ .setSliceUri(DataUsageSlice.DATA_USAGE_CARD_URI.toString())
+ .setName(packageName + "/" + DataUsageSlice.PATH_DATA_USAGE_CARD)
+ .setPackageName(packageName)
+ .setRankingScore(rankingScore)
+ .setAppVersion(appVersionCode)
+ .setCardType(ContextualCard.CardType.SLICE)
+ .setIsHalfWidth(true)
+ .build());
+ //TODO(b/115971399): Will change following values of SliceUri and Name
+ // after landing these slice cards.
+// add(new ContextualCard.Builder()
+// .setSliceUri("content://com.android.settings.slices/battery_card")
+// .setName(packageName + "/" + "battery_card")
+// .setPackageName(packageName)
+// .setRankingScore(rankingScore)
+// .setAppVersion(appVersionCode)
+// .setCardType(ContextualCard.CardType.SLICE)
+// .setIsHalfWidth(true)
+// .build());
+ add(new ContextualCard.Builder()
+ .setSliceUri(DeviceInfoSlice.DEVICE_INFO_CARD_URI.toString())
+ .setName(packageName + "/" + DeviceInfoSlice.PATH_DEVICE_INFO_CARD)
+ .setPackageName(packageName)
+ .setRankingScore(rankingScore)
+ .setAppVersion(appVersionCode)
+ .setCardType(ContextualCard.CardType.SLICE)
+ .setIsHalfWidth(true)
+ .build());
+ add(new ContextualCard.Builder()
+ .setSliceUri(StorageSlice.STORAGE_CARD_URI.toString())
+ .setName(StorageSlice.PATH_STORAGE_CARD)
+ .setPackageName(packageName)
+ .setRankingScore(rankingScore)
+ .setAppVersion(appVersionCode)
+ .setCardType(ContextualCard.CardType.SLICE)
+ .setIsHalfWidth(true)
+ .build());
+ }};
return result;
}
+
+ @VisibleForTesting
+ List<ContextualCard> filter(List<ContextualCard> candidates) {
+ return candidates.stream().filter(card -> isCardEligibleToDisplay(card)).collect(
+ Collectors.toList());
+ }
+
+ @VisibleForTesting
+ boolean isCardEligibleToDisplay(ContextualCard card) {
+ if (card.isCustomCard()) {
+ return true;
+ }
+
+ final Uri uri = card.getSliceUri();
+
+ if (!ContentResolver.SCHEME_CONTENT.equals(uri.getScheme())) {
+ return false;
+ }
+
+ //check if the uri has a provider associated with.
+ final ContentProviderClient provider =
+ mContext.getContentResolver().acquireContentProviderClient(uri);
+ if (provider == null) {
+ return false;
+ }
+ //release contentProviderClient to prevent from memory leak.
+ provider.release();
+
+ final Slice slice = Slice.bindSlice(mContext, uri, SUPPORTED_SPECS);
+ if (slice == null || slice.hasHint(HINT_ERROR)) {
+ return false;
+ }
+
+ return true;
+ }
+
+ private long getAppVersionCode() {
+ try {
+ return mContext.getPackageManager().getPackageInfo(mContext.getPackageName(),
+ 0 /* flags */).getLongVersionCode();
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(TAG, "Invalid package name for context", e);
+ }
+ return -1L;
+ }
}
diff --git a/src/com/android/settings/homepage/CardContentProvider.java b/src/com/android/settings/homepage/CardContentProvider.java
index 7b08756..9989445 100644
--- a/src/com/android/settings/homepage/CardContentProvider.java
+++ b/src/com/android/settings/homepage/CardContentProvider.java
@@ -77,8 +77,11 @@
final String table = getTableFromMatch(uri);
database.beginTransaction();
+
+ // Here deletion first is avoiding redundant insertion. According to cl/215350754
+ database.delete(table, null /* whereClause */, null /* whereArgs */);
for (ContentValues value : values) {
- long ret = database.insert(table, null, value);
+ long ret = database.insert(table, null /* nullColumnHack */, value);
if (ret != -1L) {
numInserted++;
} else {
@@ -87,7 +90,7 @@
}
}
database.setTransactionSuccessful();
- getContext().getContentResolver().notifyChange(uri, null);
+ getContext().getContentResolver().notifyChange(uri, null /* observer */);
} finally {
database.endTransaction();
StrictMode.setThreadPolicy(oldPolicy);
@@ -103,7 +106,7 @@
final SQLiteDatabase database = mDBHelper.getWritableDatabase();
final String table = getTableFromMatch(uri);
final int rowsDeleted = database.delete(table, selection, selectionArgs);
- getContext().getContentResolver().notifyChange(uri, null);
+ getContext().getContentResolver().notifyChange(uri, null /* observer */);
return rowsDeleted;
} finally {
StrictMode.setThreadPolicy(oldPolicy);
@@ -127,7 +130,8 @@
queryBuilder.setTables(table);
final SQLiteDatabase database = mDBHelper.getReadableDatabase();
final Cursor cursor = queryBuilder.query(database,
- projection, selection, selectionArgs, null, null, sortOrder);
+ projection, selection, selectionArgs, null /* groupBy */, null /* having */,
+ sortOrder);
cursor.setNotificationUri(getContext().getContentResolver(), uri);
return cursor;
@@ -145,7 +149,7 @@
final SQLiteDatabase database = mDBHelper.getWritableDatabase();
final String table = getTableFromMatch(uri);
final int rowsUpdated = database.update(table, values, selection, selectionArgs);
- getContext().getContentResolver().notifyChange(uri, null);
+ getContext().getContentResolver().notifyChange(uri, null /* observer */);
return rowsUpdated;
} finally {
StrictMode.setThreadPolicy(oldPolicy);
diff --git a/src/com/android/settings/homepage/CardDatabaseHelper.java b/src/com/android/settings/homepage/CardDatabaseHelper.java
index b53479e..53de441 100644
--- a/src/com/android/settings/homepage/CardDatabaseHelper.java
+++ b/src/com/android/settings/homepage/CardDatabaseHelper.java
@@ -30,7 +30,7 @@
public class CardDatabaseHelper extends SQLiteOpenHelper {
private static final String TAG = "CardDatabaseHelper";
private static final String DATABASE_NAME = "homepage_cards.db";
- private static final int DATABASE_VERSION = 2;
+ private static final int DATABASE_VERSION = 3;
public static final String CARD_TABLE = "cards";
@@ -143,7 +143,7 @@
CardColumns.PACKAGE_NAME +
" TEXT NOT NULL, " +
CardColumns.APP_VERSION +
- " TEXT NOT NULL, " +
+ " INTEGER NOT NULL, " +
CardColumns.TITLE_RES_NAME +
" TEXT, " +
CardColumns.TITLE_TEXT +
diff --git a/src/com/android/settings/homepage/ContextualCard.java b/src/com/android/settings/homepage/ContextualCard.java
index 5bd265b..130b878 100644
--- a/src/com/android/settings/homepage/ContextualCard.java
+++ b/src/com/android/settings/homepage/ContextualCard.java
@@ -50,7 +50,7 @@
private final int mCategory;
private final String mLocalizedToLocale;
private final String mPackageName;
- private final String mAppVersion;
+ private final long mAppVersion;
private final String mTitleResName;
private final String mTitleText;
private final String mSummaryResName;
@@ -94,7 +94,7 @@
return mPackageName;
}
- public String getAppVersion() {
+ public long getAppVersion() {
return mAppVersion;
}
@@ -172,7 +172,7 @@
mLocalizedToLocale = c.getString(
c.getColumnIndex(CardDatabaseHelper.CardColumns.LOCALIZED_TO_LOCALE));
mPackageName = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.PACKAGE_NAME));
- mAppVersion = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.APP_VERSION));
+ mAppVersion = c.getLong(c.getColumnIndex(CardDatabaseHelper.CardColumns.APP_VERSION));
mTitleResName = c.getString(
c.getColumnIndex(CardDatabaseHelper.CardColumns.TITLE_RES_NAME));
mTitleText = c.getString(c.getColumnIndex(CardDatabaseHelper.CardColumns.TITLE_TEXT));
@@ -217,7 +217,7 @@
private int mCategory;
private String mLocalizedToLocale;
private String mPackageName;
- private String mAppVersion;
+ private long mAppVersion;
private String mTitleResName;
private String mTitleText;
private String mSummaryResName;
@@ -264,7 +264,7 @@
return this;
}
- public Builder setAppVersion(String appVersion) {
+ public Builder setAppVersion(long appVersion) {
mAppVersion = appVersion;
return this;
}
diff --git a/src/com/android/settings/homepage/TopLevelSettings.java b/src/com/android/settings/homepage/TopLevelSettings.java
index c450157..8f70b2b 100644
--- a/src/com/android/settings/homepage/TopLevelSettings.java
+++ b/src/com/android/settings/homepage/TopLevelSettings.java
@@ -33,6 +33,7 @@
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.support.SupportPreferenceController;
import com.android.settingslib.core.instrumentation.Instrumentable;
import com.android.settingslib.search.SearchIndexable;
@@ -68,6 +69,12 @@
}
@Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ use(SupportPreferenceController.class).setActivity(getActivity());
+ }
+
+ @Override
public int getHelpResource() {
// Disable the help icon because this page uses a full search view in actionbar.
return 0;
diff --git a/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
new file mode 100644
index 0000000..44705c5
--- /dev/null
+++ b/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProvider.java
@@ -0,0 +1,56 @@
+/*
+ * 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.homepage.contextualcards;
+
+import static android.provider.SettingsSlicesContract.KEY_WIFI;
+
+import android.annotation.Nullable;
+
+import com.android.settings.homepage.deviceinfo.DataUsageSlice;
+import com.android.settings.wifi.WifiSlice;
+
+import com.google.android.settings.intelligence.libs.contextualcards.ContextualCard;
+import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardProvider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/** Provides dynamic card for SettingsIntelligence. */
+public class SettingsContextualCardProvider extends ContextualCardProvider {
+
+ public static final String CARD_AUTHORITY = "com.android.settings.homepage.contextualcards";
+
+ @Override
+ @Nullable
+ public List<ContextualCard> getContextualCards() {
+ final List<ContextualCard> cards = new ArrayList<>();
+ final ContextualCard wifiCard =
+ new ContextualCard.Builder()
+ .setSliceUri(WifiSlice.WIFI_URI.toString())
+ .setName(KEY_WIFI)
+ .build();
+ final ContextualCard dataUsageCard =
+ new ContextualCard.Builder()
+ .setSliceUri(DataUsageSlice.DATA_USAGE_CARD_URI.toString())
+ .setName(DataUsageSlice.PATH_DATA_USAGE_CARD)
+ .build();
+
+ cards.add(wifiCard);
+ cards.add(dataUsageCard);
+ return cards;
+ }
+}
diff --git a/src/com/android/settings/homepage/deviceinfo/DeviceInfoSlice.java b/src/com/android/settings/homepage/deviceinfo/DeviceInfoSlice.java
new file mode 100644
index 0000000..dc315c5
--- /dev/null
+++ b/src/com/android/settings/homepage/deviceinfo/DeviceInfoSlice.java
@@ -0,0 +1,147 @@
+/*
+ * 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.homepage.deviceinfo;
+
+import android.app.PendingIntent;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+
+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.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.SubSettings;
+import com.android.settings.Utils;
+import com.android.settings.deviceinfo.DeviceModelPreferenceController;
+import com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment;
+import com.android.settings.slices.CustomSliceable;
+import com.android.settings.slices.SettingsSliceProvider;
+import com.android.settings.slices.SliceBuilderUtils;
+import com.android.settingslib.DeviceInfoUtils;
+
+import java.util.List;
+
+public class DeviceInfoSlice implements CustomSliceable {
+ private static final String TAG = "DeviceInfoSlice";
+
+ /**
+ * The path denotes the unique name of device info slice
+ */
+ public static final String PATH_DEVICE_INFO_CARD = "device_info_card";
+
+ /**
+ * Backing Uri for the Device info Slice.
+ */
+ public static final Uri DEVICE_INFO_CARD_URI = new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+ .appendPath(PATH_DEVICE_INFO_CARD)
+ .build();
+
+ private final Context mContext;
+ private final TelephonyManager mTelephonyManager;
+ private final SubscriptionManager mSubscriptionManager;
+
+ public DeviceInfoSlice(Context context) {
+ mContext = context;
+ mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
+ mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class);
+ }
+
+ /**
+ * Return a device info slice bound to {@Link #DEVICE_INFO_CARD_URI}
+ */
+ @Override
+ public Slice getSlice() {
+ final IconCompat icon = IconCompat.createWithResource(mContext,
+ R.drawable.ic_info_outline_24dp);
+ final String title = mContext.getString(R.string.device_info_label);
+ final SliceAction primaryAction = new SliceAction(getPrimaryAction(), icon, title);
+ return new ListBuilder(mContext, DEVICE_INFO_CARD_URI, ListBuilder.INFINITY)
+ .setAccentColor((Utils.getColorAccentDefaultColor(mContext)))
+ .setHeader(new ListBuilder.HeaderBuilder().setTitle(title))
+ .addRow(new ListBuilder.RowBuilder()
+ .setTitle(getPhoneNumber())
+ .setSubtitle(getDeviceModel())
+ .setPrimaryAction(primaryAction))
+ .build();
+ }
+
+ @Override
+ public Uri getUri() {
+ return DEVICE_INFO_CARD_URI;
+ }
+
+ @Override
+ public Intent getIntent() {
+ final String screenTitle = mContext.getText(R.string.device_info_label).toString();
+ final Uri contentUri = new Uri.Builder().appendPath(PATH_DEVICE_INFO_CARD).build();
+ return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
+ MyDeviceInfoFragment.class.getName(), PATH_DEVICE_INFO_CARD, screenTitle,
+ MetricsProto.MetricsEvent.SLICE)
+ .setClassName(mContext.getPackageName(), SubSettings.class.getName())
+ .setData(contentUri);
+ }
+
+ private PendingIntent getPrimaryAction() {
+ final Intent intent = getIntent();
+ return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */);
+ }
+
+ @VisibleForTesting
+ CharSequence getPhoneNumber() {
+ final SubscriptionInfo subscriptionInfo = getFirstSubscriptionInfo();
+ if (subscriptionInfo == null) {
+ return mContext.getString(R.string.device_info_default);
+ }
+ final String phoneNumber = DeviceInfoUtils.getFormattedPhoneNumber(mContext,
+ subscriptionInfo);
+ return TextUtils.isEmpty(phoneNumber) ? mContext.getString(R.string.device_info_default)
+ : BidiFormatter.getInstance().unicodeWrap(phoneNumber, TextDirectionHeuristics.LTR);
+ }
+
+ private CharSequence getDeviceModel() {
+ return DeviceModelPreferenceController.getDeviceModel();
+ }
+
+ @VisibleForTesting
+ SubscriptionInfo getFirstSubscriptionInfo() {
+ final List<SubscriptionInfo> subscriptionInfoList =
+ mSubscriptionManager.getActiveSubscriptionInfoList();
+ if (subscriptionInfoList == null) {
+ return null;
+ }
+ return subscriptionInfoList.get(0);
+ }
+
+ @Override
+ public void onNotifyChange(Intent intent) {
+
+ }
+}
diff --git a/src/com/android/settings/homepage/deviceinfo/StorageSlice.java b/src/com/android/settings/homepage/deviceinfo/StorageSlice.java
new file mode 100644
index 0000000..c9464e4
--- /dev/null
+++ b/src/com/android/settings/homepage/deviceinfo/StorageSlice.java
@@ -0,0 +1,133 @@
+/*
+ * 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.homepage.deviceinfo;
+
+import android.app.PendingIntent;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.storage.StorageManager;
+import android.text.format.Formatter;
+
+import androidx.core.graphics.drawable.IconCompat;
+import androidx.slice.Slice;
+import androidx.slice.builders.ListBuilder;
+import androidx.slice.builders.SliceAction;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settings.SubSettings;
+import com.android.settings.Utils;
+import com.android.settings.deviceinfo.StorageDashboardFragment;
+import com.android.settings.deviceinfo.storage.StorageSummaryDonutPreferenceController;
+import com.android.settings.slices.CustomSliceable;
+import com.android.settings.slices.SettingsSliceProvider;
+import com.android.settings.slices.SliceBuilderUtils;
+import com.android.settingslib.deviceinfo.PrivateStorageInfo;
+import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
+
+public class StorageSlice implements CustomSliceable {
+ private static final String TAG = "StorageSlice";
+
+ /**
+ * The path denotes the unique name of storage slicel
+ */
+ public static final String PATH_STORAGE_CARD = "storage_card";
+
+ /**
+ * Backing Uri for the storage slice.
+ */
+ public static final Uri STORAGE_CARD_URI = new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+ .appendPath(PATH_STORAGE_CARD)
+ .build();
+
+ private final Context mContext;
+
+ public StorageSlice(Context context) {
+ mContext = context;
+ }
+
+ @Override
+ public Uri getUri() {
+ return STORAGE_CARD_URI;
+ }
+
+ /**
+ * Return a storage slice bound to {@link #STORAGE_CARD_URI}
+ */
+ @Override
+ public Slice getSlice() {
+ final IconCompat icon = IconCompat.createWithResource(mContext,
+ R.drawable.ic_homepage_storage);
+ final String title = mContext.getString(R.string.storage_label);
+ final SliceAction primaryAction = new SliceAction(getPrimaryAction(), icon, title);
+ final PrivateStorageInfo info = getPrivateStorageInfo();
+ return new ListBuilder(mContext, STORAGE_CARD_URI, ListBuilder.INFINITY)
+ .setAccentColor(Utils.getColorAccentDefaultColor(mContext))
+ .setHeader(new ListBuilder.HeaderBuilder().setTitle(title))
+ .addRow(new ListBuilder.RowBuilder()
+ .setTitle(getStorageUsedText(info))
+ .setSubtitle(getStorageSummaryText(info))
+ .setPrimaryAction(primaryAction))
+ .build();
+ }
+
+ @Override
+ public Intent getIntent() {
+ final String screenTitle = mContext.getText(R.string.storage_label).toString();
+ final Uri contentUri = new Uri.Builder().appendPath(PATH_STORAGE_CARD).build();
+ return SliceBuilderUtils.buildSearchResultPageIntent(mContext,
+ StorageDashboardFragment.class.getName(), PATH_STORAGE_CARD, screenTitle,
+ MetricsProto.MetricsEvent.SLICE)
+ .setClassName(mContext.getPackageName(), SubSettings.class.getName())
+ .setData(contentUri);
+ }
+
+ private PendingIntent getPrimaryAction() {
+ final Intent intent = getIntent();
+ return PendingIntent.getActivity(mContext, 0 /* requestCode */, intent, 0 /* flags */);
+ }
+
+ @VisibleForTesting
+ PrivateStorageInfo getPrivateStorageInfo() {
+ final StorageManager storageManager = mContext.getSystemService(StorageManager.class);
+ final StorageManagerVolumeProvider smvp = new StorageManagerVolumeProvider(storageManager);
+ return PrivateStorageInfo.getPrivateStorageInfo(smvp);
+ }
+
+ @VisibleForTesting
+ CharSequence getStorageUsedText(PrivateStorageInfo info) {
+ final long usedBytes = info.totalBytes - info.freeBytes;
+ return StorageSummaryDonutPreferenceController.convertUsedBytesToFormattedText(mContext,
+ usedBytes);
+ }
+
+ @VisibleForTesting
+ CharSequence getStorageSummaryText(PrivateStorageInfo info) {
+ return mContext.getString(R.string.storage_volume_total,
+ Formatter.formatShortFileSize(mContext, info.totalBytes));
+ }
+
+ @Override
+ public void onNotifyChange(Intent intent) {
+
+ }
+}
diff --git a/src/com/android/settings/mobilenetwork/CdmaOptions.java b/src/com/android/settings/mobilenetwork/CdmaOptions.java
new file mode 100644
index 0000000..fe50914
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/CdmaOptions.java
@@ -0,0 +1,204 @@
+/*
+ * 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.mobilenetwork;
+
+import android.content.Intent;
+import android.os.PersistableBundle;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.TelephonyManager;
+import android.text.TextUtils;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.R;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settingslib.RestrictedPreference;
+
+/**
+ * List of Phone-specific settings screens.
+ */
+public class CdmaOptions {
+ private static final String LOG_TAG = "CdmaOptions";
+
+ private CarrierConfigManager mCarrierConfigManager;
+ private CdmaSystemSelectListPreference mButtonCdmaSystemSelect;
+ private CdmaSubscriptionListPreference mButtonCdmaSubscription;
+ private RestrictedPreference mButtonAPNExpand;
+ private Preference mCategoryAPNExpand;
+ private Preference mButtonCarrierSettings;
+
+ private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
+ private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
+ private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
+ private static final String BUTTON_APN_EXPAND_KEY = "button_cdma_apn_key";
+ private static final String CATEGORY_APN_EXPAND_KEY = "category_cdma_apn_key";
+
+ private PreferenceFragmentCompat mPrefFragment;
+ private PreferenceScreen mPrefScreen;
+ private int mSubId;
+
+ public CdmaOptions(PreferenceFragmentCompat prefFragment, PreferenceScreen prefScreen, int subId) {
+ mPrefFragment = prefFragment;
+ mPrefScreen = prefScreen;
+ mPrefFragment.addPreferencesFromResource(R.xml.cdma_options);
+ mCarrierConfigManager = new CarrierConfigManager(prefFragment.getContext());
+
+ // Initialize preferences.
+ mButtonCdmaSystemSelect = (CdmaSystemSelectListPreference) mPrefScreen
+ .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
+ mButtonCdmaSubscription = (CdmaSubscriptionListPreference) mPrefScreen
+ .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY);
+ mButtonCarrierSettings = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
+ mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
+ mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
+
+ updateSubscriptionId(subId);
+ }
+
+ protected void updateSubscriptionId(int subId) {
+ mSubId = subId;
+ int phoneType = TelephonyManager.from(mPrefFragment.getContext())
+ .createForSubscriptionId(mSubId).getPhoneType();
+
+ PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ // Some CDMA carriers want the APN settings.
+ boolean addAPNExpand = shouldAddApnExpandPreference(phoneType, carrierConfig);
+ boolean addCdmaSubscription =
+ deviceSupportsNvAndRuim();
+ // Read platform settings for carrier settings
+ boolean addCarrierSettings =
+ carrierConfig.getBoolean(CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
+
+ mPrefScreen.addPreference(mButtonCdmaSystemSelect);
+ mButtonCdmaSystemSelect.setEnabled(true);
+
+ // Making no assumptions of whether they are added or removed at this point.
+ // Calling add or remove explicitly to make sure they are updated.
+
+ if (addAPNExpand) {
+ log("update: addAPNExpand");
+ mButtonAPNExpand.setDisabledByAdmin(
+ MobileNetworkUtils.isDpcApnEnforced(mButtonAPNExpand.getContext())
+ ? RestrictedLockUtilsInternal.getDeviceOwner(
+ mButtonAPNExpand.getContext())
+ : null);
+ mButtonAPNExpand.setOnPreferenceClickListener(
+ new Preference.OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ MetricsLogger.action(mButtonAPNExpand.getContext(),
+ MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
+ // We need to build the Intent by hand as the Preference Framework
+ // does not allow to add an Intent with some extras into a Preference
+ // XML file
+ final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
+ // This will setup the Home and Search affordance
+ intent.putExtra(":settings:show_fragment_as_subsetting", true);
+ intent.putExtra("sub_id", mSubId);
+ mPrefFragment.startActivity(intent);
+ return true;
+ }
+ });
+ mPrefScreen.addPreference(mCategoryAPNExpand);
+ } else {
+ mPrefScreen.removePreference(mCategoryAPNExpand);
+ }
+
+ if (addCdmaSubscription) {
+ log("Both NV and Ruim supported, ENABLE subscription type selection");
+ mPrefScreen.addPreference(mButtonCdmaSubscription);
+ mButtonCdmaSubscription.setEnabled(true);
+ } else {
+ log("Both NV and Ruim NOT supported, REMOVE subscription type selection");
+ mPrefScreen.removePreference(mButtonCdmaSubscription);
+ }
+
+ if (addCarrierSettings) {
+ mPrefScreen.addPreference(mButtonCarrierSettings);
+ } else {
+ mPrefScreen.removePreference(mButtonCarrierSettings);
+ }
+ }
+
+ /**
+ * Return whether we should add the APN expandable preference based on the phone type and
+ * carrier config
+ */
+ @VisibleForTesting
+ public static boolean shouldAddApnExpandPreference(int phoneType, PersistableBundle config) {
+ return phoneType == PhoneConstants.PHONE_TYPE_CDMA
+ && config.getBoolean(CarrierConfigManager.KEY_SHOW_APN_SETTING_CDMA_BOOL);
+ }
+
+ private boolean deviceSupportsNvAndRuim() {
+ // retrieve the list of subscription types supported by device.
+ String subscriptionsSupported = SystemProperties.get("ril.subscription.types");
+ boolean nvSupported = false;
+ boolean ruimSupported = false;
+
+ log("deviceSupportsnvAnRum: prop=" + subscriptionsSupported);
+ if (!TextUtils.isEmpty(subscriptionsSupported)) {
+ // Searches through the comma-separated list for a match for "NV"
+ // and "RUIM" to update nvSupported and ruimSupported.
+ for (String subscriptionType : subscriptionsSupported.split(",")) {
+ subscriptionType = subscriptionType.trim();
+ if (subscriptionType.equalsIgnoreCase("NV")) {
+ nvSupported = true;
+ }
+ if (subscriptionType.equalsIgnoreCase("RUIM")) {
+ ruimSupported = true;
+ }
+ }
+ }
+
+ log("deviceSupportsnvAnRum: nvSupported=" + nvSupported +
+ " ruimSupported=" + ruimSupported);
+ return (nvSupported && ruimSupported);
+ }
+
+ public boolean preferenceTreeClick(Preference preference) {
+ if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
+ log("preferenceTreeClick: return BUTTON_CDMA_ROAMING_KEY true");
+ return true;
+ }
+ if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
+ log("preferenceTreeClick: return CDMA_SUBSCRIPTION_KEY true");
+ return true;
+ }
+ return false;
+ }
+
+ public void showDialog(Preference preference) {
+ if (preference.getKey().equals(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
+ mButtonCdmaSystemSelect.showDialog(null);
+ } else if (preference.getKey().equals(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
+ mButtonCdmaSubscription.showDialog(null);
+ }
+ }
+
+ protected void log(String s) {
+ android.util.Log.d(LOG_TAG, s);
+ }
+}
diff --git a/src/com/android/settings/mobilenetwork/CdmaSubscriptionListPreference.java b/src/com/android/settings/mobilenetwork/CdmaSubscriptionListPreference.java
new file mode 100644
index 0000000..4e3767a
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/CdmaSubscriptionListPreference.java
@@ -0,0 +1,115 @@
+/*
+ * 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.mobilenetwork;
+
+import android.content.Context;
+import android.os.Bundle;
+import androidx.preference.ListPreference;
+import android.provider.Settings;
+import android.telephony.TelephonyManager;
+import android.util.AttributeSet;
+import android.util.Log;
+
+import com.android.internal.telephony.Phone;
+import com.android.settingslib.utils.ThreadUtils;
+
+public class CdmaSubscriptionListPreference extends ListPreference {
+
+ private static final String LOG_TAG = "CdmaSubListPref";
+
+ // Used for CDMA subscription mode
+ private static final int CDMA_SUBSCRIPTION_RUIM_SIM = 0;
+ private static final int CDMA_SUBSCRIPTION_NV = 1;
+
+ //preferredSubscriptionMode 0 - RUIM/SIM, preferred
+ // 1 - NV
+ static final int preferredSubscriptionMode = Phone.PREFERRED_CDMA_SUBSCRIPTION;
+
+ private TelephonyManager mTelephonyManager;
+
+ public CdmaSubscriptionListPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ mTelephonyManager = TelephonyManager.from(context);
+ setCurrentCdmaSubscriptionModeValue();
+ }
+
+ private void setCurrentCdmaSubscriptionModeValue() {
+ int cdmaSubscriptionMode = Settings.Global.getInt(getContext().getContentResolver(),
+ Settings.Global.CDMA_SUBSCRIPTION_MODE, preferredSubscriptionMode);
+ setValue(Integer.toString(cdmaSubscriptionMode));
+ }
+
+ public CdmaSubscriptionListPreference(Context context) {
+ this(context, null);
+ }
+
+ /**
+ * Sets the subscription id associated with this preference.
+ *
+ * @param subId the subscription id.
+ */
+ public void setSubscriptionId(int subId) {
+ mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
+ }
+
+ //TODO(b/114749736): move this logic to preference controller
+ protected void showDialog(Bundle state) {
+ setCurrentCdmaSubscriptionModeValue();
+ }
+
+ //TODO(b/114749736): move this logic to preference controller
+ protected void onDialogClosed(boolean positiveResult) {
+ if (!positiveResult) {
+ //The button was dismissed - no need to set new value
+ return;
+ }
+
+ int buttonCdmaSubscriptionMode = Integer.parseInt(getValue());
+ Log.d(LOG_TAG, "Setting new value " + buttonCdmaSubscriptionMode);
+ int statusCdmaSubscriptionMode;
+ switch(buttonCdmaSubscriptionMode) {
+ case CDMA_SUBSCRIPTION_NV:
+ statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_NV;
+ break;
+ case CDMA_SUBSCRIPTION_RUIM_SIM:
+ statusCdmaSubscriptionMode = Phone.CDMA_SUBSCRIPTION_RUIM_SIM;
+ break;
+ default:
+ statusCdmaSubscriptionMode = Phone.PREFERRED_CDMA_SUBSCRIPTION;
+ }
+
+ // Set the CDMA subscription mode, when mode has been successfully changed, update the
+ // mode to the global setting.
+ ThreadUtils.postOnBackgroundThread(() -> {
+ // The subscription mode selected by user.
+ int cdmaSubscriptionMode = Integer.parseInt(getValue());
+
+ boolean isSuccessed = mTelephonyManager.setCdmaSubscriptionMode(
+ statusCdmaSubscriptionMode);
+
+ // Update the global settings if successed.
+ if (isSuccessed) {
+ Settings.Global.putInt(getContext().getContentResolver(),
+ Settings.Global.CDMA_SUBSCRIPTION_MODE,
+ cdmaSubscriptionMode);
+ } else {
+ Log.e(LOG_TAG, "Setting Cdma subscription source failed");
+ }
+ });
+ }
+}
diff --git a/src/com/android/settings/mobilenetwork/CdmaSystemSelectListPreference.java b/src/com/android/settings/mobilenetwork/CdmaSystemSelectListPreference.java
new file mode 100644
index 0000000..3d3419f
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/CdmaSystemSelectListPreference.java
@@ -0,0 +1,186 @@
+/*
+ * 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.mobilenetwork;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.provider.Settings;
+import android.telephony.TelephonyManager;
+import android.util.AttributeSet;
+import android.util.Log;
+
+import com.android.settingslib.utils.ThreadUtils;
+
+import androidx.preference.ListPreference;
+
+public class CdmaSystemSelectListPreference extends ListPreference {
+
+ private static final String LOG_TAG = "CdmaRoamingListPref";
+ private static final boolean DBG = false;
+
+ private TelephonyManager mTelephonyManager;
+ private MyHandler mHandler = new MyHandler();
+
+ public CdmaSystemSelectListPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+
+ mHandler = new MyHandler();
+ mTelephonyManager = TelephonyManager.from(context);
+ }
+
+ public CdmaSystemSelectListPreference(Context context) {
+ this(context, null);
+ }
+
+ /**
+ * Sets the subscription id associated with this preference.
+ *
+ * @param subId the subscription id.
+ */
+ public void setSubscriptionId(int subId) {
+ mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(subId);
+ queryCdmaRoamingMode();
+ }
+
+ //TODO(b/114749736): Move this to preference controller
+ protected void showDialog(Bundle state) {
+ if (!mTelephonyManager.getEmergencyCallbackMode()) {
+ // show Dialog
+ }
+ }
+
+ //TODO(b/114749736): Move this to preference controller
+ protected void onDialogClosed(boolean positiveResult) {
+ if (positiveResult && (getValue() != null)) {
+ int buttonCdmaRoamingMode = Integer.parseInt(getValue());
+ int settingsCdmaRoamingMode = Settings.Global.getInt(
+ getContext().getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ TelephonyManager.CDMA_ROAMING_MODE_HOME);
+ if (buttonCdmaRoamingMode != settingsCdmaRoamingMode) {
+ int cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_ANY;
+ if (buttonCdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_ANY) {
+ cdmaRoamingMode = TelephonyManager.CDMA_ROAMING_MODE_HOME;
+ }
+ //Set the Settings.Secure network mode
+ Settings.Global.putInt(
+ getContext().getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ buttonCdmaRoamingMode);
+ //Set the roaming preference mode
+ setCdmaRoamingMode(cdmaRoamingMode);
+ }
+ } else {
+ Log.d(LOG_TAG, String.format("onDialogClosed: positiveResult=%b value=%s -- do nothing",
+ positiveResult, getValue()));
+ }
+ }
+
+ private class MyHandler extends Handler {
+
+ static final int MESSAGE_GET_ROAMING_PREFERENCE = 0;
+ static final int MESSAGE_SET_ROAMING_PREFERENCE = 1;
+
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MESSAGE_GET_ROAMING_PREFERENCE:
+ handleQueryCdmaRoamingPreference(msg);
+ break;
+
+ case MESSAGE_SET_ROAMING_PREFERENCE:
+ handleSetCdmaRoamingPreference(msg);
+ break;
+ }
+ }
+
+ private void handleQueryCdmaRoamingPreference(Message msg) {
+ int cdmaRoamingMode = msg.arg1;
+
+ if (cdmaRoamingMode != TelephonyManager.CDMA_ROAMING_MODE_RADIO_DEFAULT) {
+ int settingsRoamingMode = Settings.Global.getInt(
+ getContext().getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ TelephonyManager.CDMA_ROAMING_MODE_HOME);
+
+ //check that statusCdmaRoamingMode is from an accepted value
+ if (cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_HOME
+ || cdmaRoamingMode == TelephonyManager.CDMA_ROAMING_MODE_ANY) {
+ //check changes in statusCdmaRoamingMode and updates settingsRoamingMode
+ if (cdmaRoamingMode != settingsRoamingMode) {
+ settingsRoamingMode = cdmaRoamingMode;
+ //changes the Settings.Secure accordingly to statusCdmaRoamingMode
+ Settings.Global.putInt(
+ getContext().getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ settingsRoamingMode);
+ }
+ //changes the mButtonPreferredNetworkMode accordingly to modemNetworkMode
+ setValue(Integer.toString(cdmaRoamingMode));
+ }
+ else {
+ if(DBG) Log.i(LOG_TAG, "reset cdma roaming mode to default" );
+ resetCdmaRoamingModeToDefault();
+ }
+ }
+ }
+
+ private void handleSetCdmaRoamingPreference(Message msg) {
+ boolean isSuccessed = (boolean) msg.obj;
+
+ if (isSuccessed && (getValue() != null)) {
+ int cdmaRoamingMode = Integer.parseInt(getValue());
+ Settings.Global.putInt(
+ getContext().getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ cdmaRoamingMode );
+ } else {
+ queryCdmaRoamingMode();
+ }
+ }
+
+ private void resetCdmaRoamingModeToDefault() {
+ //set the mButtonCdmaRoam
+ setValue(Integer.toString(TelephonyManager.CDMA_ROAMING_MODE_ANY));
+ //set the Settings.System
+ Settings.Global.putInt(
+ getContext().getContentResolver(),
+ Settings.Global.CDMA_ROAMING_MODE,
+ TelephonyManager.CDMA_ROAMING_MODE_ANY);
+ //Set the Status
+ setCdmaRoamingMode(TelephonyManager.CDMA_ROAMING_MODE_ANY);
+ }
+ }
+
+ private void queryCdmaRoamingMode() {
+ ThreadUtils.postOnBackgroundThread(() -> {
+ Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_GET_ROAMING_PREFERENCE);
+ msg.arg1 = mTelephonyManager.getCdmaRoamingMode();
+ msg.sendToTarget();
+ });
+ }
+
+ private void setCdmaRoamingMode(int mode) {
+ ThreadUtils.postOnBackgroundThread(() -> {
+ Message msg = mHandler.obtainMessage(MyHandler.MESSAGE_SET_ROAMING_PREFERENCE);
+ msg.obj = mTelephonyManager.setCdmaRoamingMode(mode);
+ msg.sendToTarget();
+ });
+ }
+}
diff --git a/src/com/android/settings/mobilenetwork/CellInfoUtil.java b/src/com/android/settings/mobilenetwork/CellInfoUtil.java
index 3d6cb28..bb5a8b4 100644
--- a/src/com/android/settings/mobilenetwork/CellInfoUtil.java
+++ b/src/com/android/settings/mobilenetwork/CellInfoUtil.java
@@ -127,6 +127,35 @@
return oi;
}
+ /**
+ * Creates a CellInfo object from OperatorInfo. GsmCellInfo is used here only because
+ * operatorInfo does not contain technology type while CellInfo is an abstract object that
+ * requires to specify technology type. It doesn't matter which CellInfo type to use here, since
+ * we only want to wrap the operator info and PLMN to a CellInfo object.
+ */
+ public static CellInfo convertOperatorInfoToCellInfo(OperatorInfo operatorInfo) {
+ String operatorNumeric = operatorInfo.getOperatorNumeric();
+ String mcc = null;
+ String mnc = null;
+ if (operatorNumeric != null && operatorNumeric.matches("^[0-9]{5,6}$")) {
+ mcc = operatorNumeric.substring(0, 3);
+ mnc = operatorNumeric.substring(3);
+ }
+ CellIdentityGsm cig = new CellIdentityGsm(
+ Integer.MAX_VALUE /* lac */,
+ Integer.MAX_VALUE /* cid */,
+ Integer.MAX_VALUE /* arfcn */,
+ Integer.MAX_VALUE /* bsic */,
+ mcc,
+ mnc,
+ operatorInfo.getOperatorAlphaLong(),
+ operatorInfo.getOperatorAlphaShort());
+
+ CellInfoGsm ci = new CellInfoGsm();
+ ci.setCellIdentity(cig);
+ return ci;
+ }
+
/** Checks whether the network operator is forbidden. */
public static boolean isForbidden(CellInfo cellInfo, List<String> forbiddenPlmns) {
String plmn = CellInfoUtil.getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
diff --git a/src/com/android/settings/mobilenetwork/DataUsagePreference.java b/src/com/android/settings/mobilenetwork/DataUsagePreference.java
new file mode 100644
index 0000000..05d26ed
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/DataUsagePreference.java
@@ -0,0 +1,80 @@
+/*
+ * 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.mobilenetwork;
+
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.net.NetworkTemplate;
+import androidx.preference.Preference;
+import android.provider.Settings;
+import android.telephony.TelephonyManager;
+import android.text.format.Formatter;
+import android.util.AttributeSet;
+
+import com.android.settings.R;
+import com.android.settingslib.net.DataUsageController;
+
+/**
+ * The preference that shows mobile data usage summary and
+ * leads to mobile data usage list page.
+ */
+public class DataUsagePreference extends Preference {
+
+ private NetworkTemplate mTemplate;
+ private int mSubId;
+
+ public DataUsagePreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ /**
+ * After creating this preference, this functions needs to be called to
+ * initialize which subID it connects to.
+ */
+ public void initialize(int subId) {
+ final Context context = getContext();
+ mSubId = subId;
+ mTemplate = getNetworkTemplate(context, subId);
+
+ DataUsageController controller = new DataUsageController(context);
+
+ DataUsageController.DataUsageInfo usageInfo = controller.getDataUsageInfo(mTemplate);
+ setSummary(context.getString(R.string.data_usage_template,
+ Formatter.formatFileSize(context, usageInfo.usageLevel), usageInfo.period));
+ setIntent(getIntent());
+ }
+
+ @Override
+ public Intent getIntent() {
+ Intent intent = new Intent(Settings.ACTION_MOBILE_DATA_USAGE);
+
+ intent.putExtra(Settings.EXTRA_NETWORK_TEMPLATE, mTemplate);
+ intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
+
+ return intent;
+ }
+
+ private NetworkTemplate getNetworkTemplate(Context context, int subId) {
+ TelephonyManager tm = (TelephonyManager) context
+ .getSystemService(Context.TELEPHONY_SERVICE);
+ NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
+ tm.getSubscriberId(subId));
+ return NetworkTemplate.normalize(mobileAll,
+ tm.getMergedSubscriberIds());
+ }
+}
diff --git a/src/com/android/settings/mobilenetwork/GsmUmtsOptions.java b/src/com/android/settings/mobilenetwork/GsmUmtsOptions.java
new file mode 100644
index 0000000..95f24fb
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/GsmUmtsOptions.java
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.mobilenetwork;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.PersistableBundle;
+import android.provider.Settings;
+import android.telephony.CarrierConfigManager;
+import android.telephony.TelephonyManager;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
+
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.R;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settingslib.RestrictedPreference;
+
+/**
+ * List of Network-specific settings screens.
+ */
+public class GsmUmtsOptions {
+ private static final String LOG_TAG = "GsmUmtsOptions";
+
+ private CarrierConfigManager mCarrierConfigManager;
+ private RestrictedPreference mButtonAPNExpand;
+ private Preference mCategoryAPNExpand;
+ Preference mCarrierSettingPref;
+
+ private NetworkOperators mNetworkOperator;
+
+ private static final String BUTTON_APN_EXPAND_KEY = "button_gsm_apn_key";
+ private static final String CATEGORY_APN_EXPAND_KEY = "category_gsm_apn_key";
+ private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
+
+ public static final String EXTRA_SUB_ID = "sub_id";
+ private PreferenceFragmentCompat mPrefFragment;
+ private PreferenceScreen mPrefScreen;
+
+ public GsmUmtsOptions(PreferenceFragmentCompat prefFragment, PreferenceScreen prefScreen,
+ final int subId) {
+ final Context context = prefFragment.getContext();
+ mPrefFragment = prefFragment;
+ mPrefScreen = prefScreen;
+ mCarrierConfigManager = new CarrierConfigManager(context);
+ mPrefFragment.addPreferencesFromResource(R.xml.gsm_umts_options);
+ mButtonAPNExpand = (RestrictedPreference) mPrefScreen.findPreference(BUTTON_APN_EXPAND_KEY);
+ mCategoryAPNExpand = mPrefScreen.findPreference(CATEGORY_APN_EXPAND_KEY);
+ mNetworkOperator = (NetworkOperators) mPrefScreen
+ .findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
+ mCarrierSettingPref = mPrefScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
+
+ mNetworkOperator.initialize();
+
+ update(subId);
+ }
+
+ // Unlike mPrefFragment or mPrefScreen, subId may change during lifecycle of GsmUmtsOptions.
+ // When that happens, we update GsmUmtsOptions with new parameters.
+ protected void update(final int subId) {
+ boolean addAPNExpand = true;
+ boolean addNetworkOperatorsCategory = true;
+ boolean addCarrierSettings = true;
+ final TelephonyManager telephonyManager = TelephonyManager.from(mPrefFragment.getContext())
+ .createForSubscriptionId(subId);
+ //TODO(b/115429509): Get phone from subId
+ Phone phone = null;
+ if (phone == null) return;
+ if (telephonyManager.getPhoneType() != PhoneConstants.PHONE_TYPE_GSM) {
+ log("Not a GSM phone");
+ addAPNExpand = false;
+ mNetworkOperator.setEnabled(false);
+ } else {
+ log("Not a CDMA phone");
+ PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
+
+ // Determine which options to display. For GSM these are defaulted to true in
+ // CarrierConfigManager, but they maybe overriden by DefaultCarrierConfigService or a
+ // carrier app.
+ // Note: these settings used to be controlled with overlays in
+ // Telephony/res/values/config.xml
+ if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_APN_EXPAND_BOOL)
+ && mCategoryAPNExpand != null) {
+ addAPNExpand = false;
+ }
+ if (!carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_OPERATOR_SELECTION_EXPAND_BOOL)) {
+ addNetworkOperatorsCategory = false;
+ }
+
+ if (carrierConfig.getBoolean(CarrierConfigManager.KEY_CSP_ENABLED_BOOL)) {
+ if (phone.isCspPlmnEnabled()) {
+ log("[CSP] Enabling Operator Selection menu.");
+ mNetworkOperator.setEnabled(true);
+ } else {
+ log("[CSP] Disabling Operator Selection menu.");
+ addNetworkOperatorsCategory = false;
+ }
+ }
+
+ // Read platform settings for carrier settings
+ addCarrierSettings = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_CARRIER_SETTINGS_ENABLE_BOOL);
+ }
+
+ // Making no assumptions of whether they are added or removed at this point.
+ // Calling add or remove explicitly to make sure they are updated.
+
+ if (addAPNExpand) {
+ log("update: addAPNExpand");
+ mButtonAPNExpand.setDisabledByAdmin(
+ MobileNetworkUtils.isDpcApnEnforced(mButtonAPNExpand.getContext())
+ ? RestrictedLockUtilsInternal.getDeviceOwner(
+ mButtonAPNExpand.getContext())
+ : null);
+ mButtonAPNExpand.setOnPreferenceClickListener(
+ new Preference.OnPreferenceClickListener() {
+ @Override
+ public boolean onPreferenceClick(Preference preference) {
+ MetricsLogger.action(mButtonAPNExpand.getContext(),
+ MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS);
+ // We need to build the Intent by hand as the Preference Framework
+ // does not allow to add an Intent with some extras into a Preference
+ // XML file
+ final Intent intent = new Intent(Settings.ACTION_APN_SETTINGS);
+ // This will setup the Home and Search affordance
+ intent.putExtra(":settings:show_fragment_as_subsetting", true);
+ intent.putExtra(EXTRA_SUB_ID, subId);
+ mPrefFragment.startActivity(intent);
+ return true;
+ }
+ });
+ mPrefScreen.addPreference(mCategoryAPNExpand);
+ } else {
+ mPrefScreen.removePreference(mCategoryAPNExpand);
+ }
+
+ if (addNetworkOperatorsCategory) {
+ mPrefScreen.addPreference(mNetworkOperator);
+ mNetworkOperator.update(subId);
+ } else {
+ mPrefScreen.removePreference(mNetworkOperator);
+ }
+
+ if (addCarrierSettings) {
+ mPrefScreen.addPreference(mCarrierSettingPref);
+ } else {
+ mPrefScreen.removePreference(mCarrierSettingPref);
+ }
+
+ }
+
+ protected boolean preferenceTreeClick(Preference preference) {
+ return mNetworkOperator.preferenceTreeClick(preference);
+ }
+
+ protected void log(String s) {
+ android.util.Log.d(LOG_TAG, s);
+ }
+}
+
diff --git a/src/com/android/settings/mobilenetwork/MobileDataPreference.java b/src/com/android/settings/mobilenetwork/MobileDataPreference.java
new file mode 100644
index 0000000..37ce5a6
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/MobileDataPreference.java
@@ -0,0 +1,324 @@
+/*
+ * 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.mobilenetwork;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.provider.Settings.Global;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.view.View;
+import android.widget.Checkable;
+
+import androidx.preference.DialogPreference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
+
+import java.util.List;
+
+/**
+ * Customized Preference to enable / disable mobile data.
+ * Basically copy of with com.android.settings.CellDataPreference.
+ */
+public class MobileDataPreference extends DialogPreference implements
+ DialogInterface.OnClickListener {
+
+ private static final boolean DBG = false;
+ private static final String TAG = "MobileDataPreference";
+
+ public int mSubId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ public boolean mChecked;
+ // Whether to show the dialog to ask switching default data subscription.
+ // Should be true only when a multi-sim phone only supports data connection on a single phone,
+ // and user is enabling data on the non-default phone.
+ public boolean mMultiSimDialog;
+ private TelephonyManager mTelephonyManager;
+ private SubscriptionManager mSubscriptionManager;
+
+ public MobileDataPreference(Context context, AttributeSet attrs) {
+ super(context, attrs, com.android.internal.R.attr.switchPreferenceStyle);
+ }
+
+ // Must be called to avoid binder leakage.
+ void dispose() {
+ mListener.setListener(false, mSubId, getContext());
+ }
+
+ @Override
+ protected void onRestoreInstanceState(Parcelable s) {
+ CellDataState state = (CellDataState) s;
+ super.onRestoreInstanceState(state.getSuperState());
+ mTelephonyManager = TelephonyManager.from(getContext());
+ mChecked = state.mChecked;
+ mMultiSimDialog = state.mMultiSimDialog;
+ if (mSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ mSubId = state.mSubId;
+ setKey(getKey() + mSubId);
+ }
+ notifyChanged();
+ }
+
+ @Override
+ protected Parcelable onSaveInstanceState() {
+ CellDataState state = new CellDataState(super.onSaveInstanceState());
+ state.mChecked = mChecked;
+ state.mMultiSimDialog = mMultiSimDialog;
+ state.mSubId = mSubId;
+ return state;
+ }
+
+ @Override
+ public void onAttached() {
+ super.onAttached();
+ mListener.setListener(true, mSubId, getContext());
+ }
+
+ @Override
+ protected void onPrepareForRemoval() {
+ mListener.setListener(false, mSubId, getContext());
+ super.onPrepareForRemoval();
+ }
+
+ /**
+ * Initialize this preference with subId.
+ */
+ public void initialize(int subId) {
+ if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ throw new IllegalArgumentException("MobileDataPreference needs a SubscriptionInfo");
+ }
+ mSubscriptionManager = SubscriptionManager.from(getContext());
+ mTelephonyManager = TelephonyManager.from(getContext());
+ if (mSubId != subId) {
+ mSubId = subId;
+ setKey(getKey() + subId);
+ }
+ updateChecked();
+ }
+
+ private void updateChecked() {
+ setChecked(mTelephonyManager.getDataEnabled(mSubId));
+ }
+
+ @Override
+ public void performClick() {
+ if (!isEnabled() || !SubscriptionManager.isValidSubscriptionId(mSubId)) {
+ return;
+ }
+ final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(
+ mSubId);
+ final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
+ final boolean isMultiSim = (mTelephonyManager.getSimCount() > 1);
+ final boolean isMultipleDataOnCapable =
+ (mTelephonyManager.getNumberOfModemsWithSimultaneousDataConnections() > 1);
+ final boolean isDefaultDataSubscription = (nextSir != null && currentSir != null
+ && currentSir.getSubscriptionId() == nextSir.getSubscriptionId());
+ if (mChecked) {
+ if (!isMultiSim) {
+ // disabling data; show confirmation dialog which eventually
+ // calls setMobileDataEnabled() once user confirms.
+ mMultiSimDialog = false;
+ super.performClick();
+ } else {
+ // Don't show any dialog.
+ setMobileDataEnabled(false /* enabled */, false /* disableOtherSubscriptions */);
+ }
+ } else {
+ if (isMultiSim && !isMultipleDataOnCapable && !isDefaultDataSubscription) {
+ // enabling data and setting to default; show confirmation dialog which eventually
+ // calls setMobileDataEnabled() once user confirms.
+ mMultiSimDialog = true;
+ super.performClick();
+ } else {
+ // Don't show any dialog.
+ setMobileDataEnabled(true /* enabled */, false /* disableOtherSubscriptions */);
+ }
+ }
+ }
+
+ private void setMobileDataEnabled(boolean enabled, boolean disableOtherSubscriptions) {
+ if (DBG) Log.d(TAG, "setMobileDataEnabled(" + enabled + "," + mSubId + ")");
+
+ MetricsLogger.action(getContext(), MetricsEvent.ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE,
+ enabled);
+
+ mTelephonyManager.setDataEnabled(mSubId, enabled);
+
+ if (disableOtherSubscriptions) {
+ disableDataForOtherSubscriptions(mSubId);
+ }
+
+ setChecked(enabled);
+ }
+
+ private void setChecked(boolean checked) {
+ if (mChecked == checked) return;
+ mChecked = checked;
+ notifyChanged();
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+ View checkableView = holder.findViewById(com.android.internal.R.id.switch_widget);
+ checkableView.setClickable(false);
+ ((Checkable) checkableView).setChecked(mChecked);
+ }
+
+ //TODO(b/114749736): move it to preference controller
+ protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
+ if (mMultiSimDialog) {
+ showMultiSimDialog(builder);
+ } else {
+ showDisableDialog(builder);
+ }
+ }
+
+ private void showDisableDialog(AlertDialog.Builder builder) {
+ builder.setTitle(null)
+ .setMessage(R.string.data_usage_disable_mobile)
+ .setPositiveButton(android.R.string.ok, this)
+ .setNegativeButton(android.R.string.cancel, null);
+ }
+
+ private void showMultiSimDialog(AlertDialog.Builder builder) {
+ final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(mSubId);
+ final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
+
+ final String previousName = (nextSir == null)
+ ? getContext().getResources().getString(R.string.sim_selection_required_pref)
+ : nextSir.getDisplayName().toString();
+
+ builder.setTitle(R.string.sim_change_data_title);
+ builder.setMessage(getContext().getString(R.string.sim_change_data_message,
+ String.valueOf(currentSir != null ? currentSir.getDisplayName() : null),
+ previousName));
+
+ builder.setPositiveButton(android.R.string.ok, this);
+ builder.setNegativeButton(R.string.cancel, null);
+ }
+
+ private void disableDataForOtherSubscriptions(int subId) {
+ List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList();
+ if (subInfoList != null) {
+ for (SubscriptionInfo subInfo : subInfoList) {
+ if (subInfo.getSubscriptionId() != subId) {
+ mTelephonyManager.setDataEnabled(subInfo.getSubscriptionId(), false);
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ if (which != DialogInterface.BUTTON_POSITIVE) {
+ return;
+ }
+ if (mMultiSimDialog) {
+ mSubscriptionManager.setDefaultDataSubId(mSubId);
+ setMobileDataEnabled(true /* enabled */, true /* disableOtherSubscriptions */);
+ } else {
+ // TODO: extend to modify policy enabled flag.
+ setMobileDataEnabled(false /* enabled */, false /* disableOtherSubscriptions */);
+ }
+ }
+
+ private final DataStateListener mListener = new DataStateListener() {
+ @Override
+ public void onChange(boolean selfChange) {
+ updateChecked();
+ }
+ };
+
+ /**
+ * Listener that listens mobile data state change.
+ */
+ public abstract static class DataStateListener extends ContentObserver {
+ public DataStateListener() {
+ super(new Handler(Looper.getMainLooper()));
+ }
+
+ /**
+ * Set / Unset data state listening, specifying subId.
+ */
+ public void setListener(boolean listening, int subId, Context context) {
+ if (listening) {
+ Uri uri = Global.getUriFor(Global.MOBILE_DATA);
+ if (TelephonyManager.getDefault().getSimCount() != 1) {
+ uri = Global.getUriFor(Global.MOBILE_DATA + subId);
+ }
+ context.getContentResolver().registerContentObserver(uri, false, this);
+ } else {
+ context.getContentResolver().unregisterContentObserver(this);
+ }
+ }
+ }
+
+ /**
+ * Class that represents state of mobile data state.
+ * Used by onSaveInstanceState and onRestoreInstanceState.
+ */
+ public static class CellDataState extends BaseSavedState {
+ public int mSubId;
+ public boolean mChecked;
+ public boolean mMultiSimDialog;
+
+ public CellDataState(Parcelable base) {
+ super(base);
+ }
+
+ public CellDataState(Parcel source) {
+ super(source);
+ mChecked = source.readByte() != 0;
+ mMultiSimDialog = source.readByte() != 0;
+ mSubId = source.readInt();
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ super.writeToParcel(dest, flags);
+ dest.writeByte((byte) (mChecked ? 1 : 0));
+ dest.writeByte((byte) (mMultiSimDialog ? 1 : 0));
+ dest.writeInt(mSubId);
+ }
+
+ public static final Creator<CellDataState> CREATOR = new Creator<CellDataState>() {
+ @Override
+ public CellDataState createFromParcel(Parcel source) {
+ return new CellDataState(source);
+ }
+
+ @Override
+ public CellDataState[] newArray(int size) {
+ return new CellDataState[size];
+ }
+ };
+ }
+}
diff --git a/src/com/android/settings/mobilenetwork/MobileNetworkFragment.java b/src/com/android/settings/mobilenetwork/MobileNetworkFragment.java
new file mode 100644
index 0000000..d8df8fa
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/MobileNetworkFragment.java
@@ -0,0 +1,1895 @@
+/*
+ * 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.mobilenetwork;
+
+import static android.provider.Telephony.Carriers.ENFORCE_MANAGED_URI;
+
+import android.app.ActionBar;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.os.PersistableBundle;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.provider.Settings;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.telephony.CarrierConfigManager;
+import android.telephony.PhoneStateListener;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.telephony.euicc.EuiccManager;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.MenuItem;
+
+import com.android.ims.ImsConfig;
+import com.android.ims.ImsManager;
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.internal.telephony.Phone;
+import com.android.internal.telephony.PhoneConstants;
+import com.android.internal.telephony.TelephonyIntents;
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+import com.android.settingslib.RestrictedSwitchPreference;
+import com.android.settingslib.search.SearchIndexable;
+
+import java.util.Iterator;
+import java.util.List;
+
+import androidx.fragment.app.FragmentActivity;
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceFragmentCompat;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
+public class MobileNetworkFragment extends DashboardFragment implements
+ Preference.OnPreferenceChangeListener, RoamingDialogFragment.RoamingDialogListener {
+
+ // debug data
+ private static final String LOG_TAG = "NetworkSettings";
+ private static final boolean DBG = true;
+ public static final int REQUEST_CODE_EXIT_ECM = 17;
+
+ // Number of active Subscriptions to show tabs
+ private static final int TAB_THRESHOLD = 2;
+
+ // Number of last phone number digits shown in Euicc Setting tab
+ private static final int NUM_LAST_PHONE_DIGITS = 4;
+
+ // fragment tag for roaming data dialog
+ private static final String ROAMING_TAG = "RoamingDialogFragment";
+
+ //String keys for preference lookup
+ private static final String BUTTON_PREFERED_NETWORK_MODE = "preferred_network_mode_key";
+ private static final String BUTTON_ROAMING_KEY = "button_roaming_key";
+ private static final String BUTTON_CDMA_LTE_DATA_SERVICE_KEY = "cdma_lte_data_service_key";
+ private static final String BUTTON_ENABLED_NETWORKS_KEY = "enabled_networks_key";
+ private static final String BUTTON_4G_LTE_KEY = "enhanced_4g_lte";
+ private static final String BUTTON_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
+ private static final String BUTTON_CARRIER_SETTINGS_KEY = "carrier_settings_key";
+ private static final String BUTTON_CDMA_SYSTEM_SELECT_KEY = "cdma_system_select_key";
+ private static final String BUTTON_CDMA_SUBSCRIPTION_KEY = "cdma_subscription_key";
+ private static final String BUTTON_CARRIER_SETTINGS_EUICC_KEY =
+ "carrier_settings_euicc_key";
+ private static final String BUTTON_WIFI_CALLING_KEY = "wifi_calling_key";
+ private static final String BUTTON_VIDEO_CALLING_KEY = "video_calling_key";
+ private static final String BUTTON_MOBILE_DATA_ENABLE_KEY = "mobile_data_enable";
+ private static final String BUTTON_DATA_USAGE_KEY = "data_usage_summary";
+ private static final String BUTTON_ADVANCED_OPTIONS_KEY = "advanced_options";
+ private static final String CATEGORY_CALLING_KEY = "calling";
+ private static final String CATEGORY_GSM_APN_EXPAND_KEY = "category_gsm_apn_key";
+ private static final String CATEGORY_CDMA_APN_EXPAND_KEY = "category_cdma_apn_key";
+ private static final String BUTTON_GSM_APN_EXPAND_KEY = "button_gsm_apn_key";
+ private static final String BUTTON_CDMA_APN_EXPAND_KEY = "button_cdma_apn_key";
+
+ private static final String EXTRA_EXIT_ECM_RESULT = "exit_ecm_result";
+ private static final String LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT =
+ "android.telecom.action.CONNECTION_SERVICE_CONFIGURE";
+
+ private final BroadcastReceiver
+ mPhoneChangeReceiver = new PhoneChangeReceiver();
+ private final ContentObserver
+ mDpcEnforcedContentObserver = new DpcApnEnforcedObserver();
+
+ static final int preferredNetworkMode = Phone.PREFERRED_NT_MODE;
+
+ //Information about logical "up" Activity
+ private static final String UP_ACTIVITY_PACKAGE = "com.android.settings";
+ private static final String UP_ACTIVITY_CLASS =
+ "com.android.settings.Settings$WirelessSettingsActivity";
+
+ //Information that needs to save into Bundle.
+ private static final String EXPAND_ADVANCED_FIELDS = "expand_advanced_fields";
+ //Intent extra to indicate expand all fields.
+ private static final String EXPAND_EXTRA = "expandable";
+
+ private enum TabState {
+ NO_TABS, UPDATE, DO_NOTHING
+ }
+
+ private SubscriptionManager mSubscriptionManager;
+ private TelephonyManager mTelephonyManager;
+ private CarrierConfigManager mCarrierConfigManager;
+ private int mSubId;
+
+ //UI objects
+ private ListPreference mButtonPreferredNetworkMode;
+ private ListPreference mButtonEnabledNetworks;
+ private RestrictedSwitchPreference mButtonDataRoam;
+ private SwitchPreference mButton4glte;
+ private Preference mLteDataServicePref;
+ private Preference mEuiccSettingsPref;
+ private PreferenceCategory mCallingCategory;
+ private Preference mWiFiCallingPref;
+ private SwitchPreference mVideoCallingPref;
+ private NetworkSelectListPreference mButtonNetworkSelect;
+ private MobileDataPreference mMobileDataPref;
+ private DataUsagePreference mDataUsagePref;
+
+ private static final String iface = "rmnet0"; //TODO: this will go away
+ private List<SubscriptionInfo> mActiveSubInfos;
+
+ private UserManager mUm;
+ private ImsManager mImsMgr;
+ private MyHandler mHandler;
+ private boolean mOkClicked;
+
+ //GsmUmts options and Cdma options
+ GsmUmtsOptions mGsmUmtsOptions;
+ CdmaOptions mCdmaOptions;
+
+ private Preference mClickedPreference;
+ private boolean mShow4GForLTE;
+ private boolean mIsGlobalCdma;
+ private boolean mOnlyAutoSelectInHomeNW;
+ private boolean mUnavailable;
+
+ private class PhoneCallStateListener extends PhoneStateListener {
+ /*
+ * Enable/disable the 'Enhanced 4G LTE Mode' when in/out of a call
+ * and depending on TTY mode and TTY support over VoLTE.
+ * @see android.telephony.PhoneStateListener#onCallStateChanged(int,
+ * java.lang.String)
+ */
+ @Override
+ public void onCallStateChanged(int state, String incomingNumber) {
+ if (DBG) log("PhoneStateListener.onCallStateChanged: state=" + state);
+
+ updateEnhanced4gLteState();
+ updateWiFiCallState();
+ updateVideoCallState();
+ updatePreferredNetworkType();
+ }
+
+ /**
+ * Listen to different subId if it's changed.
+ */
+ protected void updateSubscriptionId(Integer subId) {
+ if (subId.equals(PhoneCallStateListener.this.mSubId)) {
+ return;
+ }
+
+ PhoneCallStateListener.this.mSubId = subId;
+
+ mTelephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
+
+ // Now, listen to new subId if it's valid.
+ if (SubscriptionManager.isValidSubscriptionId(subId)) {
+ mTelephonyManager.listen(this, PhoneStateListener.LISTEN_CALL_STATE);
+ }
+ }
+ }
+
+ private final PhoneCallStateListener
+ mPhoneStateListener = new PhoneCallStateListener();
+
+ @Override
+ public int getMetricsCategory() {
+ //TODO(b/114749736): add metrics id for it
+ return 0;
+ }
+
+ @Override
+ public void onPositiveButtonClick(androidx.fragment.app.DialogFragment dialog) {
+ mTelephonyManager.setDataRoamingEnabled(true);
+ mButtonDataRoam.setChecked(true);
+ MetricsLogger.action(getContext(),
+ getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
+ true);
+ }
+
+ /**
+ * Invoked on each preference click in this hierarchy, overrides
+ * PreferenceActivity's implementation. Used to make sure we track the
+ * preference click events.
+ */
+ @Override
+ public boolean onPreferenceTreeClick(Preference preference) {
+ sendMetricsEventPreferenceClicked(getPreferenceScreen(), preference);
+
+ /** TODO: Refactor and get rid of the if's using subclasses */
+ if (preference.getKey().equals(BUTTON_4G_LTE_KEY)) {
+ return true;
+ } else if (mGsmUmtsOptions != null &&
+ mGsmUmtsOptions.preferenceTreeClick(preference) == true) {
+ return true;
+ } else if (mCdmaOptions != null &&
+ mCdmaOptions.preferenceTreeClick(preference) == true) {
+ if (mTelephonyManager.getEmergencyCallbackMode()) {
+
+ mClickedPreference = preference;
+
+ // In ECM mode launch ECM app dialog
+ startActivityForResult(
+ new Intent(TelephonyIntents.ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS, null),
+ REQUEST_CODE_EXIT_ECM);
+ }
+ return true;
+ } else if (preference == mButtonPreferredNetworkMode) {
+ //displays the value taken from the Settings.System
+ int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ preferredNetworkMode);
+ mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
+ return true;
+ } else if (preference == mLteDataServicePref) {
+ String tmpl = android.provider.Settings.Global.getString(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL);
+ if (!TextUtils.isEmpty(tmpl)) {
+ String imsi = mTelephonyManager.getSubscriberId();
+ if (imsi == null) {
+ imsi = "";
+ }
+ final String url = TextUtils.isEmpty(tmpl) ? null
+ : TextUtils.expandTemplate(tmpl, imsi).toString();
+ Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
+ startActivity(intent);
+ } else {
+ android.util.Log.e(LOG_TAG, "Missing SETUP_PREPAID_DATA_SERVICE_URL");
+ }
+ return true;
+ } else if (preference == mButtonEnabledNetworks) {
+ int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ preferredNetworkMode);
+ mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
+ return true;
+ } else if (preference == mButtonDataRoam) {
+ // Do not disable the preference screen if the user clicks Data roaming.
+ return true;
+ } else if (preference == mEuiccSettingsPref) {
+ Intent intent = new Intent(EuiccManager.ACTION_MANAGE_EMBEDDED_SUBSCRIPTIONS);
+ startActivity(intent);
+ return true;
+ } else if (preference == mWiFiCallingPref || preference == mVideoCallingPref
+ || preference == mMobileDataPref || preference == mDataUsagePref) {
+ return false;
+ } else {
+ // if the button is anything but the simple toggle preference,
+ // we'll need to disable all preferences to reject all click
+ // events until the sub-activity's UI comes up.
+ getPreferenceScreen().setEnabled(false);
+ // Let the intents be launched by the Preference manager
+ return false;
+ }
+ }
+
+ private final SubscriptionManager.OnSubscriptionsChangedListener
+ mOnSubscriptionsChangeListener
+ = new SubscriptionManager.OnSubscriptionsChangedListener() {
+ @Override
+ public void onSubscriptionsChanged() {
+ if (DBG) log("onSubscriptionsChanged:");
+ initializeSubscriptions();
+ }
+ };
+
+ private int getSlotIdFromIntent(Intent intent) {
+ Bundle data = intent.getExtras();
+ int subId = -1;
+ if (data != null) {
+ subId = data.getInt(Settings.EXTRA_SUB_ID, -1);
+ }
+ return SubscriptionManager.getSlotIndex(subId);
+ }
+
+ private void initializeSubscriptions() {
+ final FragmentActivity activity = getActivity();
+ if (activity == null) {
+ // Process preferences in activity only if its not destroyed
+ return;
+ }
+ updatePhone();
+ updateBody();
+ if (DBG) log("initializeSubscriptions:-");
+ }
+
+ private TabState isUpdateTabsNeeded(List<SubscriptionInfo> newSil) {
+ TabState state = TabState.DO_NOTHING;
+ if (newSil == null) {
+ if (mActiveSubInfos.size() >= TAB_THRESHOLD) {
+ if (DBG) log("isUpdateTabsNeeded: NO_TABS, size unknown and was tabbed");
+ state = TabState.NO_TABS;
+ }
+ } else if (newSil.size() < TAB_THRESHOLD && mActiveSubInfos.size() >= TAB_THRESHOLD) {
+ if (DBG) log("isUpdateTabsNeeded: NO_TABS, size went to small");
+ state = TabState.NO_TABS;
+ } else if (newSil.size() >= TAB_THRESHOLD && mActiveSubInfos.size() < TAB_THRESHOLD) {
+ if (DBG) log("isUpdateTabsNeeded: UPDATE, size changed");
+ state = TabState.UPDATE;
+ } else if (newSil.size() >= TAB_THRESHOLD) {
+ Iterator<SubscriptionInfo> siIterator = mActiveSubInfos.iterator();
+ for(SubscriptionInfo newSi : newSil) {
+ SubscriptionInfo curSi = siIterator.next();
+ if (!newSi.getDisplayName().equals(curSi.getDisplayName())) {
+ if (DBG) log("isUpdateTabsNeeded: UPDATE, new name="
+ + newSi.getDisplayName());
+ state = TabState.UPDATE;
+ break;
+ }
+ }
+ }
+ if (DBG) {
+ Log.i(LOG_TAG, "isUpdateTabsNeeded:- " + state
+ + " newSil.size()=" + ((newSil != null) ? newSil.size() : 0)
+ + " mActiveSubInfos.size()=" + mActiveSubInfos.size());
+ }
+ return state;
+ }
+
+ private void updatePhone() {
+ if (mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ mImsMgr = ImsManager.getInstance(getContext(),
+ SubscriptionManager.getPhoneId(mSubId));
+ mTelephonyManager = new TelephonyManager(getContext(), mSubId);
+ }
+
+ mPhoneStateListener.updateSubscriptionId(mSubId);
+ }
+
+ @Override
+ public void onCreate(Bundle icicle) {
+ Log.i(LOG_TAG, "onCreate:+");
+ super.onCreate(icicle);
+ final Context context = getContext();
+
+ if (context == null) {
+ Log.e(LOG_TAG, "onCreate:- with no valid activity.");
+ return;
+ }
+
+ mHandler = new MyHandler();
+ mUm = (UserManager) context.getSystemService(Context.USER_SERVICE);
+ mSubscriptionManager = SubscriptionManager.from(context);
+ mTelephonyManager = (TelephonyManager) context.getSystemService(
+ Context.TELEPHONY_SERVICE);
+ mCarrierConfigManager = new CarrierConfigManager(getContext());
+
+ mButton4glte = (SwitchPreference)findPreference(BUTTON_4G_LTE_KEY);
+ mButton4glte.setOnPreferenceChangeListener(this);
+
+ mCallingCategory = (PreferenceCategory) findPreference(CATEGORY_CALLING_KEY);
+ mWiFiCallingPref = findPreference(BUTTON_WIFI_CALLING_KEY);
+ mVideoCallingPref = (SwitchPreference) findPreference(BUTTON_VIDEO_CALLING_KEY);
+ mMobileDataPref = (MobileDataPreference) findPreference(BUTTON_MOBILE_DATA_ENABLE_KEY);
+ mDataUsagePref = (DataUsagePreference) findPreference(BUTTON_DATA_USAGE_KEY);
+
+ try {
+ Context con = context.createPackageContext("com.android.systemui", 0);
+ int id = con.getResources().getIdentifier("config_show4GForLTE",
+ "bool", "com.android.systemui");
+ mShow4GForLTE = con.getResources().getBoolean(id);
+ } catch (PackageManager.NameNotFoundException e) {
+ Log.e(LOG_TAG, "NameNotFoundException for show4GFotLTE");
+ mShow4GForLTE = false;
+ }
+
+ //get UI object references
+ PreferenceScreen prefSet = getPreferenceScreen();
+
+ mButtonDataRoam = (RestrictedSwitchPreference) prefSet.findPreference(
+ BUTTON_ROAMING_KEY);
+ mButtonPreferredNetworkMode = (ListPreference) prefSet.findPreference(
+ BUTTON_PREFERED_NETWORK_MODE);
+ mButtonEnabledNetworks = (ListPreference) prefSet.findPreference(
+ BUTTON_ENABLED_NETWORKS_KEY);
+ mButtonDataRoam.setOnPreferenceChangeListener(this);
+
+ mLteDataServicePref = prefSet.findPreference(BUTTON_CDMA_LTE_DATA_SERVICE_KEY);
+
+ mEuiccSettingsPref = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_EUICC_KEY);
+ mEuiccSettingsPref.setOnPreferenceChangeListener(this);
+
+ // Initialize mActiveSubInfo
+ int max = mSubscriptionManager.getActiveSubscriptionInfoCountMax();
+ mActiveSubInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
+ mSubId = getArguments().getInt(MobileSettingsActivity.KEY_SUBSCRIPTION_ID,
+ SubscriptionManager.INVALID_SUBSCRIPTION_ID);
+
+ updatePhone();
+ if (hasActiveSubscriptions()) {
+ updateEnabledNetworksEntries();
+ }
+ Log.i(LOG_TAG, "onCreate:-");
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ if (mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS)
+ || !mUm.isSystemUser()) {
+ mUnavailable = true;
+ //TODO(b/114749736): migrate telephony_disallowed_preference_screen.xml
+ } else {
+ initializeSubscriptions();
+ }
+ }
+
+ private class PhoneChangeReceiver extends BroadcastReceiver {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.i(LOG_TAG, "onReceive:");
+ if (getActivity() == null || getContext() == null) {
+ // Received broadcast and activity is in the process of being torn down.
+ return;
+ }
+ // When the radio changes (ex: CDMA->GSM), refresh all options.
+ updateBody();
+ }
+ }
+
+ private class DpcApnEnforcedObserver extends ContentObserver {
+ DpcApnEnforcedObserver() {
+ super(null);
+ }
+
+ @Override
+ public void onChange(boolean selfChange) {
+ Log.i(LOG_TAG, "DPC enforced onChange:");
+ if (getActivity() == null || getContext() == null) {
+ // Received content change and activity is in the process of being torn down.
+ return;
+ }
+ updateBody();
+ }
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ if (mMobileDataPref != null) {
+ mMobileDataPref.dispose();
+ }
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ Log.i(LOG_TAG, "onResume:+");
+
+ if (mUnavailable) {
+ Log.i(LOG_TAG, "onResume:- ignore mUnavailable == false");
+ return;
+ }
+
+ // upon resumption from the sub-activity, make sure we re-enable the
+ // preferences.
+ getPreferenceScreen().setEnabled(true);
+
+ // Set UI state in onResume because a user could go home, launch some
+ // app to change this setting's backend, and re-launch this settings app
+ // and the UI state would be inconsistent with actual state
+ mButtonDataRoam.setChecked(mTelephonyManager.isDataRoamingEnabled());
+
+ if (getPreferenceScreen().findPreference(BUTTON_PREFERED_NETWORK_MODE) != null
+ || getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null) {
+ updatePreferredNetworkUIFromDb();
+ }
+
+ mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);
+
+ // NOTE: Buttons will be enabled/disabled in mPhoneStateListener
+ updateEnhanced4gLteState();
+
+ // Video calling and WiFi calling state might have changed.
+ updateCallingCategory();
+
+ mSubscriptionManager.addOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+
+ final Context context = getContext();
+ IntentFilter intentFilter = new IntentFilter(
+ TelephonyIntents.ACTION_RADIO_TECHNOLOGY_CHANGED);
+ context.registerReceiver(mPhoneChangeReceiver, intentFilter);
+ context.getContentResolver().registerContentObserver(ENFORCE_MANAGED_URI, false,
+ mDpcEnforcedContentObserver);
+
+ Log.i(LOG_TAG, "onResume:-");
+
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.network_setting_fragment;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return null;
+ }
+
+ private boolean hasActiveSubscriptions() {
+ return mSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ }
+
+ private void updateBodyBasicFields(FragmentActivity activity, PreferenceScreen prefSet,
+ int phoneSubId, boolean hasActiveSubscriptions) {
+ Context context = getContext();
+
+ ActionBar actionBar = activity.getActionBar();
+ if (actionBar != null) {
+ // android.R.id.home will be triggered in onOptionsItemSelected()
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
+
+ prefSet.addPreference(mMobileDataPref);
+ prefSet.addPreference(mButtonDataRoam);
+ prefSet.addPreference(mDataUsagePref);
+
+ mMobileDataPref.setEnabled(hasActiveSubscriptions);
+ mButtonDataRoam.setEnabled(hasActiveSubscriptions);
+ mDataUsagePref.setEnabled(hasActiveSubscriptions);
+
+ if (hasActiveSubscriptions) {
+ // Customized preferences needs to be initialized with subId.
+ mMobileDataPref.initialize(phoneSubId);
+ mDataUsagePref.initialize(phoneSubId);
+
+ // Initialize states of mButtonDataRoam.
+ mButtonDataRoam.setChecked(mTelephonyManager.isDataRoamingEnabled());
+ if (mButtonDataRoam.isEnabled()) {
+ if (RestrictedLockUtilsInternal.hasBaseUserRestriction(context,
+ UserManager.DISALLOW_DATA_ROAMING, UserHandle.myUserId())) {
+ mButtonDataRoam.setEnabled(false);
+ } else {
+ mButtonDataRoam.checkRestrictionAndSetDisabled(
+ UserManager.DISALLOW_DATA_ROAMING);
+ }
+ }
+ }
+ }
+
+ private void updateBody() {
+ final FragmentActivity activity = getActivity();
+ final PreferenceScreen prefSet = getPreferenceScreen();
+ final boolean hasActiveSubscriptions = hasActiveSubscriptions();
+
+ if (activity == null) {
+ Log.e(LOG_TAG, "updateBody with no valid activity.");
+ return;
+ }
+
+ if (prefSet == null) {
+ Log.e(LOG_TAG, "updateBody with no null prefSet.");
+ return;
+ }
+
+ prefSet.removeAll();
+
+ updateBodyBasicFields(activity, prefSet, mSubId, hasActiveSubscriptions);
+
+ if (hasActiveSubscriptions) {
+ updateBodyAdvancedFields(activity, prefSet, mSubId, hasActiveSubscriptions);
+ } else {
+ // Shows the "Carrier" preference that allows user to add a e-sim profile.
+ if (MobileNetworkUtils.showEuiccSettings(getContext())) {
+ mEuiccSettingsPref.setSummary(null /* summary */);
+ prefSet.addPreference(mEuiccSettingsPref);
+ }
+ }
+ }
+
+ private void updateBodyAdvancedFields(FragmentActivity activity, PreferenceScreen prefSet,
+ int phoneSubId, boolean hasActiveSubscriptions) {
+ boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
+ == PhoneConstants.LTE_ON_CDMA_TRUE;
+
+ if (DBG) {
+ log("updateBody: isLteOnCdma=" + isLteOnCdma + " phoneSubId=" + phoneSubId);
+ }
+
+ prefSet.addPreference(mButtonPreferredNetworkMode);
+ prefSet.addPreference(mButtonEnabledNetworks);
+ prefSet.addPreference(mButton4glte);
+
+ if (MobileNetworkUtils.showEuiccSettings(getContext())) {
+ prefSet.addPreference(mEuiccSettingsPref);
+ String spn = mTelephonyManager.getSimOperatorName();
+ if (TextUtils.isEmpty(spn)) {
+ mEuiccSettingsPref.setSummary(null);
+ } else {
+ mEuiccSettingsPref.setSummary(spn);
+ }
+ }
+
+ int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
+ preferredNetworkMode);
+
+ PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ mIsGlobalCdma = isLteOnCdma
+ && carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
+ if (carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL)) {
+ prefSet.removePreference(mButtonPreferredNetworkMode);
+ prefSet.removePreference(mButtonEnabledNetworks);
+ prefSet.removePreference(mLteDataServicePref);
+ } else if (carrierConfig.getBoolean(CarrierConfigManager
+ .KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL)
+ && !mTelephonyManager.getServiceState().getRoaming()
+ && mTelephonyManager.getServiceState().getDataRegState()
+ == ServiceState.STATE_IN_SERVICE) {
+ prefSet.removePreference(mButtonPreferredNetworkMode);
+ prefSet.removePreference(mButtonEnabledNetworks);
+
+ final int phoneType = mTelephonyManager.getPhoneType();
+ if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+ updateCdmaOptions(this, prefSet, mSubId);
+ } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+ updateGsmUmtsOptions(this, prefSet, phoneSubId);
+ } else {
+ throw new IllegalStateException("Unexpected phone type: " + phoneType);
+ }
+ // Since pref is being hidden from user, set network mode to default
+ // in case it is currently something else. That is possible if user
+ // changed the setting while roaming and is now back to home network.
+ settingsNetworkMode = preferredNetworkMode;
+ } else if (carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_WORLD_PHONE_BOOL) == true) {
+ prefSet.removePreference(mButtonEnabledNetworks);
+ // set the listener for the mButtonPreferredNetworkMode list preference so we can issue
+ // change Preferred Network Mode.
+ mButtonPreferredNetworkMode.setOnPreferenceChangeListener(this);
+
+ updateCdmaOptions(this, prefSet, mSubId);
+ updateGsmUmtsOptions(this, prefSet, phoneSubId);
+ } else {
+ prefSet.removePreference(mButtonPreferredNetworkMode);
+ updateEnabledNetworksEntries();
+ mButtonEnabledNetworks.setOnPreferenceChangeListener(this);
+ if (DBG) log("settingsNetworkMode: " + settingsNetworkMode);
+ }
+
+ final boolean missingDataServiceUrl = TextUtils.isEmpty(
+ android.provider.Settings.Global.getString(activity.getContentResolver(),
+ android.provider.Settings.Global.SETUP_PREPAID_DATA_SERVICE_URL));
+ if (!isLteOnCdma || missingDataServiceUrl) {
+ prefSet.removePreference(mLteDataServicePref);
+ } else {
+ android.util.Log.d(LOG_TAG, "keep ltePref");
+ }
+
+ updateEnhanced4gLteState();
+ updatePreferredNetworkType();
+ updateCallingCategory();
+
+ // Enable link to CMAS app settings depending on the value in config.xml.
+ final boolean isCellBroadcastAppLinkEnabled = activity.getResources().getBoolean(
+ com.android.internal.R.bool.config_cellBroadcastAppLinks);
+ if (!mUm.isAdminUser() || !isCellBroadcastAppLinkEnabled
+ || mUm.hasUserRestriction(UserManager.DISALLOW_CONFIG_CELL_BROADCASTS)) {
+ PreferenceScreen root = getPreferenceScreen();
+ Preference ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
+ if (ps != null) {
+ root.removePreference(ps);
+ }
+ }
+
+ /**
+ * Listen to extra preference changes that need as Metrics events logging.
+ */
+ if (prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY) != null) {
+ prefSet.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
+ .setOnPreferenceChangeListener(this);
+ }
+
+ if (prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY) != null) {
+ prefSet.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
+ .setOnPreferenceChangeListener(this);
+ }
+
+ // Get the networkMode from Settings.System and displays it
+ mButtonEnabledNetworks.setValue(Integer.toString(settingsNetworkMode));
+ mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
+ UpdatePreferredNetworkModeSummary(settingsNetworkMode);
+ UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
+ // Display preferred network type based on what modem returns b/18676277
+ new SetPreferredNetworkAsyncTask(
+ mTelephonyManager,
+ mSubId,
+ settingsNetworkMode,
+ mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
+ .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+
+ /**
+ * Enable/disable depending upon if there are any active subscriptions.
+ *
+ * I've decided to put this enable/disable code at the bottom as the
+ * code above works even when there are no active subscriptions, thus
+ * putting it afterwards is a smaller change. This can be refined later,
+ * but you do need to remember that this all needs to work when subscriptions
+ * change dynamically such as when hot swapping sims.
+ */
+ boolean useVariant4glteTitle = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL);
+ int enhanced4glteModeTitleId = useVariant4glteTitle ?
+ R.string.enhanced_4g_lte_mode_title_variant :
+ R.string.enhanced_4g_lte_mode_title;
+
+ mOnlyAutoSelectInHomeNW = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL);
+ mButton4glte.setTitle(enhanced4glteModeTitleId);
+ mLteDataServicePref.setEnabled(hasActiveSubscriptions);
+ Preference ps;
+ ps = findPreference(BUTTON_CELL_BROADCAST_SETTINGS);
+ if (ps != null) {
+ ps.setEnabled(hasActiveSubscriptions);
+ }
+ ps = findPreference(CATEGORY_GSM_APN_EXPAND_KEY);
+ if (ps != null) {
+ ps.setEnabled(hasActiveSubscriptions);
+ }
+ ps = findPreference(CATEGORY_CDMA_APN_EXPAND_KEY);
+ if (ps != null) {
+ ps.setEnabled(hasActiveSubscriptions);
+ }
+ ps = findPreference(NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
+ if (ps != null) {
+ ps.setEnabled(hasActiveSubscriptions);
+ }
+ ps = findPreference(BUTTON_CARRIER_SETTINGS_KEY);
+ if (ps != null) {
+ ps.setEnabled(hasActiveSubscriptions);
+ }
+ ps = findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY);
+ if (ps != null) {
+ ps.setEnabled(hasActiveSubscriptions);
+ }
+ ps = findPreference(CATEGORY_CALLING_KEY);
+ if (ps != null) {
+ ps.setEnabled(hasActiveSubscriptions);
+ }
+ ps = findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY);
+ if (ps != null) {
+ ps.setSummary(null);
+ if (mTelephonyManager.getServiceState().getRoaming()) {
+ ps.setEnabled(true);
+ } else {
+ ps.setEnabled(!mOnlyAutoSelectInHomeNW);
+ if (mOnlyAutoSelectInHomeNW) {
+ ps.setSummary(getResources().getString(
+ R.string.manual_mode_disallowed_summary,
+ mTelephonyManager.getSimOperatorName()));
+ }
+ }
+ }
+ }
+
+ // Requires that mSubId is up to date
+ void updateEnabledNetworksEntries() {
+ final int phoneType = mTelephonyManager.getPhoneType();
+ final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
+ final int lteForced = android.provider.Settings.Global.getInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.LTE_SERVICE_FORCED + mSubId,
+ 0);
+ final boolean isLteOnCdma = mTelephonyManager.getLteOnCdmaMode()
+ == PhoneConstants.LTE_ON_CDMA_TRUE;
+ final int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ preferredNetworkMode);
+ if (isLteOnCdma) {
+ if (lteForced == 0) {
+ mButtonEnabledNetworks.setEntries(
+ R.array.enabled_networks_cdma_choices);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_cdma_values);
+ } else {
+ switch (settingsNetworkMode) {
+ case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
+ case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
+ mButtonEnabledNetworks.setEntries(
+ R.array.enabled_networks_cdma_no_lte_choices);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_cdma_no_lte_values);
+ break;
+ case TelephonyManager.NETWORK_MODE_GLOBAL:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_ONLY:
+ mButtonEnabledNetworks.setEntries(
+ R.array.enabled_networks_cdma_only_lte_choices);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_cdma_only_lte_values);
+ break;
+ default:
+ mButtonEnabledNetworks.setEntries(
+ R.array.enabled_networks_cdma_choices);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_cdma_values);
+ break;
+ }
+ }
+ }
+ updateCdmaOptions(this, getPreferenceScreen(), mSubId);
+
+ } else if (phoneType == PhoneConstants.PHONE_TYPE_GSM) {
+ if (isSupportTdscdma()) {
+ mButtonEnabledNetworks.setEntries(
+ R.array.enabled_networks_tdscdma_choices);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_tdscdma_values);
+ } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
+ && !getResources().getBoolean(R.bool.config_enabled_lte)) {
+ mButtonEnabledNetworks.setEntries(
+ R.array.enabled_networks_except_gsm_lte_choices);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_except_gsm_lte_values);
+ } else if (!carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
+ int select = mShow4GForLTE
+ ? R.array.enabled_networks_except_gsm_4g_choices
+ : R.array.enabled_networks_except_gsm_choices;
+ mButtonEnabledNetworks.setEntries(select);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_except_gsm_values);
+ } else if (!getResources().getBoolean(R.bool.config_enabled_lte)) {
+ mButtonEnabledNetworks.setEntries(
+ R.array.enabled_networks_except_lte_choices);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_except_lte_values);
+ } else if (mIsGlobalCdma) {
+ mButtonEnabledNetworks.setEntries(
+ R.array.enabled_networks_cdma_choices);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_cdma_values);
+ } else {
+ int select = mShow4GForLTE ? R.array.enabled_networks_4g_choices
+ : R.array.enabled_networks_choices;
+ mButtonEnabledNetworks.setEntries(select);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.enabled_networks_values);
+ }
+ updateGsmUmtsOptions(this, getPreferenceScreen(), mSubId);
+ } else {
+ throw new IllegalStateException("Unexpected phone type: " + phoneType);
+ }
+ if (isWorldMode()) {
+ mButtonEnabledNetworks.setEntries(
+ R.array.preferred_network_mode_choices_world_mode);
+ mButtonEnabledNetworks.setEntryValues(
+ R.array.preferred_network_mode_values_world_mode);
+ }
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ if (DBG) log("onPause:+");
+
+ mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_NONE);
+
+ mSubscriptionManager
+ .removeOnSubscriptionsChangedListener(mOnSubscriptionsChangeListener);
+
+ final Context context = getActivity();
+ context.unregisterReceiver(mPhoneChangeReceiver);
+ context.getContentResolver().unregisterContentObserver(mDpcEnforcedContentObserver);
+ if (DBG) log("onPause:-");
+ }
+
+ /**
+ * Implemented to support onPreferenceChangeListener to look for preference
+ * changes specifically on CLIR.
+ *
+ * @param preference is the preference to be changed, should be mButtonCLIR.
+ * @param objValue should be the value of the selection, NOT its localized
+ * display value.
+ */
+ public boolean onPreferenceChange(Preference preference, Object objValue) {
+ sendMetricsEventPreferenceChanged(getPreferenceScreen(), preference, objValue);
+
+ final int phoneSubId = mSubId;
+ if (preference == mButtonPreferredNetworkMode) {
+ //NOTE onPreferenceChange seems to be called even if there is no change
+ //Check if the button value is changed from the System.Setting
+ mButtonPreferredNetworkMode.setValue((String) objValue);
+ int buttonNetworkMode;
+ buttonNetworkMode = Integer.parseInt((String) objValue);
+ int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
+ preferredNetworkMode);
+ if (buttonNetworkMode != settingsNetworkMode) {
+ int modemNetworkMode;
+ // if new mode is invalid ignore it
+ switch (buttonNetworkMode) {
+ case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
+ case TelephonyManager.NETWORK_MODE_GSM_ONLY:
+ case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
+ case TelephonyManager.NETWORK_MODE_GSM_UMTS:
+ case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
+ case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
+ case TelephonyManager.NETWORK_MODE_GLOBAL:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_ONLY:
+ case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ // This is one of the modes we recognize
+ modemNetworkMode = buttonNetworkMode;
+ break;
+ default:
+ loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
+ return true;
+ }
+
+ android.provider.Settings.Global.putInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
+ buttonNetworkMode );
+ //Set the modem network mode
+ new SetPreferredNetworkAsyncTask(
+ mTelephonyManager,
+ mSubId,
+ modemNetworkMode,
+ mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
+ .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ }
+ } else if (preference == mButtonEnabledNetworks) {
+ mButtonEnabledNetworks.setValue((String) objValue);
+ int buttonNetworkMode;
+ buttonNetworkMode = Integer.parseInt((String) objValue);
+ if (DBG) log("buttonNetworkMode: " + buttonNetworkMode);
+ int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
+ preferredNetworkMode);
+ if (buttonNetworkMode != settingsNetworkMode) {
+ int modemNetworkMode;
+ // if new mode is invalid ignore it
+ switch (buttonNetworkMode) {
+ case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
+ case TelephonyManager.NETWORK_MODE_GSM_ONLY:
+ case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ // This is one of the modes we recognize
+ modemNetworkMode = buttonNetworkMode;
+ break;
+ default:
+ loge("Invalid Network Mode (" +buttonNetworkMode+ ") chosen. Ignore.");
+ return true;
+ }
+
+ UpdateEnabledNetworksValueAndSummary(buttonNetworkMode);
+
+ android.provider.Settings.Global.putInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + phoneSubId,
+ buttonNetworkMode );
+ //Set the modem network mode
+ new SetPreferredNetworkAsyncTask(
+ mTelephonyManager,
+ mSubId,
+ modemNetworkMode,
+ mHandler.obtainMessage(MyHandler.MESSAGE_SET_PREFERRED_NETWORK_TYPE))
+ .executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ }
+ } else if (preference == mButton4glte) {
+ boolean enhanced4gMode = !mButton4glte.isChecked();
+ mButton4glte.setChecked(enhanced4gMode);
+ mImsMgr.setEnhanced4gLteModeSetting(mButton4glte.isChecked());
+ } else if (preference == mButtonDataRoam) {
+ if (DBG) log("onPreferenceTreeClick: preference == mButtonDataRoam.");
+
+ //normally called on the toggle click
+ if (!mButtonDataRoam.isChecked()) {
+ PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(
+ mSubId);
+ if (carrierConfig != null && carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_DISABLE_CHARGE_INDICATION_BOOL)) {
+ mTelephonyManager.setDataRoamingEnabled(true);
+ MetricsLogger.action(getContext(),
+ getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
+ true);
+ } else {
+ // MetricsEvent with no value update.
+ MetricsLogger.action(getContext(),
+ getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam));
+ // First confirm with a warning dialog about charges
+ mOkClicked = false;
+ RoamingDialogFragment
+ fragment = new RoamingDialogFragment();
+ Bundle b = new Bundle();
+ b.putInt(RoamingDialogFragment.SUB_ID_KEY, mSubId);
+ fragment.setArguments(b);
+ fragment.show(getFragmentManager(), ROAMING_TAG);
+ // Don't update the toggle unless the confirm button is actually pressed.
+ return false;
+ }
+ } else {
+ mTelephonyManager.setDataRoamingEnabled(false);
+ MetricsLogger.action(getContext(),
+ getMetricsEventCategory(getPreferenceScreen(), mButtonDataRoam),
+ false);
+ return true;
+ }
+ } else if (preference == mVideoCallingPref) {
+ // If mButton4glte is not checked, mVideoCallingPref should be disabled.
+ // So it only makes sense to call phoneMgr.enableVideoCalling if it's checked.
+ if (mButton4glte.isChecked()) {
+ mImsMgr.setVtSetting((boolean) objValue);
+ return true;
+ } else {
+ loge("mVideoCallingPref should be disabled if mButton4glte is not checked.");
+ mVideoCallingPref.setEnabled(false);
+ return false;
+ }
+ } else if (preference == getPreferenceScreen()
+ .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
+ || preference == getPreferenceScreen()
+ .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
+ return true;
+ }
+
+ updateBody();
+ // always let the preference setting proceed.
+ return true;
+ }
+
+ private boolean is4gLtePrefEnabled(PersistableBundle carrierConfig) {
+ return (mTelephonyManager.getCallState(mSubId)
+ == TelephonyManager.CALL_STATE_IDLE)
+ && mImsMgr != null
+ && mImsMgr.isNonTtyOrTtyOnVolteEnabled()
+ && carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
+ }
+
+ private class MyHandler extends Handler {
+
+ static final int MESSAGE_SET_PREFERRED_NETWORK_TYPE = 0;
+
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MESSAGE_SET_PREFERRED_NETWORK_TYPE:
+ handleSetPreferredNetworkTypeResponse(msg);
+ break;
+ }
+ }
+
+ private void handleSetPreferredNetworkTypeResponse(Message msg) {
+ final FragmentActivity activity = getActivity();
+ if (activity == null || activity.isDestroyed()) {
+ // Access preferences of activity only if it is not destroyed
+ // or if fragment is not attached to an activity.
+ return;
+ }
+
+ boolean success = (boolean) msg.obj;
+
+ if (success) {
+ int networkMode;
+ if (getPreferenceScreen().findPreference(
+ BUTTON_PREFERED_NETWORK_MODE) != null) {
+ networkMode = Integer.parseInt(mButtonPreferredNetworkMode.getValue());
+ android.provider.Settings.Global.putInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE
+ + mSubId,
+ networkMode );
+ }
+ if (getPreferenceScreen().findPreference(BUTTON_ENABLED_NETWORKS_KEY) != null) {
+ networkMode = Integer.parseInt(mButtonEnabledNetworks.getValue());
+ android.provider.Settings.Global.putInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE
+ + mSubId,
+ networkMode );
+ }
+ } else {
+ Log.i(LOG_TAG, "handleSetPreferredNetworkTypeResponse:" +
+ "exception in setting network mode.");
+ updatePreferredNetworkUIFromDb();
+ }
+ }
+ }
+
+ private void updatePreferredNetworkUIFromDb() {
+ int settingsNetworkMode = android.provider.Settings.Global.getInt(
+ getContext().getContentResolver(),
+ android.provider.Settings.Global.PREFERRED_NETWORK_MODE + mSubId,
+ preferredNetworkMode);
+
+ if (DBG) {
+ log("updatePreferredNetworkUIFromDb: settingsNetworkMode = " +
+ settingsNetworkMode);
+ }
+
+ UpdatePreferredNetworkModeSummary(settingsNetworkMode);
+ UpdateEnabledNetworksValueAndSummary(settingsNetworkMode);
+ // changes the mButtonPreferredNetworkMode accordingly to settingsNetworkMode
+ mButtonPreferredNetworkMode.setValue(Integer.toString(settingsNetworkMode));
+ }
+
+ private void UpdatePreferredNetworkModeSummary(int NetworkMode) {
+ switch(NetworkMode) {
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_tdscdma_gsm_wcdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_tdscdma_gsm_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_wcdma_perf_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_GSM_ONLY:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_gsm_only_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_tdscdma_wcdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_wcdma_only_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_GSM_UMTS:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_gsm_wcdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
+ switch (mTelephonyManager.getLteOnCdmaMode()) {
+ case PhoneConstants.LTE_ON_CDMA_TRUE:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_cdma_summary);
+ break;
+ case PhoneConstants.LTE_ON_CDMA_FALSE:
+ default:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_cdma_evdo_summary);
+ break;
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_cdma_only_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_evdo_only_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_tdscdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_ONLY:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_tdscdma_gsm_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_tdscdma_gsm_wcdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_gsm_wcdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_cdma_evdo_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_tdscdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_tdscdma_cdma_evdo_gsm_wcdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+ if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
+ || mIsGlobalCdma
+ || isWorldMode()) {
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_global_summary);
+ } else {
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_summary);
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_tdscdma_cdma_evdo_gsm_wcdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_GLOBAL:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_cdma_evdo_gsm_wcdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_tdscdma_wcdma_summary);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_lte_wcdma_summary);
+ break;
+ default:
+ mButtonPreferredNetworkMode.setSummary(
+ R.string.preferred_network_mode_global_summary);
+ }
+ }
+
+ private void UpdateEnabledNetworksValueAndSummary(int NetworkMode) {
+ switch (NetworkMode) {
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_WCDMA:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_GSM:
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_GSM_WCDMA));
+ mButtonEnabledNetworks.setSummary(R.string.network_3G);
+ break;
+ case TelephonyManager.NETWORK_MODE_WCDMA_ONLY:
+ case TelephonyManager.NETWORK_MODE_GSM_UMTS:
+ case TelephonyManager.NETWORK_MODE_WCDMA_PREF:
+ if (!mIsGlobalCdma) {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_WCDMA_PREF));
+ mButtonEnabledNetworks.setSummary(R.string.network_3G);
+ } else {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ mButtonEnabledNetworks.setSummary(R.string.network_global);
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_GSM_ONLY:
+ if (!mIsGlobalCdma) {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_GSM_ONLY));
+ mButtonEnabledNetworks.setSummary(R.string.network_2G);
+ } else {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ mButtonEnabledNetworks.setSummary(R.string.network_global);
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA:
+ if (isWorldMode()) {
+ mButtonEnabledNetworks.setSummary(
+ R.string.preferred_network_mode_lte_gsm_umts_summary);
+ controlCdmaOptions(false);
+ controlGsmOptions(true);
+ break;
+ }
+ case TelephonyManager.NETWORK_MODE_LTE_ONLY:
+ case TelephonyManager.NETWORK_MODE_LTE_WCDMA:
+ if (!mIsGlobalCdma) {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_LTE_GSM_WCDMA));
+ mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
+ ? R.string.network_4G : R.string.network_lte);
+ } else {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ mButtonEnabledNetworks.setSummary(R.string.network_global);
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO:
+ if (isWorldMode()) {
+ mButtonEnabledNetworks.setSummary(
+ R.string.preferred_network_mode_lte_cdma_summary);
+ controlCdmaOptions(true);
+ controlGsmOptions(false);
+ } else {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO));
+ mButtonEnabledNetworks.setSummary(R.string.network_lte);
+ }
+ break;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+ mButtonEnabledNetworks.setSummary(R.string.network_3G);
+ break;
+ case TelephonyManager.NETWORK_MODE_CDMA_EVDO:
+ case TelephonyManager.NETWORK_MODE_EVDO_NO_CDMA:
+ case TelephonyManager.NETWORK_MODE_GLOBAL:
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_EVDO));
+ mButtonEnabledNetworks.setSummary(R.string.network_3G);
+ break;
+ case TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO:
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_CDMA_NO_EVDO));
+ mButtonEnabledNetworks.setSummary(R.string.network_1x);
+ break;
+ case TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY:
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager.NETWORK_MODE_TDSCDMA_ONLY));
+ mButtonEnabledNetworks.setSummary(R.string.network_3G);
+ break;
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
+ case TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
+ if (isSupportTdscdma()) {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA));
+ mButtonEnabledNetworks.setSummary(R.string.network_lte);
+ } else {
+ if (isWorldMode()) {
+ controlCdmaOptions(true);
+ controlGsmOptions(false);
+ }
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(TelephonyManager
+ .NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ if (mTelephonyManager.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA
+ || mIsGlobalCdma
+ || isWorldMode()) {
+ mButtonEnabledNetworks.setSummary(R.string.network_global);
+ } else {
+ mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
+ ? R.string.network_4G : R.string.network_lte);
+ }
+ }
+ break;
+ default:
+ String errMsg = "Invalid Network Mode (" + NetworkMode + "). Ignore.";
+ loge(errMsg);
+ mButtonEnabledNetworks.setSummary(errMsg);
+ }
+ }
+
+ @Override
+ public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ switch(requestCode) {
+ case REQUEST_CODE_EXIT_ECM:
+ Boolean isChoiceYes = data.getBooleanExtra(
+ EXTRA_EXIT_ECM_RESULT, false);
+ if (isChoiceYes) {
+ // If the phone exits from ECM mode, show the CDMA Options
+ mCdmaOptions.showDialog(mClickedPreference);
+ } else {
+ // do nothing
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ private void updateWiFiCallState() {
+ if (mWiFiCallingPref == null || mCallingCategory == null) {
+ return;
+ }
+
+ // Removes the preference if the wifi calling is disabled.
+ if (!MobileNetworkUtils.isWifiCallingEnabled(getContext(),
+ SubscriptionManager.getPhoneId(mSubId))) {
+ mCallingCategory.removePreference(mWiFiCallingPref);
+ return;
+ }
+
+ final PhoneAccountHandle simCallManager =
+ TelecomManager.from(getContext()).getSimCallManager();
+
+ if (simCallManager != null) {
+ Intent intent = buildPhoneAccountConfigureIntent(getContext(), simCallManager);
+ PackageManager pm = getContext().getPackageManager();
+ List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
+ mWiFiCallingPref.setTitle(resolutions.get(0).loadLabel(pm));
+ mWiFiCallingPref.setSummary(null);
+ mWiFiCallingPref.setIntent(intent);
+ } else {
+ int resId = com.android.internal.R.string.wifi_calling_off_summary;
+ if (mImsMgr.isWfcEnabledByUser()) {
+ boolean isRoaming = mTelephonyManager.isNetworkRoaming();
+ int wfcMode = mImsMgr.getWfcMode(isRoaming);
+
+ switch (wfcMode) {
+ case ImsConfig.WfcModeFeatureValueConstants.WIFI_ONLY:
+ resId = com.android.internal.R.string.wfc_mode_wifi_only_summary;
+ break;
+ case ImsConfig.WfcModeFeatureValueConstants.CELLULAR_PREFERRED:
+ resId = com.android.internal.R.string
+ .wfc_mode_cellular_preferred_summary;
+ break;
+ case ImsConfig.WfcModeFeatureValueConstants.WIFI_PREFERRED:
+ resId = com.android.internal.R.string.wfc_mode_wifi_preferred_summary;
+ break;
+ default:
+ if (DBG) log("Unexpected WFC mode value: " + wfcMode);
+ }
+ }
+ mWiFiCallingPref.setSummary(resId);
+ }
+
+ mCallingCategory.addPreference(mWiFiCallingPref);
+ mWiFiCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
+ == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
+ }
+
+ private void updateEnhanced4gLteState() {
+ if (mButton4glte == null) {
+ return;
+ }
+
+ PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+
+ if ((mImsMgr == null
+ || !mImsMgr.isVolteEnabledByPlatform()
+ || !mImsMgr.isVolteProvisionedOnDevice()
+ || !MobileNetworkUtils.isImsServiceStateReady(mImsMgr)
+ || carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_HIDE_ENHANCED_4G_LTE_BOOL))) {
+ getPreferenceScreen().removePreference(mButton4glte);
+ } else {
+ mButton4glte.setEnabled(is4gLtePrefEnabled(carrierConfig)
+ && hasActiveSubscriptions());
+ boolean enh4glteMode = mImsMgr.isEnhanced4gLteModeSettingEnabledByUser()
+ && mImsMgr.isNonTtyOrTtyOnVolteEnabled();
+ mButton4glte.setChecked(enh4glteMode);
+ }
+ }
+
+ private void updateVideoCallState() {
+ if (mVideoCallingPref == null || mCallingCategory == null) {
+ return;
+ }
+
+ PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+
+ if (mImsMgr != null
+ && mImsMgr.isVtEnabledByPlatform()
+ && mImsMgr.isVtProvisionedOnDevice()
+ && MobileNetworkUtils.isImsServiceStateReady(mImsMgr)
+ && (carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
+ || mTelephonyManager.isDataEnabled())) {
+ mCallingCategory.addPreference(mVideoCallingPref);
+ if (!mButton4glte.isChecked()) {
+ mVideoCallingPref.setEnabled(false);
+ mVideoCallingPref.setChecked(false);
+ } else {
+ mVideoCallingPref.setEnabled(mTelephonyManager.getCallState(mSubId)
+ == TelephonyManager.CALL_STATE_IDLE && hasActiveSubscriptions());
+ mVideoCallingPref.setChecked(mImsMgr.isVtEnabledByUser());
+ mVideoCallingPref.setOnPreferenceChangeListener(this);
+ }
+ } else {
+ mCallingCategory.removePreference(mVideoCallingPref);
+ }
+ }
+
+ private void updatePreferredNetworkType() {
+ boolean enabled = mTelephonyManager.getCallState(
+ mSubId) == TelephonyManager.CALL_STATE_IDLE
+ && hasActiveSubscriptions();
+ Log.i(LOG_TAG, "updatePreferredNetworkType: " + enabled);
+ // TODO: Disentangle enabled networks vs preferred network mode, it looks like
+ // both buttons are shown to the user as "Preferred network type" and the options change
+ // based on what looks like World mode.
+ if (mButtonEnabledNetworks != null) {
+ mButtonEnabledNetworks.setEnabled(enabled);
+ }
+ if (mButtonPreferredNetworkMode != null) {
+ mButtonPreferredNetworkMode.setEnabled(enabled);
+ }
+ }
+
+ private void updateCallingCategory() {
+ if (mCallingCategory == null) {
+ return;
+ }
+
+ updateWiFiCallState();
+ updateVideoCallState();
+
+ // If all items in calling category is removed, we remove it from
+ // the screen. Otherwise we'll see title of the category but nothing
+ // is in there.
+ if (mCallingCategory.getPreferenceCount() == 0) {
+ getPreferenceScreen().removePreference(mCallingCategory);
+ } else {
+ getPreferenceScreen().addPreference(mCallingCategory);
+ }
+ }
+
+ private static void log(String msg) {
+ Log.d(LOG_TAG, msg);
+ }
+
+ private static void loge(String msg) {
+ Log.e(LOG_TAG, msg);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ final int itemId = item.getItemId();
+ if (itemId == android.R.id.home) { // See ActionBar#setDisplayHomeAsUpEnabled()
+ // Commenting out "logical up" capability. This is a workaround for issue 5278083.
+ //
+ // Settings app may not launch this activity via UP_ACTIVITY_CLASS but the other
+ // Activity that looks exactly same as UP_ACTIVITY_CLASS ("SubSettings" Activity).
+ // At that moment, this Activity launches UP_ACTIVITY_CLASS on top of the Activity.
+ // which confuses users.
+ // TODO: introduce better mechanism for "up" capability here.
+ /*Intent intent = new Intent(Intent.ACTION_MAIN);
+ intent.setClassName(UP_ACTIVITY_PACKAGE, UP_ACTIVITY_CLASS);
+ intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+ startActivity(intent);*/
+ getActivity().finish();
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+ private boolean isWorldMode() {
+ boolean worldModeOn = false;
+ final String configString = getResources().getString(R.string.config_world_mode);
+
+ if (!TextUtils.isEmpty(configString)) {
+ String[] configArray = configString.split(";");
+ // Check if we have World mode configuration set to True only or config is set to True
+ // and SIM GID value is also set and matches to the current SIM GID.
+ if (configArray != null &&
+ ((configArray.length == 1 && configArray[0].equalsIgnoreCase("true"))
+ || (configArray.length == 2 && !TextUtils.isEmpty(configArray[1])
+ && mTelephonyManager != null
+ && configArray[1].equalsIgnoreCase(
+ mTelephonyManager.getGroupIdLevel1())))) {
+ worldModeOn = true;
+ }
+ }
+
+ Log.d(LOG_TAG, "isWorldMode=" + worldModeOn);
+
+ return worldModeOn;
+ }
+
+ private void controlGsmOptions(boolean enable) {
+ PreferenceScreen prefSet = getPreferenceScreen();
+ if (prefSet == null) {
+ return;
+ }
+
+ updateGsmUmtsOptions(this, prefSet, mSubId);
+
+ PreferenceCategory networkOperatorCategory =
+ (PreferenceCategory) prefSet.findPreference(
+ NetworkOperators.CATEGORY_NETWORK_OPERATORS_KEY);
+ Preference carrierSettings = prefSet.findPreference(BUTTON_CARRIER_SETTINGS_KEY);
+ if (networkOperatorCategory != null) {
+ if (enable) {
+ networkOperatorCategory.setEnabled(true);
+ } else {
+ prefSet.removePreference(networkOperatorCategory);
+ }
+ }
+ if (carrierSettings != null) {
+ prefSet.removePreference(carrierSettings);
+ }
+ }
+
+ private void controlCdmaOptions(boolean enable) {
+ PreferenceScreen prefSet = getPreferenceScreen();
+ if (prefSet == null) {
+ return;
+ }
+ updateCdmaOptions(this, prefSet, mSubId);
+ CdmaSystemSelectListPreference systemSelect =
+ (CdmaSystemSelectListPreference)prefSet.findPreference
+ (BUTTON_CDMA_SYSTEM_SELECT_KEY);
+ systemSelect.setSubscriptionId(mSubId);
+ if (systemSelect != null) {
+ systemSelect.setEnabled(enable);
+ }
+ }
+
+ private boolean isSupportTdscdma() {
+ if (getResources().getBoolean(R.bool.config_support_tdscdma)) {
+ return true;
+ }
+
+ String operatorNumeric = mTelephonyManager.getServiceState().getOperatorNumeric();
+ String[] numericArray = getResources().getStringArray(
+ R.array.config_support_tdscdma_roaming_on_networks);
+ if (numericArray.length == 0 || operatorNumeric == null) {
+ return false;
+ }
+ for (String numeric : numericArray) {
+ if (operatorNumeric.equals(numeric)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Metrics events related methods. it takes care of all preferences possible in this
+ * fragment(except a few that log on their own). It doesn't only include preferences in
+ * network_setting_fragment.xml, but also those defined in GsmUmtsOptions and CdmaOptions.
+ */
+ private void sendMetricsEventPreferenceClicked(
+ PreferenceScreen preferenceScreen, Preference preference) {
+ final int category = getMetricsEventCategory(preferenceScreen, preference);
+ if (category == MetricsProto.MetricsEvent.VIEW_UNKNOWN) {
+ return;
+ }
+
+ // Send MetricsEvent on click. It includes preferences other than SwitchPreferences,
+ // which send MetricsEvent in onPreferenceChange.
+ // For ListPreferences, we log it here without a value, only indicating it's clicked to
+ // open the list dialog. When a value is chosen, another MetricsEvent is logged with
+ // new value in onPreferenceChange.
+ if (preference == mLteDataServicePref || preference == mDataUsagePref
+ || preference == mEuiccSettingsPref
+ || preference == mWiFiCallingPref || preference == mButtonPreferredNetworkMode
+ || preference == mButtonEnabledNetworks
+ || preference == preferenceScreen.findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
+ || preference == preferenceScreen.findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)
+ || preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
+ || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)
+ || preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
+ MetricsLogger.action(getContext(), category);
+ }
+ }
+
+ private void sendMetricsEventPreferenceChanged(
+ PreferenceScreen preferenceScreen, Preference preference, Object newValue) {
+ final int category = getMetricsEventCategory(preferenceScreen, preference);
+ if (category == MetricsProto.MetricsEvent.VIEW_UNKNOWN) {
+ return;
+ }
+
+ // MetricsEvent logging with new value, for SwitchPreferences and ListPreferences.
+ if (preference == mButton4glte || preference == mVideoCallingPref) {
+ MetricsLogger.action(getContext(), category, (Boolean) newValue);
+ } else if (preference == mButtonPreferredNetworkMode
+ || preference == mButtonEnabledNetworks
+ || preference == preferenceScreen
+ .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)
+ || preference == preferenceScreen
+ .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
+ // Network select preference sends metrics event in its own listener.
+ MetricsLogger.action(getContext(), category, Integer.valueOf((String) newValue));
+ }
+ }
+
+ private int getMetricsEventCategory(
+ PreferenceScreen preferenceScreen, Preference preference) {
+
+ if (preference == null) {
+ return MetricsProto.MetricsEvent.VIEW_UNKNOWN;
+ } else if (preference == mMobileDataPref) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_MOBILE_DATA_TOGGLE;
+ } else if (preference == mButtonDataRoam) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_DATA_ROAMING_TOGGLE;
+ } else if (preference == mDataUsagePref) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_DATA_USAGE;
+ } else if (preference == mLteDataServicePref) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_SET_UP_DATA_SERVICE;
+ } else if (preference == mButton4glte) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_ENHANCED_4G_LTE_MODE_TOGGLE;
+ } else if (preference == mButtonPreferredNetworkMode) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_PREFERRED_NETWORK;
+ } else if (preference == mButtonEnabledNetworks) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_SELECT_ENABLED_NETWORK;
+ } else if (preference == mEuiccSettingsPref) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_EUICC_SETTING;
+ } else if (preference == mWiFiCallingPref) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_WIFI_CALLING;
+ } else if (preference == mVideoCallingPref) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_VIDEO_CALLING_TOGGLE;
+ } else if (preference == preferenceScreen
+ .findPreference(NetworkOperators.BUTTON_AUTO_SELECT_KEY)) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE;
+ } else if (preference == preferenceScreen
+ .findPreference(NetworkOperators.BUTTON_NETWORK_SELECT_KEY)) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK;
+ } else if (preference == preferenceScreen
+ .findPreference(BUTTON_CDMA_SYSTEM_SELECT_KEY)) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SYSTEM_SELECT;
+ } else if (preference == preferenceScreen
+ .findPreference(BUTTON_CDMA_SUBSCRIPTION_KEY)) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_CDMA_SUBSCRIPTION_SELECT;
+ } else if (preference == preferenceScreen.findPreference(BUTTON_GSM_APN_EXPAND_KEY)
+ || preference == preferenceScreen.findPreference(BUTTON_CDMA_APN_EXPAND_KEY)) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_APN_SETTINGS;
+ } else if (preference == preferenceScreen.findPreference(BUTTON_CARRIER_SETTINGS_KEY)) {
+ return MetricsProto.MetricsEvent.ACTION_MOBILE_NETWORK_CARRIER_SETTINGS;
+ } else {
+ return MetricsProto.MetricsEvent.VIEW_UNKNOWN;
+ }
+ }
+
+ private void updateGsmUmtsOptions(PreferenceFragmentCompat prefFragment,
+ PreferenceScreen prefScreen, final int subId) {
+ // We don't want to re-create GsmUmtsOptions if already exists. Otherwise, the
+ // preferences inside it will also be re-created which causes unexpected behavior.
+ // For example, the open dialog gets dismissed or detached after pause / resume.
+ if (mGsmUmtsOptions == null) {
+ mGsmUmtsOptions = new GsmUmtsOptions(prefFragment, prefScreen, subId);
+ } else {
+ mGsmUmtsOptions.update(subId);
+ }
+ }
+
+ private void updateCdmaOptions(PreferenceFragmentCompat prefFragment, PreferenceScreen prefScreen,
+ int subId) {
+ // We don't want to re-create CdmaOptions if already exists. Otherwise, the preferences
+ // inside it will also be re-created which causes unexpected behavior. For example,
+ // the open dialog gets dismissed or detached after pause / resume.
+ if (mCdmaOptions == null) {
+ mCdmaOptions = new CdmaOptions(prefFragment, prefScreen, subId);
+ } else {
+ mCdmaOptions.updateSubscriptionId(subId);
+ }
+ }
+
+ private static Intent buildPhoneAccountConfigureIntent(
+ Context context, PhoneAccountHandle accountHandle) {
+ Intent intent = buildConfigureIntent(
+ context, accountHandle, TelecomManager.ACTION_CONFIGURE_PHONE_ACCOUNT);
+
+ if (intent == null) {
+ // If the new configuration didn't work, try the old configuration intent.
+ intent = buildConfigureIntent(
+ context, accountHandle, LEGACY_ACTION_CONFIGURE_PHONE_ACCOUNT);
+ if (intent != null) {
+ Log.w(MobileNetworkFragment.LOG_TAG,
+ "Phone account using old configuration intent: " + accountHandle);
+ }
+ }
+ return intent;
+ }
+
+ private static Intent buildConfigureIntent(
+ Context context, PhoneAccountHandle accountHandle, String actionStr) {
+ if (accountHandle == null || accountHandle.getComponentName() == null
+ || TextUtils.isEmpty(accountHandle.getComponentName().getPackageName())) {
+ return null;
+ }
+
+ // Build the settings intent.
+ Intent intent = new Intent(actionStr);
+ intent.setPackage(accountHandle.getComponentName().getPackageName());
+ intent.addCategory(Intent.CATEGORY_DEFAULT);
+ intent.putExtra(TelecomManager.EXTRA_PHONE_ACCOUNT_HANDLE, accountHandle);
+
+ // Check to see that the phone account package can handle the setting intent.
+ PackageManager pm = context.getPackageManager();
+ List<ResolveInfo> resolutions = pm.queryIntentActivities(intent, 0);
+ if (resolutions.size() == 0) {
+ intent = null; // set no intent if the package cannot handle it.
+ }
+
+ return intent;
+ }
+
+ //TODO(b/114749736): update search provider
+ public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider() {
+ @Override
+ protected boolean isPageSearchEnabled(Context context) {
+ return false;
+ }
+ };
+
+ private static final class SetPreferredNetworkAsyncTask extends AsyncTask<Void, Void, Boolean> {
+
+ private final TelephonyManager mTelephonyManager;
+ private final int mSubId;
+ private final int mNetworkType;
+ private final Message mCallback;
+
+ SetPreferredNetworkAsyncTask(
+ TelephonyManager tm, int subId, int networkType, Message callback) {
+ mTelephonyManager = tm;
+ mSubId = subId;
+ mNetworkType = networkType;
+ mCallback = callback;
+ }
+
+ @Override
+ protected Boolean doInBackground(Void... voids) {
+ return mTelephonyManager.setPreferredNetworkType(mSubId, mNetworkType);
+ }
+
+ @Override
+ protected void onPostExecute(Boolean isSuccessed) {
+ mCallback.obj = isSuccessed;
+ mCallback.sendToTarget();
+ }
+ }
+}
diff --git a/src/com/android/settings/mobilenetwork/MobileNetworkUtils.java b/src/com/android/settings/mobilenetwork/MobileNetworkUtils.java
new file mode 100644
index 0000000..2109375
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/MobileNetworkUtils.java
@@ -0,0 +1,173 @@
+/*
+ * 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.mobilenetwork;
+
+import static android.provider.Telephony.Carriers.ENFORCE_MANAGED_URI;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.database.Cursor;
+import android.os.PersistableBundle;
+import android.os.SystemProperties;
+import android.provider.Settings;
+import android.telecom.PhoneAccountHandle;
+import android.telecom.TelecomManager;
+import android.telephony.TelephonyManager;
+import android.telephony.euicc.EuiccManager;
+import android.telephony.ims.feature.ImsFeature;
+import android.text.TextUtils;
+import android.util.Log;
+
+import com.android.ims.ImsException;
+import com.android.ims.ImsManager;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class MobileNetworkUtils {
+
+ private static final String TAG = "MobileNetworkUtils";
+
+ // CID of the device.
+ private static final String KEY_CID = "ro.boot.cid";
+ // CIDs of devices which should not show anything related to eSIM.
+ private static final String KEY_ESIM_CID_IGNORE = "ro.setupwizard.esim_cid_ignore";
+ // System Property which is used to decide whether the default eSIM UI will be shown,
+ // the default value is false.
+ private static final String KEY_ENABLE_ESIM_UI_BY_DEFAULT =
+ "esim.enable_esim_system_ui_by_default";
+
+ /**
+ * Returns if DPC APNs are enforced.
+ */
+ public static boolean isDpcApnEnforced(Context context) {
+ try (Cursor enforceCursor = context.getContentResolver().query(ENFORCE_MANAGED_URI,
+ null, null, null, null)) {
+ if (enforceCursor == null || enforceCursor.getCount() != 1) {
+ return false;
+ }
+ enforceCursor.moveToFirst();
+ return enforceCursor.getInt(0) > 0;
+ }
+ }
+
+ /**
+ * Returns true if Wifi calling is enabled for at least one phone.
+ */
+ public static boolean isWifiCallingEnabled(Context context) {
+ int phoneCount = TelephonyManager.from(context).getPhoneCount();
+ for (int i = 0; i < phoneCount; i++) {
+ if (isWifiCallingEnabled(context, i)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Returns true if Wifi calling is enabled for the specific phone with id {@code phoneId}.
+ */
+ public static boolean isWifiCallingEnabled(Context context, int phoneId) {
+ final PhoneAccountHandle simCallManager =
+ TelecomManager.from(context).getSimCallManager();
+
+ boolean isWifiCallingEnabled;
+ if (simCallManager != null) {
+ //TODO(b/114749736): build intent to query wifi calling feature
+ final Intent intent = null;
+ PackageManager pm = context.getPackageManager();
+ isWifiCallingEnabled = intent != null
+ && !pm.queryIntentActivities(intent, 0 /* flags */).isEmpty();
+ } else {
+ ImsManager imsMgr = ImsManager.getInstance(context, phoneId);
+ isWifiCallingEnabled = imsMgr != null
+ && imsMgr.isWfcEnabledByPlatform()
+ && imsMgr.isWfcProvisionedOnDevice()
+ && isImsServiceStateReady(imsMgr);
+ }
+
+ return isWifiCallingEnabled;
+ }
+
+ public static boolean isImsServiceStateReady(ImsManager imsMgr) {
+ boolean isImsServiceStateReady = false;
+
+ try {
+ if (imsMgr != null && imsMgr.getImsServiceState() == ImsFeature.STATE_READY) {
+ isImsServiceStateReady = true;
+ }
+ } catch (ImsException ex) {
+ Log.e(TAG, "Exception when trying to get ImsServiceStatus: " + ex);
+ }
+
+ Log.d(TAG, "isImsServiceStateReady=" + isImsServiceStateReady);
+ return isImsServiceStateReady;
+ }
+
+ /**
+ * Whether to show the entry point to eUICC settings.
+ *
+ * <p>We show the entry point on any device which supports eUICC as long as either the eUICC
+ * was ever provisioned (that is, at least one profile was ever downloaded onto it), or if
+ * the user has enabled development mode.
+ */
+ public static boolean showEuiccSettings(Context context) {
+ EuiccManager euiccManager =
+ (EuiccManager) context.getSystemService(Context.EUICC_SERVICE);
+ if (!euiccManager.isEnabled()) {
+ return false;
+ }
+
+ final ContentResolver cr = context.getContentResolver();
+
+ TelephonyManager tm =
+ (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+ String currentCountry = tm.getNetworkCountryIso().toLowerCase();
+ String supportedCountries =
+ Settings.Global.getString(cr, Settings.Global.EUICC_SUPPORTED_COUNTRIES);
+ boolean inEsimSupportedCountries = false;
+ if (TextUtils.isEmpty(currentCountry)) {
+ inEsimSupportedCountries = true;
+ } else if (!TextUtils.isEmpty(supportedCountries)) {
+ List<String> supportedCountryList =
+ Arrays.asList(TextUtils.split(supportedCountries.toLowerCase(), ","));
+ if (supportedCountryList.contains(currentCountry)) {
+ inEsimSupportedCountries = true;
+ }
+ }
+ final boolean esimIgnoredDevice =
+ Arrays.asList(TextUtils.split(SystemProperties.get(KEY_ESIM_CID_IGNORE, ""), ","))
+ .contains(SystemProperties.get(KEY_CID, null));
+ final boolean enabledEsimUiByDefault =
+ SystemProperties.getBoolean(KEY_ENABLE_ESIM_UI_BY_DEFAULT, true);
+ final boolean euiccProvisioned =
+ Settings.Global.getInt(cr, Settings.Global.EUICC_PROVISIONED, 0) != 0;
+ final boolean inDeveloperMode =
+ Settings.Global.getInt(cr, Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0) != 0;
+
+ return (inDeveloperMode || euiccProvisioned
+ || (!esimIgnoredDevice && enabledEsimUiByDefault && inEsimSupportedCountries));
+ }
+
+ public static PersistableBundle getCarrierConfigBySubId(int mSubId) {
+ //TODO(b/114749736): get carrier config from subId
+ return new PersistableBundle();
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/mobilenetwork/MobileSettingsActivity.java b/src/com/android/settings/mobilenetwork/MobileSettingsActivity.java
new file mode 100644
index 0000000..37a180c
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/MobileSettingsActivity.java
@@ -0,0 +1,126 @@
+/*
+ * 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.mobilenetwork;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
+import android.view.Menu;
+import android.view.View;
+
+import com.android.internal.util.CollectionUtils;
+import com.android.settings.R;
+import com.android.settings.core.SettingsBaseActivity;
+
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+
+import java.util.List;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+public class MobileSettingsActivity extends SettingsBaseActivity {
+
+ @VisibleForTesting
+ static final String MOBILE_SETTINGS_TAG = "mobile_settings:";
+ public static final String KEY_SUBSCRIPTION_ID = "key_subscription_id";
+
+ private SubscriptionManager mSubscriptionManager;
+ @VisibleForTesting
+ int mPrevSubscriptionId;
+ @VisibleForTesting
+ List<SubscriptionInfo> mSubscriptionInfos;
+
+ @Override
+ protected void onNewIntent(Intent intent) {
+ super.onNewIntent(intent);
+ //TODO(b/114749736): update fragment by new intent, or at least make sure this page shows
+ // current tab for sim card
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ mSubscriptionManager = getSystemService(SubscriptionManager.class);
+ mSubscriptionInfos = mSubscriptionManager.getActiveSubscriptionInfoList();
+ mPrevSubscriptionId = CollectionUtils.isEmpty(mSubscriptionInfos)
+ ? SubscriptionManager.INVALID_SUBSCRIPTION_ID
+ : mSubscriptionInfos.get(0).getSubscriptionId();
+
+ setContentView(R.layout.mobile_settings_container);
+
+ updateBottomNavigationView();
+
+ if (savedInstanceState == null) {
+ switchFragment(new MobileNetworkFragment(), mPrevSubscriptionId);
+ }
+ }
+
+ @VisibleForTesting
+ void updateBottomNavigationView() {
+ final BottomNavigationView navigation = findViewById(R.id.bottom_nav);
+
+ if (CollectionUtils.size(mSubscriptionInfos) <= 1) {
+ navigation.setVisibility(View.GONE);
+ } else {
+ final Menu menu = navigation.getMenu();
+ menu.clear();
+ for (int i = 0, size = mSubscriptionInfos.size(); i < size; i++) {
+ final SubscriptionInfo subscriptionInfo = mSubscriptionInfos.get(i);
+ menu.add(0, subscriptionInfo.getSubscriptionId(), i,
+ subscriptionInfo.getDisplayName());
+ }
+ navigation.setOnNavigationItemSelectedListener(item -> {
+ switchFragment(new MobileNetworkFragment(), item.getItemId());
+ mPrevSubscriptionId = item.getItemId();
+ return true;
+ });
+
+ }
+ }
+
+ @VisibleForTesting
+ void switchFragment(Fragment fragment, int subscriptionId) {
+ final FragmentManager fragmentManager = getSupportFragmentManager();
+ final FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
+ final Bundle bundle = new Bundle();
+ bundle.putInt(KEY_SUBSCRIPTION_ID, subscriptionId);
+
+ final Fragment hideFragment = fragmentManager.findFragmentByTag(
+ buildFragmentTag(mPrevSubscriptionId));
+ if (hideFragment != null) {
+ fragmentTransaction.hide(hideFragment);
+ }
+
+ Fragment showFragment = fragmentManager.findFragmentByTag(buildFragmentTag(subscriptionId));
+ if (showFragment == null) {
+ fragment.setArguments(bundle);
+ fragmentTransaction.add(R.id.main_content, fragment, buildFragmentTag(subscriptionId));
+ } else {
+ showFragment.setArguments(bundle);
+ fragmentTransaction.show(showFragment);
+ }
+ fragmentTransaction.commit();
+ }
+
+ private String buildFragmentTag(int subscriptionId) {
+ return MOBILE_SETTINGS_TAG + subscriptionId;
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/mobilenetwork/NetworkOperators.java b/src/com/android/settings/mobilenetwork/NetworkOperators.java
new file mode 100644
index 0000000..9f0de8a
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/NetworkOperators.java
@@ -0,0 +1,301 @@
+/*
+ * 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.mobilenetwork;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Handler;
+import android.os.Message;
+import android.telephony.ServiceState;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.widget.Toast;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.TwoStatePreference;
+
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
+import com.android.settingslib.utils.ThreadUtils;
+
+/**
+ * "Networks" settings UI for the Phone app.
+ */
+public class NetworkOperators extends PreferenceCategory
+ implements Preference.OnPreferenceChangeListener {
+
+ private static final String LOG_TAG = "NetworkOperators";
+ private static final boolean DBG = true;
+
+ private static final int EVENT_AUTO_SELECT_DONE = 100;
+ private static final int EVENT_GET_NETWORK_SELECTION_MODE_DONE = 200;
+
+ //String keys for preference lookup
+ public static final String BUTTON_NETWORK_SELECT_KEY = "button_network_select_key";
+ public static final String BUTTON_AUTO_SELECT_KEY = "button_auto_select_key";
+ public static final String BUTTON_CHOOSE_NETWORK_KEY = "button_choose_network_key";
+ public static final String CATEGORY_NETWORK_OPERATORS_KEY = "network_operators_category_key";
+
+ //preference objects
+ private NetworkSelectListPreference mNetworkSelect;
+ private TwoStatePreference mAutoSelect;
+ private Preference mChooseNetwork;
+ private ProgressDialog mProgressDialog;
+
+ private int mSubId;
+ private TelephonyManager mTelephonyManager;
+
+ // There's two sets of Auto-Select UI in this class.
+ // If {@code com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI} set as true
+ // {@link mChooseNetwork} will be used, otherwise {@link mNetworkSelect} will be used.
+ boolean mEnableNewManualSelectNetworkUI;
+
+ public NetworkOperators(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public NetworkOperators(Context context) {
+ super(context);
+ }
+
+ /**
+ * Initialize NetworkOperators instance.
+ */
+ public void initialize() {
+ mEnableNewManualSelectNetworkUI = getContext().getResources().getBoolean(
+ com.android.internal.R.bool.config_enableNewAutoSelectNetworkUI);
+ mAutoSelect = (TwoStatePreference) findPreference(BUTTON_AUTO_SELECT_KEY);
+ mChooseNetwork = findPreference(BUTTON_CHOOSE_NETWORK_KEY);
+ mNetworkSelect = (NetworkSelectListPreference) findPreference(BUTTON_NETWORK_SELECT_KEY);
+ if (mEnableNewManualSelectNetworkUI) {
+ removePreference(mNetworkSelect);
+ } else {
+ removePreference(mChooseNetwork);
+ }
+ mProgressDialog = new ProgressDialog(getContext());
+ mTelephonyManager = TelephonyManager.from(getContext());
+ }
+
+ /**
+ * Update NetworkOperators instance if like subId is updated.
+ *
+ * @param subId Corresponding subscription ID of this network.
+ */
+ protected void update(final int subId) {
+ mSubId = subId;
+ mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
+
+ if (mAutoSelect != null) {
+ mAutoSelect.setOnPreferenceChangeListener(this);
+ }
+
+ if (mEnableNewManualSelectNetworkUI) {
+ if (mChooseNetwork != null) {
+ ServiceState ss = mTelephonyManager.getServiceState();
+ if (ss != null && ss.getState() == ServiceState.STATE_IN_SERVICE) {
+ mChooseNetwork.setSummary(mTelephonyManager.getNetworkOperatorName());
+ } else {
+ mChooseNetwork.setSummary(R.string.network_disconnected);
+ }
+ }
+ } else {
+ if (mNetworkSelect != null) {
+ mNetworkSelect.initialize(mSubId, this, mProgressDialog);
+ }
+ }
+ getNetworkSelectionMode();
+ }
+
+ /**
+ * Implemented to support onPreferenceChangeListener to look for preference
+ * changes specifically on auto select button.
+ *
+ * @param preference is the preference to be changed, should be auto select button.
+ * @param newValue should be the value of whether autoSelect is checked.
+ */
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (preference == mAutoSelect) {
+ boolean autoSelect = (Boolean) newValue;
+ if (DBG) logd("onPreferenceChange autoSelect: " + String.valueOf(autoSelect));
+ selectNetworkAutomatic(autoSelect);
+ MetricsLogger.action(getContext(),
+ MetricsEvent.ACTION_MOBILE_NETWORK_AUTO_SELECT_NETWORK_TOGGLE, autoSelect);
+ return true;
+ }
+ return false;
+ }
+
+ private final Handler mHandler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case EVENT_AUTO_SELECT_DONE:
+ mAutoSelect.setEnabled(true);
+ dismissProgressBar();
+
+ boolean isSuccessed = (boolean) msg.obj;
+
+ if (isSuccessed) {
+ if (DBG) logd("automatic network selection: succeeded!");
+ displayNetworkSelectionSucceeded();
+ } else {
+ if (DBG) logd("automatic network selection: failed!");
+ displayNetworkSelectionFailed();
+ }
+
+ break;
+ case EVENT_GET_NETWORK_SELECTION_MODE_DONE:
+ int networkSelectionMode = msg.arg1;
+ if (networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_UNKNOWN) {
+ if (DBG) logd("get network selection mode: failed!");
+ } else {
+ boolean autoSelect = networkSelectionMode
+ == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
+ if (DBG) {
+ logd("get network selection mode: "
+ + (autoSelect ? "auto" : "manual") + " selection");
+ }
+ if (mAutoSelect != null) {
+ mAutoSelect.setChecked(autoSelect);
+ }
+ if (mEnableNewManualSelectNetworkUI) {
+ if (mChooseNetwork != null) {
+ mChooseNetwork.setEnabled(!autoSelect);
+ }
+ } else {
+ if (mNetworkSelect != null) {
+ mNetworkSelect.setEnabled(!autoSelect);
+ }
+ }
+ }
+ }
+ return;
+ }
+ };
+
+ // Used by both mAutoSelect and mNetworkSelect buttons.
+ protected void displayNetworkSelectionFailed() {
+ Toast.makeText(getContext(), R.string.connect_later, Toast.LENGTH_LONG).show();
+ }
+
+ // Used by both mAutoSelect and mNetworkSelect buttons.
+ protected void displayNetworkSelectionSucceeded() {
+ Toast.makeText(getContext(), R.string.registration_done, Toast.LENGTH_LONG).show();
+ }
+
+ private void selectNetworkAutomatic(boolean autoSelect) {
+ if (DBG) logd("selectNetworkAutomatic: " + String.valueOf(autoSelect));
+
+ if (autoSelect) {
+ if (mEnableNewManualSelectNetworkUI) {
+ if (mChooseNetwork != null) {
+ mChooseNetwork.setEnabled(!autoSelect);
+ }
+ } else {
+ if (mNetworkSelect != null) {
+ mNetworkSelect.setEnabled(!autoSelect);
+ }
+ }
+ if (DBG) logd("select network automatically...");
+ showAutoSelectProgressBar();
+ mAutoSelect.setEnabled(false);
+ if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
+ ThreadUtils.postOnBackgroundThread(() -> {
+ mTelephonyManager.setNetworkSelectionModeAutomatic();
+ // Because TelephonyManager#setNetworkSelectionModeAutomatic doesn't have a
+ // return value, we query the current network selection mode to tell if the
+ // TelephonyManager#setNetworkSelectionModeAutomatic is successed.
+ int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
+ Message msg = mHandler.obtainMessage(EVENT_AUTO_SELECT_DONE);
+ msg.obj = networkSelectionMode == TelephonyManager.NETWORK_SELECTION_MODE_AUTO;
+ msg.sendToTarget();
+ });
+ }
+ } else {
+ if (mEnableNewManualSelectNetworkUI) {
+ if (mChooseNetwork != null) {
+ // Open the choose Network page automatically when user turn off the auto-select
+ openChooseNetworkPage();
+ }
+ } else {
+ if (mNetworkSelect != null) {
+ mNetworkSelect.onClick();
+ }
+ }
+ }
+ }
+
+ protected void getNetworkSelectionMode() {
+ if (DBG) logd("getting network selection mode...");
+ ThreadUtils.postOnBackgroundThread(() -> {
+ int networkSelectionMode = mTelephonyManager.getNetworkSelectionMode();
+ Message msg = mHandler.obtainMessage(EVENT_GET_NETWORK_SELECTION_MODE_DONE);
+ msg.arg1 = networkSelectionMode;
+ msg.sendToTarget();
+ });
+ }
+
+ private void dismissProgressBar() {
+ if (mProgressDialog != null && mProgressDialog.isShowing()) {
+ mProgressDialog.dismiss();
+ }
+ }
+
+ private void showAutoSelectProgressBar() {
+ mProgressDialog.setMessage(
+ getContext().getResources().getString(R.string.register_automatically));
+ mProgressDialog.setCanceledOnTouchOutside(false);
+ mProgressDialog.setCancelable(false);
+ mProgressDialog.setIndeterminate(true);
+ mProgressDialog.show();
+ }
+
+ /**
+ * Open the Choose network page via {@alink NetworkSelectSettingActivity}
+ */
+ public void openChooseNetworkPage() {
+ //TODO(b/114749736): Build intent without calling static method
+ Intent intent = new Intent();
+ getContext().startActivity(intent);
+ }
+
+ protected boolean preferenceTreeClick(Preference preference) {
+ if (mEnableNewManualSelectNetworkUI) {
+ if (DBG) logd("enable New AutoSelectNetwork UI");
+ if (preference == mChooseNetwork) {
+ openChooseNetworkPage();
+ }
+ return (preference == mAutoSelect || preference == mChooseNetwork);
+ } else {
+ return (preference == mAutoSelect || preference == mNetworkSelect);
+ }
+ }
+
+ private void logd(String msg) {
+ Log.d(LOG_TAG, "[NetworksList] " + msg);
+ }
+
+ private void loge(String msg) {
+ Log.e(LOG_TAG, "[NetworksList] " + msg);
+ }
+}
diff --git a/src/com/android/settings/mobilenetwork/NetworkScanHelper.java b/src/com/android/settings/mobilenetwork/NetworkScanHelper.java
new file mode 100644
index 0000000..234d3b3
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/NetworkScanHelper.java
@@ -0,0 +1,286 @@
+/*
+ * 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.mobilenetwork;
+
+import android.annotation.IntDef;
+import android.telephony.AccessNetworkConstants.AccessNetworkType;
+import android.telephony.CellInfo;
+import android.telephony.NetworkScan;
+import android.telephony.NetworkScanRequest;
+import android.telephony.RadioAccessSpecifier;
+import android.telephony.TelephonyManager;
+import android.telephony.TelephonyScanManager;
+import android.util.Log;
+
+import com.android.internal.telephony.CellNetworkScanResult;
+
+import com.google.common.util.concurrent.FutureCallback;
+import com.google.common.util.concurrent.Futures;
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.SettableFuture;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.util.List;
+import java.util.concurrent.Executor;
+import java.util.stream.Collectors;
+
+/**
+ * A helper class that builds the common interface and performs the network scan for two different
+ * network scan APIs.
+ */
+public class NetworkScanHelper {
+ public static final String TAG = "NetworkScanHelper";
+ private static final boolean DBG = true;
+
+ /**
+ * Callbacks interface to inform the network scan results.
+ */
+ public interface NetworkScanCallback {
+ /**
+ * Called when the results is returned from {@link TelephonyManager}. This method will be
+ * called at least one time if there is no error occurred during the network scan.
+ *
+ * <p> This method can be called multiple times in one network scan, until
+ * {@link #onComplete()} or {@link #onError(int)} is called.
+ *
+ * @param results
+ */
+ void onResults(List<CellInfo> results);
+
+ /**
+ * Called when the current network scan process is finished. No more
+ * {@link #onResults(List)} will be called for the current network scan after this method is
+ * called.
+ */
+ void onComplete();
+
+ /**
+ * Called when an error occurred during the network scan process.
+ *
+ * <p> There is no more result returned from {@link TelephonyManager} if an error occurred.
+ *
+ * <p> {@link #onComplete()} will not be called if an error occurred.
+ *
+ * @see {@link NetworkScan.ScanErrorCode}
+ */
+ void onError(int errorCode);
+ }
+
+ @Retention(RetentionPolicy.SOURCE)
+ @IntDef({NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS, NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS})
+ public @interface NetworkQueryType {}
+
+ /**
+ * Performs the network scan using {@link TelephonyManager#getAvailableNetworks()}. The network
+ * scan results won't be returned to the caller until the network scan is completed.
+ *
+ * <p> This is typically used when the modem doesn't support the new network scan api
+ * {@link TelephonyManager#requestNetworkScan(
+ * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}.
+ */
+ public static final int NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS = 1;
+
+ /**
+ * Performs the network scan using {@link TelephonyManager#requestNetworkScan(
+ * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)} The network scan
+ * results will be returned to the caller periodically in a small time window until the network
+ * scan is completed. The complete results should be returned in the last called of
+ * {@link NetworkScanCallback#onResults(List)}.
+ *
+ * <p> This is recommended to be used if modem supports the new network scan api
+ * {@link TelephonyManager#requestNetworkScan(
+ * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}
+ */
+ public static final int NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS = 2;
+
+ /** The constants below are used in the async network scan. */
+ private static final boolean INCREMENTAL_RESULTS = true;
+ private static final int SEARCH_PERIODICITY_SEC = 5;
+ private static final int MAX_SEARCH_TIME_SEC = 300;
+ private static final int INCREMENTAL_RESULTS_PERIODICITY_SEC = 3;
+
+ private static final NetworkScanRequest NETWORK_SCAN_REQUEST =
+ new NetworkScanRequest(
+ NetworkScanRequest.SCAN_TYPE_ONE_SHOT,
+ new RadioAccessSpecifier[]{
+ // GSM
+ new RadioAccessSpecifier(
+ AccessNetworkType.GERAN,
+ null /* bands */,
+ null /* channels */),
+ // LTE
+ new RadioAccessSpecifier(
+ AccessNetworkType.EUTRAN,
+ null /* bands */,
+ null /* channels */),
+ // WCDMA
+ new RadioAccessSpecifier(
+ AccessNetworkType.UTRAN,
+ null /* bands */,
+ null /* channels */)
+ },
+ SEARCH_PERIODICITY_SEC,
+ MAX_SEARCH_TIME_SEC,
+ INCREMENTAL_RESULTS,
+ INCREMENTAL_RESULTS_PERIODICITY_SEC,
+ null /* List of PLMN ids (MCC-MNC) */);
+
+ private final NetworkScanCallback mNetworkScanCallback;
+ private final TelephonyManager mTelephonyManager;
+ private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback;
+ private final Executor mExecutor;
+
+ private NetworkScan mNetworkScanRequester;
+
+ /** Callbacks for sync network scan */
+ private ListenableFuture<List<CellInfo>> mNetworkScanFuture;
+
+ public NetworkScanHelper(TelephonyManager tm, NetworkScanCallback callback, Executor executor) {
+ mTelephonyManager = tm;
+ mNetworkScanCallback = callback;
+ mInternalNetworkScanCallback = new NetworkScanCallbackImpl();
+ mExecutor = executor;
+ }
+
+ /**
+ * Performs a network scan for the given type {@code type}.
+ * {@link #NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS} is recommended if modem supports
+ * {@link TelephonyManager#requestNetworkScan(
+ * NetworkScanRequest, Executor, TelephonyScanManager.NetworkScanCallback)}.
+ *
+ * @param type used to tell which network scan API should be used.
+ */
+ public void startNetworkScan(@NetworkQueryType int type) {
+ if (type == NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS) {
+ mNetworkScanFuture = SettableFuture.create();
+ Futures.addCallback(mNetworkScanFuture, new FutureCallback<List<CellInfo>>() {
+ @Override
+ public void onSuccess(List<CellInfo> result) {
+ onResults(result);
+ onComplete();
+ }
+
+ @Override
+ public void onFailure(Throwable t) {
+ int errCode = Integer.parseInt(t.getMessage());
+ onError(errCode);
+ }
+ });
+ mExecutor.execute(new NetworkScanSyncTask(
+ mTelephonyManager, (SettableFuture) mNetworkScanFuture));
+ } else if (type == NETWORK_SCAN_TYPE_INCREMENTAL_RESULTS) {
+ if (DBG) Log.d(TAG, "start network scan async");
+ mNetworkScanRequester = mTelephonyManager.requestNetworkScan(
+ NETWORK_SCAN_REQUEST,
+ mExecutor,
+ mInternalNetworkScanCallback);
+ }
+ }
+
+ /**
+ * The network scan of type {@link #NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS} can't be stopped,
+ * however, the result of the current network scan won't be returned to the callback after
+ * calling this method.
+ */
+ public void stopNetworkQuery() {
+ if (mNetworkScanRequester != null) {
+ mNetworkScanRequester.stopScan();
+ mNetworkScanFuture = null;
+ }
+
+ if (mNetworkScanFuture != null) {
+ mNetworkScanFuture.cancel(true /* mayInterruptIfRunning */);
+ mNetworkScanFuture = null;
+ }
+ }
+
+ private void onResults(List<CellInfo> cellInfos) {
+ mNetworkScanCallback.onResults(cellInfos);
+ }
+
+ private void onComplete() {
+ mNetworkScanCallback.onComplete();
+ }
+
+ private void onError(int errCode) {
+ mNetworkScanCallback.onError(errCode);
+ }
+
+ /**
+ * Converts the status code of {@link CellNetworkScanResult} to one of the
+ * {@link NetworkScan.ScanErrorCode}.
+ * @param errCode status code from {@link CellNetworkScanResult}.
+ *
+ * @return one of the scan error code from {@link NetworkScan.ScanErrorCode}.
+ */
+ private static int convertToScanErrorCode(int errCode) {
+ switch (errCode) {
+ case CellNetworkScanResult.STATUS_RADIO_NOT_AVAILABLE:
+ return NetworkScan.ERROR_RADIO_INTERFACE_ERROR;
+ case CellNetworkScanResult.STATUS_RADIO_GENERIC_FAILURE:
+ default:
+ return NetworkScan.ERROR_MODEM_ERROR;
+ }
+ }
+
+ private final class NetworkScanCallbackImpl extends TelephonyScanManager.NetworkScanCallback {
+ public void onResults(List<CellInfo> results) {
+ if (DBG) Log.d(TAG, "async scan onResults() results = " + results);
+ NetworkScanHelper.this.onResults(results);
+ }
+
+ public void onComplete() {
+ if (DBG) Log.d(TAG, "async scan onComplete()");
+ NetworkScanHelper.this.onComplete();
+ }
+
+ public void onError(@NetworkScan.ScanErrorCode int errCode) {
+ if (DBG) Log.d(TAG, "async scan onError() errorCode = " + errCode);
+ NetworkScanHelper.this.onError(errCode);
+ }
+ }
+
+ private static final class NetworkScanSyncTask implements Runnable {
+ private final SettableFuture<List<CellInfo>> mCallback;
+ private final TelephonyManager mTelephonyManager;
+
+ NetworkScanSyncTask(
+ TelephonyManager telephonyManager, SettableFuture<List<CellInfo>> callback) {
+ mTelephonyManager = telephonyManager;
+ mCallback = callback;
+ }
+
+ @Override
+ public void run() {
+ if (DBG) Log.d(TAG, "sync scan start");
+ CellNetworkScanResult result = mTelephonyManager.getAvailableNetworks();
+ if (result.getStatus() == CellNetworkScanResult.STATUS_SUCCESS) {
+ List<CellInfo> cellInfos = result.getOperators()
+ .stream()
+ .map(operatorInfo
+ -> CellInfoUtil.convertOperatorInfoToCellInfo(operatorInfo))
+ .collect(Collectors.toList());
+ if (DBG) Log.d(TAG, "sync scan complete");
+ mCallback.set(cellInfos);
+ } else {
+ mCallback.setException(new Throwable(
+ Integer.toString(convertToScanErrorCode(result.getStatus()))));
+ }
+ }
+ }
+}
diff --git a/src/com/android/settings/mobilenetwork/NetworkSelectListPreference.java b/src/com/android/settings/mobilenetwork/NetworkSelectListPreference.java
new file mode 100644
index 0000000..c4d0d77
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/NetworkSelectListPreference.java
@@ -0,0 +1,506 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.mobilenetwork;
+
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.os.AsyncTask;
+import android.os.Handler;
+import android.os.Message;
+import android.os.Parcel;
+import android.os.Parcelable;
+import android.telephony.CellInfo;
+import android.telephony.CellInfoCdma;
+import android.telephony.CellInfoGsm;
+import android.telephony.CellInfoLte;
+import android.telephony.CellInfoWcdma;
+import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
+import android.text.BidiFormatter;
+import android.text.TextDirectionHeuristics;
+import android.text.TextUtils;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.android.internal.logging.MetricsLogger;
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.internal.telephony.OperatorInfo;
+import com.android.settings.R;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+
+
+/**
+ * "Networks" preference in "Mobile network" settings UI for the Phone app.
+ * It's used to manually search and choose mobile network. Enabled only when
+ * autoSelect preference is turned off.
+ */
+public class NetworkSelectListPreference extends ListPreference
+ implements DialogInterface.OnCancelListener,
+ Preference.OnPreferenceChangeListener{
+
+ private static final String LOG_TAG = "networkSelect";
+ private static final boolean DBG = true;
+
+ private static final int EVENT_MANUALLY_NETWORK_SELECTION_DONE = 1;
+ private static final int EVENT_NETWORK_SCAN_RESULTS = 2;
+ private static final int EVENT_NETWORK_SCAN_COMPLETED = 3;
+ private static final int EVENT_NETWORK_SCAN_ERROR = 4;
+
+ //dialog ids
+ private static final int DIALOG_NETWORK_SELECTION = 100;
+ private static final int DIALOG_NETWORK_LIST_LOAD = 200;
+
+ private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
+
+ private List<CellInfo> mCellInfoList;
+ private CellInfo mCellInfo;
+
+ private int mSubId;
+ private TelephonyManager mTelephonyManager;
+ private NetworkScanHelper mNetworkScanHelper;
+ private NetworkOperators mNetworkOperators;
+ private List<String> mForbiddenPlmns;
+
+ private ProgressDialog mProgressDialog;
+ public NetworkSelectListPreference(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public NetworkSelectListPreference(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Override
+ protected void onClick() {
+ showProgressDialog(DIALOG_NETWORK_LIST_LOAD);
+ TelephonyManager telephonyManager = (TelephonyManager)
+ getContext().getSystemService(Context.TELEPHONY_SERVICE);
+ new AsyncTask<Void, Void, List<String>>() {
+ @Override
+ protected List<String> doInBackground(Void... voids) {
+ String[] forbiddenPlmns = telephonyManager.getForbiddenPlmns();
+ return forbiddenPlmns != null ? Arrays.asList(forbiddenPlmns) : null;
+ }
+
+ @Override
+ protected void onPostExecute(List<String> result) {
+ mForbiddenPlmns = result;
+ loadNetworksList();
+ }
+ }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
+ }
+
+ private final Handler mHandler = new Handler() {
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case EVENT_MANUALLY_NETWORK_SELECTION_DONE:
+ if (DBG) logd("hideProgressPanel");
+ dismissProgressDialog();
+
+ boolean isSuccessed = (boolean) msg.obj;
+ if (isSuccessed) {
+ if (DBG) {
+ logd("manual network selection: succeeded! "
+ + getNetworkTitle(mCellInfo));
+ }
+ mNetworkOperators.displayNetworkSelectionSucceeded();
+ } else {
+ if (DBG) logd("manual network selection: failed!");
+ mNetworkOperators.displayNetworkSelectionFailed();
+ }
+ mNetworkOperators.getNetworkSelectionMode();
+ break;
+
+ case EVENT_NETWORK_SCAN_RESULTS:
+ List<CellInfo> results = (List<CellInfo>) msg.obj;
+ results.removeIf(cellInfo -> cellInfo == null);
+ mCellInfoList = new ArrayList<>(results);
+ if (DBG) logd("CALLBACK_SCAN_RESULTS" + mCellInfoList.toString());
+ break;
+
+ case EVENT_NETWORK_SCAN_COMPLETED:
+ if (DBG) logd("scan complete, load the cellInfosList");
+ dismissProgressDialog();
+ networksListLoaded();
+ break;
+ case EVENT_NETWORK_SCAN_ERROR:
+ dismissProgressDialog();
+ displayNetworkQueryFailed();
+ mNetworkOperators.getNetworkSelectionMode();
+ break;
+ }
+ return;
+ }
+ };
+
+ private final NetworkScanHelper.NetworkScanCallback mCallback =
+ new NetworkScanHelper.NetworkScanCallback() {
+ public void onResults(List<CellInfo> results) {
+ if (DBG) logd("get scan results: " + results.toString());
+ Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_RESULTS, results);
+ msg.sendToTarget();
+ }
+
+ public void onComplete() {
+ if (DBG) logd("network scan completed.");
+ Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_COMPLETED);
+ msg.sendToTarget();
+ }
+
+ public void onError(int error) {
+ if (DBG) logd("network scan error.");
+ Message msg = mHandler.obtainMessage(EVENT_NETWORK_SCAN_ERROR);
+ msg.sendToTarget();
+ }
+ };
+
+ @Override
+ //implemented for DialogInterface.OnCancelListener
+ public void onCancel(DialogInterface dialog) {
+ if (DBG) logd("user manually close the dialog");
+ mNetworkScanHelper.stopNetworkQuery();
+
+ // If cancelled, we query NetworkSelectMode and update states of AutoSelect button.
+ mNetworkOperators.getNetworkSelectionMode();
+ }
+
+ //TODO(b/114749736): move this logic to preference controller
+ protected void onDialogClosed(boolean positiveResult) {
+ // If dismissed, we query NetworkSelectMode and update states of AutoSelect button.
+ if (!positiveResult) {
+ mNetworkOperators.getNetworkSelectionMode();
+ }
+ }
+
+ // This initialize method needs to be called for this preference to work properly.
+ protected void initialize(int subId, NetworkOperators networkOperators,
+ ProgressDialog progressDialog) {
+ mSubId = subId;
+ mNetworkOperators = networkOperators;
+ // This preference should share the same progressDialog with networkOperators category.
+ mProgressDialog = progressDialog;
+
+ mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
+ mNetworkScanHelper = new NetworkScanHelper(
+ mTelephonyManager, mCallback, mNetworkScanExecutor);
+
+ setSummary(mTelephonyManager.getNetworkOperatorName());
+
+ setOnPreferenceChangeListener(this);
+ }
+
+ @Override
+ protected void onPrepareForRemoval() {
+ destroy();
+ super.onPrepareForRemoval();
+ }
+
+ private void destroy() {
+ dismissProgressDialog();
+
+ if (mNetworkScanHelper != null) {
+ mNetworkScanHelper.stopNetworkQuery();
+ }
+
+ mNetworkScanExecutor.shutdown();
+ }
+
+ private void displayEmptyNetworkList() {
+ Toast.makeText(getContext(), R.string.empty_networks_list, Toast.LENGTH_LONG).show();
+ }
+
+ private void displayNetworkQueryFailed() {
+ Toast.makeText(getContext(), R.string.network_query_error, Toast.LENGTH_LONG).show();
+ }
+
+ private void loadNetworksList() {
+ if (DBG) logd("load networks list...");
+ mNetworkScanHelper.startNetworkScan(
+ NetworkScanHelper.NETWORK_SCAN_TYPE_WAIT_FOR_ALL_RESULTS);
+ }
+
+ private void networksListLoaded() {
+ if (DBG) logd("networks list loaded");
+
+ mNetworkOperators.getNetworkSelectionMode();
+ if (mCellInfoList != null) {
+ // create a preference for each item in the list.
+ // just use the operator name instead of the mildly
+ // confusing mcc/mnc.
+ List<CharSequence> networkEntriesList = new ArrayList<>();
+ List<CharSequence> networkEntryValuesList = new ArrayList<>();
+ for (CellInfo cellInfo: mCellInfoList) {
+ // Display each operator name only once.
+ String networkTitle = getNetworkTitle(cellInfo);
+ if (CellInfoUtil.isForbidden(cellInfo, mForbiddenPlmns)) {
+ networkTitle += " "
+ + getContext().getResources().getString(R.string.forbidden_network);
+ }
+ networkEntriesList.add(networkTitle);
+ networkEntryValuesList.add(getOperatorNumeric(cellInfo));
+ }
+ setEntries(networkEntriesList.toArray(new CharSequence[networkEntriesList.size()]));
+ setEntryValues(networkEntryValuesList.toArray(
+ new CharSequence[networkEntryValuesList.size()]));
+
+ super.onClick();
+ } else {
+ displayEmptyNetworkList();
+ }
+ }
+
+ private void dismissProgressDialog() {
+ if (mProgressDialog != null && mProgressDialog.isShowing()) {
+ try {
+ mProgressDialog.dismiss();
+ } catch (IllegalArgumentException ex) {
+ loge("Can't close the progress dialog " + ex);
+ }
+ }
+ }
+
+ private void showProgressDialog(int id) {
+ if (mProgressDialog == null) {
+ mProgressDialog = new ProgressDialog(getContext());
+ } else {
+ // Dismiss progress bar if it's showing now.
+ dismissProgressDialog();
+ }
+
+ switch (id) {
+ case DIALOG_NETWORK_SELECTION:
+ final String networkSelectMsg = getContext().getResources()
+ .getString(R.string.register_on_network,
+ getNetworkTitle(mCellInfo));
+ mProgressDialog.setMessage(networkSelectMsg);
+ mProgressDialog.setCanceledOnTouchOutside(false);
+ mProgressDialog.setCancelable(false);
+ mProgressDialog.setIndeterminate(true);
+ break;
+ case DIALOG_NETWORK_LIST_LOAD:
+ mProgressDialog.setMessage(
+ getContext().getResources().getString(R.string.load_networks_progress));
+ mProgressDialog.setCanceledOnTouchOutside(false);
+ mProgressDialog.setCancelable(true);
+ mProgressDialog.setIndeterminate(false);
+ mProgressDialog.setOnCancelListener(this);
+ break;
+ default:
+ }
+ mProgressDialog.show();
+ }
+
+ /**
+ * Implemented to support onPreferenceChangeListener to look for preference
+ * changes specifically on this button.
+ *
+ * @param preference is the preference to be changed, should be network select button.
+ * @param newValue should be the value of the selection as index of operators.
+ */
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ int operatorIndex = findIndexOfValue((String) newValue);
+ mCellInfo = mCellInfoList.get(operatorIndex);
+ if (DBG) logd("selected network: " + mCellInfo.toString());
+
+ MetricsLogger.action(getContext(),
+ MetricsEvent.ACTION_MOBILE_NETWORK_MANUAL_SELECT_NETWORK);
+
+ if (SubscriptionManager.isValidSubscriptionId(mSubId)) {
+ ThreadUtils.postOnBackgroundThread(() -> {
+ final OperatorInfo operatorInfo = getOperatorInfoFromCellInfo(mCellInfo);
+ if (DBG) logd("manually selected network: " + operatorInfo.toString());
+ boolean isSuccessed = mTelephonyManager.setNetworkSelectionModeManual(
+ operatorInfo, true /* persistSelection */);
+ Message msg = mHandler.obtainMessage(EVENT_MANUALLY_NETWORK_SELECTION_DONE);
+ msg.obj = isSuccessed;
+ msg.sendToTarget();
+ });
+ } else {
+ loge("Error selecting network, subscription Id is invalid " + mSubId);
+ }
+
+ return true;
+ }
+
+ /**
+ * Returns the title of the network obtained in the manual search.
+ *
+ * @param cellInfo contains the information of the network.
+ * @return Long Name if not null/empty, otherwise Short Name if not null/empty,
+ * else MCCMNC string.
+ */
+ private String getNetworkTitle(CellInfo cellInfo) {
+ OperatorInfo ni = getOperatorInfoFromCellInfo(cellInfo);
+
+ if (!TextUtils.isEmpty(ni.getOperatorAlphaLong())) {
+ return ni.getOperatorAlphaLong();
+ } else if (!TextUtils.isEmpty(ni.getOperatorAlphaShort())) {
+ return ni.getOperatorAlphaShort();
+ } else {
+ BidiFormatter bidiFormatter = BidiFormatter.getInstance();
+ return bidiFormatter.unicodeWrap(ni.getOperatorNumeric(), TextDirectionHeuristics.LTR);
+ }
+ }
+
+ /**
+ * Returns the operator numeric (MCCMNC) obtained in the manual search.
+ *
+ * @param cellInfo contains the information of the network.
+ * @return MCCMNC string.
+ */
+ private String getOperatorNumeric(CellInfo cellInfo) {
+ return getOperatorInfoFromCellInfo(cellInfo).getOperatorNumeric();
+ }
+
+ /**
+ * Wrap a cell info into an operator info.
+ */
+ private OperatorInfo getOperatorInfoFromCellInfo(CellInfo cellInfo) {
+ OperatorInfo oi;
+ if (cellInfo instanceof CellInfoLte) {
+ CellInfoLte lte = (CellInfoLte) cellInfo;
+ oi = new OperatorInfo(
+ (String) lte.getCellIdentity().getOperatorAlphaLong(),
+ (String) lte.getCellIdentity().getOperatorAlphaShort(),
+ lte.getCellIdentity().getMobileNetworkOperator());
+ } else if (cellInfo instanceof CellInfoWcdma) {
+ CellInfoWcdma wcdma = (CellInfoWcdma) cellInfo;
+ oi = new OperatorInfo(
+ (String) wcdma.getCellIdentity().getOperatorAlphaLong(),
+ (String) wcdma.getCellIdentity().getOperatorAlphaShort(),
+ wcdma.getCellIdentity().getMobileNetworkOperator());
+ } else if (cellInfo instanceof CellInfoGsm) {
+ CellInfoGsm gsm = (CellInfoGsm) cellInfo;
+ oi = new OperatorInfo(
+ (String) gsm.getCellIdentity().getOperatorAlphaLong(),
+ (String) gsm.getCellIdentity().getOperatorAlphaShort(),
+ gsm.getCellIdentity().getMobileNetworkOperator());
+ } else if (cellInfo instanceof CellInfoCdma) {
+ CellInfoCdma cdma = (CellInfoCdma) cellInfo;
+ oi = new OperatorInfo(
+ (String) cdma.getCellIdentity().getOperatorAlphaLong(),
+ (String) cdma.getCellIdentity().getOperatorAlphaShort(),
+ "" /* operator numeric */);
+ } else {
+ oi = new OperatorInfo("", "", "");
+ }
+ return oi;
+ }
+
+ @Override
+ protected Parcelable onSaveInstanceState() {
+ final Parcelable superState = super.onSaveInstanceState();
+ if (isPersistent()) {
+ // No need to save instance state since it's persistent
+ return superState;
+ }
+
+ final SavedState myState = new SavedState(superState);
+ myState.mDialogListEntries = getEntries();
+ myState.mDialogListEntryValues = getEntryValues();
+ myState.mCellInfoList = mCellInfoList;
+ return myState;
+ }
+
+ @Override
+ protected void onRestoreInstanceState(Parcelable state) {
+ if (state == null || !state.getClass().equals(SavedState.class)) {
+ // Didn't save state for us in onSaveInstanceState
+ super.onRestoreInstanceState(state);
+ return;
+ }
+
+ SavedState myState = (SavedState) state;
+
+ if (getEntries() == null && myState.mDialogListEntries != null) {
+ setEntries(myState.mDialogListEntries);
+ }
+ if (getEntryValues() == null && myState.mDialogListEntryValues != null) {
+ setEntryValues(myState.mDialogListEntryValues);
+ }
+ if (mCellInfoList == null && myState.mCellInfoList != null) {
+ mCellInfoList = myState.mCellInfoList;
+ }
+
+ super.onRestoreInstanceState(myState.getSuperState());
+ }
+
+ /**
+ * We save entries, entryValues and operatorInfoList into bundle.
+ * At onCreate of fragment, dialog will be restored if it was open. In this case,
+ * we need to restore entries, entryValues and operatorInfoList. Without those information,
+ * onPreferenceChange will fail if user select network from the dialog.
+ */
+ private static class SavedState extends BaseSavedState {
+ CharSequence[] mDialogListEntries;
+ CharSequence[] mDialogListEntryValues;
+ List<CellInfo> mCellInfoList;
+
+ SavedState(Parcel source) {
+ super(source);
+ final ClassLoader boot = Object.class.getClassLoader();
+ mDialogListEntries = source.readCharSequenceArray();
+ mDialogListEntryValues = source.readCharSequenceArray();
+ mCellInfoList = source.readParcelableList(mCellInfoList, boot);
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ super.writeToParcel(dest, flags);
+ dest.writeCharSequenceArray(mDialogListEntries);
+ dest.writeCharSequenceArray(mDialogListEntryValues);
+ dest.writeParcelableList(mCellInfoList, flags);
+ }
+
+ SavedState(Parcelable superState) {
+ super(superState);
+ }
+
+ public static final Parcelable.Creator<SavedState> CREATOR =
+ new Parcelable.Creator<SavedState>() {
+ public SavedState createFromParcel(Parcel in) {
+ return new SavedState(in);
+ }
+
+ public SavedState[] newArray(int size) {
+ return new SavedState[size];
+ }
+ };
+ }
+
+ private void logd(String msg) {
+ Log.d(LOG_TAG, "[NetworksList] " + msg);
+ }
+
+ private void loge(String msg) {
+ Log.e(LOG_TAG, "[NetworksList] " + msg);
+ }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/mobilenetwork/NetworkSelectSettings.java b/src/com/android/settings/mobilenetwork/NetworkSelectSettings.java
index f04eae7..20cc628 100644
--- a/src/com/android/settings/mobilenetwork/NetworkSelectSettings.java
+++ b/src/com/android/settings/mobilenetwork/NetworkSelectSettings.java
@@ -31,6 +31,10 @@
import android.util.Log;
import android.view.View;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceScreen;
+
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.telephony.OperatorInfo;
@@ -47,10 +51,6 @@
import java.util.List;
import java.util.Map;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceCategory;
-import androidx.preference.PreferenceScreen;
-
/**
* "Choose network" settings UI for the Phone app.
*/
diff --git a/src/com/android/settings/mobilenetwork/RoamingDialogFragment.java b/src/com/android/settings/mobilenetwork/RoamingDialogFragment.java
new file mode 100644
index 0000000..6f71d9c
--- /dev/null
+++ b/src/com/android/settings/mobilenetwork/RoamingDialogFragment.java
@@ -0,0 +1,103 @@
+/*
+ * 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.mobilenetwork;
+
+import android.app.AlertDialog;
+import android.app.Dialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.os.Bundle;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
+
+import androidx.fragment.app.DialogFragment;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+
+
+import com.android.settings.R;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+/**
+ * A dialog fragment that asks the user if they are sure they want to turn on data roaming
+ * to avoid accidental charges.
+ */
+public class RoamingDialogFragment extends InstrumentedDialogFragment implements OnClickListener {
+
+ public static final String SUB_ID_KEY = "sub_id_key";
+
+ private CarrierConfigManager mCarrierConfigManager;
+ private int mSubId;
+
+ /**
+ * The interface we expect a host activity to implement.
+ */
+ public interface RoamingDialogListener {
+ void onPositiveButtonClick(DialogFragment dialog);
+ }
+
+ // the host activity which implements the listening interface
+ private RoamingDialogListener mListener;
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ Bundle args = getArguments();
+ mSubId = args.getInt(SUB_ID_KEY);
+ mCarrierConfigManager = new CarrierConfigManager(context);
+
+ //TODO(b/114749736): set target fragment in host fragment
+ Fragment fragment = getTargetFragment();
+ try {
+ mListener = (RoamingDialogListener) fragment;
+ } catch (ClassCastException e) {
+ throw new ClassCastException(fragment.toString() +
+ "must implement RoamingDialogListener");
+ }
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+ int title = R.string.roaming_alert_title;
+ PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ if (carrierConfig != null && carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_CHECK_PRICING_WITH_CARRIER_FOR_DATA_ROAMING_BOOL)) {
+ title = R.string.roaming_check_price_warning;
+ }
+ builder.setMessage(getResources().getString(R.string.roaming_warning))
+ .setTitle(title)
+ .setIconAttribute(android.R.attr.alertDialogIcon)
+ .setPositiveButton(android.R.string.yes, this)
+ .setNegativeButton(android.R.string.no, this);
+ return builder.create();
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ //TODO(b/114749736): add category for roaming dialog
+ return 0;
+ }
+
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ // let the host know that the positive button has been clicked
+ if (which == dialog.BUTTON_POSITIVE) {
+ mListener.onPositiveButtonClick(this);
+ }
+ }
+}
diff --git a/src/com/android/settings/network/ApnEditor.java b/src/com/android/settings/network/ApnEditor.java
index 6b99e1f..633fc45 100644
--- a/src/com/android/settings/network/ApnEditor.java
+++ b/src/com/android/settings/network/ApnEditor.java
@@ -231,9 +231,13 @@
final Intent intent = getIntent();
final String action = intent.getAction();
+ if (TextUtils.isEmpty(action)) {
+ finish();
+ return;
+ }
+
mSubId = intent.getIntExtra(ApnSettings.SUB_ID,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
-
mReadOnlyApn = false;
mReadOnlyApnTypes = null;
mReadOnlyApnFields = null;
diff --git a/src/com/android/settings/network/MobileNetworkPreferenceController.java b/src/com/android/settings/network/MobileNetworkPreferenceController.java
index 4230c67..c0e6e1c 100644
--- a/src/com/android/settings/network/MobileNetworkPreferenceController.java
+++ b/src/com/android/settings/network/MobileNetworkPreferenceController.java
@@ -36,6 +36,7 @@
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.mobilenetwork.MobileSettingsActivity;
import com.android.settingslib.RestrictedLockUtilsInternal;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.Utils;
@@ -146,7 +147,8 @@
public boolean handlePreferenceTreeClick(Preference preference) {
if (KEY_MOBILE_NETWORK_SETTINGS.equals(preference.getKey())) {
if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.MOBILE_NETWORK_V2)) {
- //TODO(b/110260193): go to the mobile network page existed in settings
+ final Intent intent = new Intent(mContext, MobileSettingsActivity.class);
+ mContext.startActivity(intent);
} else {
final Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setComponent(
diff --git a/src/com/android/settings/notification/BlockPreferenceController.java b/src/com/android/settings/notification/BlockPreferenceController.java
index 9e4c463..bee32f5 100644
--- a/src/com/android/settings/notification/BlockPreferenceController.java
+++ b/src/com/android/settings/notification/BlockPreferenceController.java
@@ -65,6 +65,7 @@
public void updateState(Preference preference) {
LayoutPreference pref = (LayoutPreference) preference;
+ pref.setSelectable(false);
SwitchBar bar = pref.findViewById(R.id.switch_bar);
if (bar != null) {
bar.setSwitchBarText(R.string.notification_switch_label,
diff --git a/src/com/android/settings/notification/ZenDeleteRuleDialog.java b/src/com/android/settings/notification/ZenDeleteRuleDialog.java
index ea582d1..804196e 100644
--- a/src/com/android/settings/notification/ZenDeleteRuleDialog.java
+++ b/src/com/android/settings/notification/ZenDeleteRuleDialog.java
@@ -19,15 +19,16 @@
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
+import android.text.BidiFormatter;
import android.view.View;
-import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.Fragment;
-
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+
public class ZenDeleteRuleDialog extends InstrumentedDialogFragment {
protected static final String TAG = "ZenDeleteRuleDialog";
private static final String EXTRA_ZEN_RULE_NAME = "zen_rule_name";
@@ -43,8 +44,9 @@
public static void show(Fragment parent, String ruleName, String id, PositiveClickListener
listener) {
+ final BidiFormatter bidi = BidiFormatter.getInstance();
final Bundle args = new Bundle();
- args.putString(EXTRA_ZEN_RULE_NAME, ruleName);
+ args.putString(EXTRA_ZEN_RULE_NAME, bidi.unicodeWrap(ruleName));
args.putString(EXTRA_ZEN_RULE_ID, id);
mPositiveClickListener = listener;
diff --git a/src/com/android/settings/notification/ZenModeEventRuleSettings.java b/src/com/android/settings/notification/ZenModeEventRuleSettings.java
index e859cdd..c11a672 100644
--- a/src/com/android/settings/notification/ZenModeEventRuleSettings.java
+++ b/src/com/android/settings/notification/ZenModeEventRuleSettings.java
@@ -27,11 +27,7 @@
import android.service.notification.ZenModeConfig;
import android.service.notification.ZenModeConfig.EventInfo;
-import androidx.preference.DropDownPreference;
-import androidx.preference.Preference;
-import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.PreferenceScreen;
-
+import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -40,6 +36,12 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
+import java.util.Objects;
+
+import androidx.preference.DropDownPreference;
+import androidx.preference.Preference;
+import androidx.preference.Preference.OnPreferenceChangeListener;
+import androidx.preference.PreferenceScreen;
public class ZenModeEventRuleSettings extends ZenModeRuleSettingsBase {
private static final String KEY_CALENDAR = "calendar";
@@ -51,7 +53,7 @@
private DropDownPreference mReply;
private EventInfo mEvent;
- private List<CalendarInfo> mCalendars;
+
private boolean mCreate;
@Override
@@ -91,24 +93,20 @@
}
private void reloadCalendar() {
- mCalendars = getCalendars(mContext);
+ List<CalendarInfo> calendars = getCalendars(mContext);
ArrayList<CharSequence> entries = new ArrayList<>();
ArrayList<CharSequence> values = new ArrayList<>();
entries.add(getString(R.string.zen_mode_event_rule_calendar_any));
- values.add(key(0, null));
- final String eventCalendar = mEvent != null ? mEvent.calendar : null;
- boolean found = false;
- for (CalendarInfo calendar : mCalendars) {
+ values.add(key(0, null, ""));
+ final String eventCalendar = mEvent != null ? mEvent.calName : null;
+ for (CalendarInfo calendar : calendars) {
entries.add(calendar.name);
values.add(key(calendar));
- if (eventCalendar != null && eventCalendar.equals(calendar.name)) {
- found = true;
+ if (eventCalendar != null && (mEvent.calendarId == null
+ && eventCalendar.equals(calendar.name))) {
+ mEvent.calendarId = calendar.calendarId;
}
}
- if (eventCalendar != null && !found) {
- entries.add(eventCalendar);
- values.add(key(mEvent.userId, eventCalendar));
- }
mCalendar.setEntries(entries.toArray(new CharSequence[entries.size()]));
mCalendar.setEntryValues(values.toArray(new CharSequence[values.size()]));
}
@@ -124,12 +122,10 @@
public boolean onPreferenceChange(Preference preference, Object newValue) {
final String calendarKey = (String) newValue;
if (calendarKey.equals(key(mEvent))) return false;
- final int i = calendarKey.indexOf(':');
- mEvent.userId = Integer.parseInt(calendarKey.substring(0, i));
- mEvent.calendar = calendarKey.substring(i + 1);
- if (mEvent.calendar.isEmpty()) {
- mEvent.calendar = null;
- }
+ String[] key = calendarKey.split(":", 3);
+ mEvent.userId = Integer.parseInt(key[0]);
+ mEvent.calendarId = key[1].equals("") ? null : Long.parseLong(key[1]);
+ mEvent.calName = key[2].equals("") ? null : key[2];
updateRule(ZenModeConfig.toEventConditionId(mEvent));
return true;
}
@@ -172,18 +168,7 @@
return MetricsEvent.NOTIFICATION_ZEN_MODE_EVENT_RULE;
}
- public static CalendarInfo findCalendar(Context context, EventInfo event) {
- if (context == null || event == null) return null;
- final String eventKey = key(event);
- for (CalendarInfo calendar : getCalendars(context)) {
- if (eventKey.equals(key(calendar))) {
- return calendar;
- }
- }
- return null;
- }
-
- private static List<CalendarInfo> getCalendars(Context context) {
+ private List<CalendarInfo> getCalendars(Context context) {
final List<CalendarInfo> calendars = new ArrayList<>();
for (UserHandle user : UserManager.get(context).getUserProfiles()) {
final Context userContext = getContextForUser(context, user);
@@ -203,11 +188,11 @@
}
}
- public static void addCalendars(Context context, List<CalendarInfo> outCalendars) {
- final String primary = "\"primary\"";
- final String[] projection = { Calendars._ID, Calendars.CALENDAR_DISPLAY_NAME,
- "(" + Calendars.ACCOUNT_NAME + "=" + Calendars.OWNER_ACCOUNT + ") AS " + primary };
- final String selection = primary + " = 1";
+ private void addCalendars(Context context, List<CalendarInfo> outCalendars) {
+ final String[] projection = { Calendars._ID, Calendars.CALENDAR_DISPLAY_NAME };
+ final String selection = Calendars.CALENDAR_ACCESS_LEVEL + " >= "
+ + Calendars.CAL_ACCESS_CONTRIBUTOR
+ + " AND " + Calendars.SYNC_EVENTS + " = 1";
Cursor cursor = null;
try {
cursor = context.getContentResolver().query(Calendars.CONTENT_URI, projection,
@@ -216,10 +201,8 @@
return;
}
while (cursor.moveToNext()) {
- final CalendarInfo ci = new CalendarInfo();
- ci.name = cursor.getString(1);
- ci.userId = context.getUserId();
- outCalendars.add(ci);
+ addCalendar(cursor.getLong(0), cursor.getString(1),
+ context.getUserId(), outCalendars);
}
} finally {
if (cursor != null) {
@@ -228,16 +211,29 @@
}
}
+ @VisibleForTesting
+ void addCalendar(long calendarId, String calName, int userId, List<CalendarInfo>
+ outCalendars) {
+ final CalendarInfo ci = new CalendarInfo();
+ ci.calendarId = calendarId;
+ ci.name = calName;
+ ci.userId = userId;
+ if (!outCalendars.contains(ci)) {
+ outCalendars.add(ci);
+ }
+ }
+
private static String key(CalendarInfo calendar) {
- return key(calendar.userId, calendar.name);
+ return key(calendar.userId, calendar.calendarId, calendar.name);
}
private static String key(EventInfo event) {
- return key(event.userId, event.calendar);
+ return key(event.userId, event.calendarId, event.calName);
}
- private static String key(int userId, String calendar) {
- return EventInfo.resolveUserId(userId) + ":" + (calendar == null ? "" : calendar);
+ private static String key(int userId, Long calendarId, String displayName) {
+ return EventInfo.resolveUserId(userId) + ":" + (calendarId == null ? "" : calendarId)
+ + ":" + displayName;
}
private static final Comparator<CalendarInfo> CALENDAR_NAME = new Comparator<CalendarInfo>() {
@@ -250,5 +246,20 @@
public static class CalendarInfo {
public String name;
public int userId;
+ public Long calendarId;
+
+ @Override
+ public boolean equals(Object o) {
+ if (!(o instanceof CalendarInfo)) return false;
+ if (o == this) return true;
+ final CalendarInfo other = (CalendarInfo) o;
+ return Objects.equals(other.name, name)
+ && Objects.equals(other.calendarId, calendarId);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(name, calendarId);
+ }
}
}
diff --git a/src/com/android/settings/notification/ZenRuleSelectionDialog.java b/src/com/android/settings/notification/ZenRuleSelectionDialog.java
index b076dd0..abda376 100644
--- a/src/com/android/settings/notification/ZenRuleSelectionDialog.java
+++ b/src/com/android/settings/notification/ZenRuleSelectionDialog.java
@@ -36,9 +36,6 @@
import android.widget.LinearLayout;
import android.widget.TextView;
-import androidx.appcompat.app.AlertDialog;
-import androidx.fragment.app.Fragment;
-
import com.android.settings.R;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settings.utils.ZenServiceListing;
@@ -49,6 +46,9 @@
import java.util.Set;
import java.util.TreeSet;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.Fragment;
+
public class ZenRuleSelectionDialog extends InstrumentedDialogFragment {
private static final String TAG = "ZenRuleSelectionDialog";
private static final boolean DEBUG = ZenModeSettings.DEBUG;
@@ -170,7 +170,8 @@
private ZenRuleInfo defaultNewEvent() {
final ZenModeConfig.EventInfo event = new ZenModeConfig.EventInfo();
- event.calendar = null; // any calendar
+ event.calName = null; // any calendar
+ event.calendarId = null;
event.reply = ZenModeConfig.EventInfo.REPLY_ANY_EXCEPT_NO;
final ZenRuleInfo rt = new ZenRuleInfo();
rt.settingsAction = ZenModeEventRuleSettings.ACTION;
diff --git a/src/com/android/settings/overlay/FeatureFactory.java b/src/com/android/settings/overlay/FeatureFactory.java
index ef8d1ee..38d48c8 100644
--- a/src/com/android/settings/overlay/FeatureFactory.java
+++ b/src/com/android/settings/overlay/FeatureFactory.java
@@ -29,7 +29,6 @@
import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
import com.android.settings.gestures.AssistGestureFeatureProvider;
import com.android.settings.localepicker.LocaleFeatureProvider;
-import com.android.settings.search.DeviceIndexFeatureProvider;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.security.SecurityFeatureProvider;
import com.android.settings.slices.SlicesFeatureProvider;
@@ -106,8 +105,6 @@
public abstract AccountFeatureProvider getAccountFeatureProvider();
- public abstract DeviceIndexFeatureProvider getDeviceIndexFeatureProvider();
-
public static final class FactoryNotFoundException extends RuntimeException {
public FactoryNotFoundException(Throwable throwable) {
super("Unable to create factory. Did you misconfigure Proguard?", throwable);
diff --git a/src/com/android/settings/overlay/FeatureFactoryImpl.java b/src/com/android/settings/overlay/FeatureFactoryImpl.java
index 61be109..1f57529 100644
--- a/src/com/android/settings/overlay/FeatureFactoryImpl.java
+++ b/src/com/android/settings/overlay/FeatureFactoryImpl.java
@@ -41,8 +41,6 @@
import com.android.settings.gestures.AssistGestureFeatureProviderImpl;
import com.android.settings.localepicker.LocaleFeatureProvider;
import com.android.settings.localepicker.LocaleFeatureProviderImpl;
-import com.android.settings.search.DeviceIndexFeatureProvider;
-import com.android.settings.search.DeviceIndexFeatureProviderImpl;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.security.SecurityFeatureProvider;
@@ -73,7 +71,6 @@
private UserFeatureProvider mUserFeatureProvider;
private SlicesFeatureProvider mSlicesFeatureProvider;
private AccountFeatureProvider mAccountFeatureProvider;
- private DeviceIndexFeatureProviderImpl mDeviceIndexFeatureProvider;
@Override
public SupportFeatureProvider getSupportFeatureProvider(Context context) {
@@ -211,12 +208,4 @@
}
return mAccountFeatureProvider;
}
-
- @Override
- public DeviceIndexFeatureProvider getDeviceIndexFeatureProvider() {
- if (mDeviceIndexFeatureProvider == null) {
- mDeviceIndexFeatureProvider = new DeviceIndexFeatureProviderImpl();
- }
- return mDeviceIndexFeatureProvider;
- }
}
diff --git a/src/com/android/settings/password/ChooseLockGeneric.java b/src/com/android/settings/password/ChooseLockGeneric.java
index df2d3cd..7f04bde 100644
--- a/src/com/android/settings/password/ChooseLockGeneric.java
+++ b/src/com/android/settings/password/ChooseLockGeneric.java
@@ -435,7 +435,14 @@
@VisibleForTesting
void updatePreferencesOrFinish(boolean isRecreatingActivity) {
Intent intent = getActivity().getIntent();
- int quality = intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, -1);
+ int quality = -1;
+ if (StorageManager.isFileEncryptedNativeOrEmulated()) {
+ quality = intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, -1);
+ } else {
+ // For non-file encrypted devices we need to show encryption interstitial, so always
+ // show the lock type picker and ignore PASSWORD_TYPE_KEY.
+ Log.i(TAG, "Ignoring PASSWORD_TYPE_KEY because device is not file encrypted");
+ }
if (quality == -1) {
// If caller didn't specify password quality, show UI and allow the user to choose.
quality = intent.getIntExtra(MINIMUM_QUALITY_KEY, -1);
diff --git a/src/com/android/settings/password/SetNewPasswordController.java b/src/com/android/settings/password/SetNewPasswordController.java
index d5641cd..bf55271 100644
--- a/src/com/android/settings/password/SetNewPasswordController.java
+++ b/src/com/android/settings/password/SetNewPasswordController.java
@@ -148,7 +148,7 @@
private Bundle getFaceChooseLockExtras() {
Bundle chooseLockExtras = new Bundle();
- long challenge = mFaceManager.preEnroll();
+ long challenge = mFaceManager.generateChallenge();
chooseLockExtras.putInt(ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY,
PASSWORD_QUALITY_SOMETHING);
chooseLockExtras.putBoolean(
diff --git a/src/com/android/settings/password/StorageManagerWrapper.java b/src/com/android/settings/password/StorageManagerWrapper.java
deleted file mode 100644
index 5adfaf2..0000000
--- a/src/com/android/settings/password/StorageManagerWrapper.java
+++ /dev/null
@@ -1,29 +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.password;
-
-import android.os.storage.StorageManager;
-
-/**
- * Wrapper class to allow Robolectric to shadow methods introduced in newer API
- */
-public class StorageManagerWrapper {
-
- public static boolean isFileEncryptedNativeOrEmulated() {
- return StorageManager.isFileEncryptedNativeOrEmulated();
- }
-}
diff --git a/src/com/android/settings/search/DeviceIndexFeatureProvider.java b/src/com/android/settings/search/DeviceIndexFeatureProvider.java
deleted file mode 100644
index f777f71..0000000
--- a/src/com/android/settings/search/DeviceIndexFeatureProvider.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.search;
-
-import static com.android.settings.slices.SliceDeepLinkSpringBoard.INTENT;
-import static com.android.settings.slices.SliceDeepLinkSpringBoard.SETTINGS;
-
-import android.app.job.JobInfo;
-import android.app.job.JobScheduler;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.pm.ServiceInfo;
-import android.net.Uri;
-import android.os.Binder;
-import android.os.Build;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.slices.SettingsSliceProvider;
-
-import java.util.List;
-import java.util.Locale;
-
-public interface DeviceIndexFeatureProvider {
-
- String TAG = "DeviceIndex";
-
- String INDEX_VERSION = "settings:index_version";
- String INDEX_LANGUAGE = "settings:language";
-
- // Increment when new items are added to ensure they get pushed to the device index.
- String VERSION = Build.FINGERPRINT;
-
- // When the device language changes, re-index so Slices trigger in device language.
- Locale LANGUAGE = Locale.getDefault();
-
- default boolean isIndexingEnabled() {
- return false;
- }
-
- void index(Context context, CharSequence title, Uri sliceUri, Uri launchUri,
- List<String> keywords);
-
- void clearIndex(Context context);
-
- default void updateIndex(Context context, boolean force) {
- if (!isIndexingEnabled()) {
- Log.i(TAG, "Skipping: device index is not enabled");
- return;
- }
-
- if (!Utils.isDeviceProvisioned(context)) {
- Log.w(TAG, "Skipping: device is not provisioned");
- return;
- }
-
- final ComponentName jobComponent = new ComponentName(context.getPackageName(),
- DeviceIndexUpdateJobService.class.getName());
-
- try {
- final int callerUid = Binder.getCallingUid();
- final ServiceInfo si = context.getPackageManager().getServiceInfo(jobComponent,
- PackageManager.MATCH_DIRECT_BOOT_AWARE
- | PackageManager.MATCH_DIRECT_BOOT_UNAWARE);
- if (si == null) {
- Log.w(TAG, "Skipping: No such service " + jobComponent);
- return;
- }
- if (si.applicationInfo.uid != callerUid) {
- Log.w(TAG, "Skipping: Uid cannot schedule DeviceIndexUpdate: " + callerUid);
- return;
- }
- } catch (PackageManager.NameNotFoundException e) {
- Log.w(TAG, "Skipping: error finding DeviceIndexUpdateJobService from packageManager");
- return;
- }
-
- if (!force && skipIndex(context)) {
- Log.i(TAG, "Skipping: already indexed.");
- // No need to update.
- return;
- }
-
- // Prevent scheduling multiple jobs
- setIndexState(context);
-
- final int jobId = context.getResources().getInteger(R.integer.device_index_update);
- // Schedule a job so that we know it'll be able to complete, but try to run as
- // soon as possible.
- context.getSystemService(JobScheduler.class).schedule(
- new JobInfo.Builder(jobId, jobComponent)
- .setPersisted(false)
- .setMinimumLatency(1000)
- .setOverrideDeadline(1)
- .build());
-
- }
-
- static Uri createDeepLink(String s) {
- return new Uri.Builder().scheme(SETTINGS)
- .authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .appendQueryParameter(INTENT, s)
- .build();
- }
-
- static boolean skipIndex(Context context) {
- final boolean isSameVersion = TextUtils.equals(
- Settings.Secure.getString(context.getContentResolver(), INDEX_VERSION), VERSION);
- final boolean isSameLanguage = TextUtils.equals(
- Settings.Secure.getString(context.getContentResolver(), INDEX_LANGUAGE),
- LANGUAGE.toString());
- return isSameLanguage && isSameVersion;
- }
-
- static void setIndexState(Context context) {
- Settings.Secure.putString(context.getContentResolver(), INDEX_VERSION, VERSION);
- Settings.Secure.putString(context.getContentResolver(), INDEX_LANGUAGE,
- LANGUAGE.toString());
- }
-}
diff --git a/src/com/android/settings/search/DeviceIndexFeatureProviderImpl.java b/src/com/android/settings/search/DeviceIndexFeatureProviderImpl.java
deleted file mode 100644
index 8fd1606..0000000
--- a/src/com/android/settings/search/DeviceIndexFeatureProviderImpl.java
+++ /dev/null
@@ -1,34 +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.search;
-
-import android.content.Context;
-import android.net.Uri;
-
-import java.util.List;
-
-public class DeviceIndexFeatureProviderImpl implements DeviceIndexFeatureProvider {
-
- @Override
- public void index(Context context, CharSequence title, Uri sliceUri, Uri launchUri,
- List<String> keywords) {
- // Not enabled by default.
- }
-
- @Override
- public void clearIndex(Context context) {
- // Not enabled by default.
- }
-}
diff --git a/src/com/android/settings/search/DeviceIndexUpdateJobService.java b/src/com/android/settings/search/DeviceIndexUpdateJobService.java
deleted file mode 100644
index 1f7ee31..0000000
--- a/src/com/android/settings/search/DeviceIndexUpdateJobService.java
+++ /dev/null
@@ -1,192 +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.search;
-
-import static android.app.slice.Slice.HINT_LARGE;
-import static android.app.slice.Slice.HINT_TITLE;
-import static android.app.slice.SliceItem.FORMAT_TEXT;
-
-import static com.android.settings.search.DeviceIndexFeatureProvider.createDeepLink;
-
-import android.app.job.JobParameters;
-import android.app.job.JobService;
-import android.content.ContentResolver;
-import android.content.Intent;
-import android.net.Uri;
-import android.net.Uri.Builder;
-import android.provider.SettingsSlicesContract;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.slice.Slice;
-import androidx.slice.SliceItem;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceViewManager;
-import androidx.slice.SliceViewManager.SliceCallback;
-import androidx.slice.core.SliceQuery;
-import androidx.slice.widget.ListContent;
-import androidx.slice.widget.SliceContent;
-
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.slices.SettingsSliceProvider;
-import com.android.settings.slices.SliceDeepLinkSpringBoard;
-
-import java.util.Collection;
-import java.util.concurrent.CountDownLatch;
-
-public class DeviceIndexUpdateJobService extends JobService {
-
- private static final String TAG = "DeviceIndexUpdate";
- private static final boolean DEBUG = false;
- @VisibleForTesting
- protected boolean mRunningJob;
-
- @Override
- public boolean onStartJob(JobParameters params) {
- if (DEBUG) Log.d(TAG, "onStartJob");
- if (!mRunningJob) {
- mRunningJob = true;
- Thread thread = new Thread(() -> updateIndex(params));
- thread.setPriority(Thread.MIN_PRIORITY);
- thread.start();
- }
- return true;
- }
-
- @Override
- public boolean onStopJob(JobParameters params) {
- if (DEBUG) Log.d(TAG, "onStopJob " + mRunningJob);
- if (mRunningJob) {
- mRunningJob = false;
- return true;
- }
- return false;
- }
-
- @VisibleForTesting
- protected void updateIndex(JobParameters params) {
- if (DEBUG) {
- Log.d(TAG, "Starting index");
- }
- final DeviceIndexFeatureProvider indexProvider = FeatureFactory.getFactory(this)
- .getDeviceIndexFeatureProvider();
- final SliceViewManager manager = getSliceViewManager();
- final Uri baseUri = new Builder()
- .scheme(ContentResolver.SCHEME_CONTENT)
- .authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .build();
- final Uri platformBaseUri = new Builder()
- .scheme(ContentResolver.SCHEME_CONTENT)
- .authority(SettingsSlicesContract.AUTHORITY)
- .build();
- final Collection<Uri> slices = manager.getSliceDescendants(baseUri);
- slices.addAll(manager.getSliceDescendants(platformBaseUri));
-
- if (DEBUG) {
- Log.d(TAG, "Indexing " + slices.size() + " slices");
- }
-
- indexProvider.clearIndex(this /* context */);
-
- for (Uri slice : slices) {
- if (!mRunningJob) {
- return;
- }
- Slice loadedSlice = bindSliceSynchronous(manager, slice);
- // TODO: Get Title APIs on SliceMetadata and use that.
- SliceMetadata metaData = getMetadata(loadedSlice);
- CharSequence title = findTitle(loadedSlice, metaData);
- if (title != null) {
- if (DEBUG) {
- Log.d(TAG, "Indexing: " + slice + " " + title + " " + loadedSlice);
- }
- indexProvider.index(this, title, slice, createDeepLink(
- new Intent(SliceDeepLinkSpringBoard.ACTION_VIEW_SLICE)
- .setPackage(getPackageName())
- .putExtra(SliceDeepLinkSpringBoard.EXTRA_SLICE, slice.toString())
- .toUri(Intent.URI_ANDROID_APP_SCHEME)),
- metaData.getSliceKeywords());
- }
- }
- if (DEBUG) {
- Log.d(TAG, "Done indexing");
- }
- jobFinished(params, false);
- }
-
- protected SliceViewManager getSliceViewManager() {
- return SliceViewManager.getInstance(this);
- }
-
- protected SliceMetadata getMetadata(Slice loadedSlice) {
- return SliceMetadata.from(this, loadedSlice);
- }
-
- protected CharSequence findTitle(Slice loadedSlice, SliceMetadata metaData) {
- ListContent content = new ListContent(null, loadedSlice);
- SliceContent headerItem = content.getHeader();
- if (headerItem == null) {
- if (content.getRowItems().size() != 0) {
- headerItem = content.getRowItems().get(0);
- } else {
- return null;
- }
- }
- // Look for a title, then large text, then any text at all.
- SliceItem title = SliceQuery.find(headerItem.getSliceItem(), FORMAT_TEXT, HINT_TITLE, null);
- if (title != null) {
- return title.getText();
- }
- title = SliceQuery.find(headerItem.getSliceItem(), FORMAT_TEXT, HINT_LARGE, null);
- if (title != null) {
- return title.getText();
- }
- title = SliceQuery.find(headerItem.getSliceItem(), FORMAT_TEXT);
- if (title != null) {
- return title.getText();
- }
- return null;
- }
-
- protected Slice bindSliceSynchronous(SliceViewManager manager, Uri slice) {
- final Slice[] returnSlice = new Slice[1];
- CountDownLatch latch = new CountDownLatch(1);
- SliceCallback callback = new SliceCallback() {
- @Override
- public void onSliceUpdated(Slice s) {
- try {
- SliceMetadata m = SliceMetadata.from(DeviceIndexUpdateJobService.this, s);
- if (m.getLoadingState() == SliceMetadata.LOADED_ALL) {
- returnSlice[0] = s;
- latch.countDown();
- manager.unregisterSliceCallback(slice, this);
- }
- } catch (Exception e) {
- Log.w(TAG, slice + " cannot be indexed", e);
- returnSlice[0] = s;
- }
- }
- };
- // Register a callback until we get a loaded slice.
- manager.registerSliceCallback(slice, callback);
- // Trigger the first bind in case no loading is needed.
- callback.onSliceUpdated(manager.bindSlice(slice));
- try {
- latch.await();
- } catch (InterruptedException e) {
- }
- return returnSlice[0];
- }
-}
diff --git a/src/com/android/settings/search/SearchFeatureProvider.java b/src/com/android/settings/search/SearchFeatureProvider.java
index c19ccef..caddb1f 100644
--- a/src/com/android/settings/search/SearchFeatureProvider.java
+++ b/src/com/android/settings/search/SearchFeatureProvider.java
@@ -23,6 +23,7 @@
import android.content.Intent;
import android.view.View;
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.search.SearchIndexableResources;
@@ -52,6 +53,7 @@
return "com.android.settings.intelligence";
}
+
/**
* Initializes the search toolbar.
*/
@@ -62,10 +64,12 @@
view.setOnClickListener(tb -> {
final Intent intent = SEARCH_UI_INTENT;
intent.setPackage(getSettingsIntelligencePkgName());
+ final Context context = activity.getApplicationContext();
- FeatureFactory.getFactory(
- activity.getApplicationContext()).getSlicesFeatureProvider()
+ FeatureFactory.getFactory(context).getSlicesFeatureProvider()
.indexSliceDataAsync(activity.getApplicationContext());
+ FeatureFactory.getFactory(context).getMetricsFeatureProvider()
+ .action(context, MetricsProto.MetricsEvent.ACTION_SEARCH_RESULTS);
activity.startActivityForResult(intent, REQUEST_CODE);
});
}
diff --git a/src/com/android/settings/search/actionbar/SearchMenuController.java b/src/com/android/settings/search/actionbar/SearchMenuController.java
index 6855717..81e9e60 100644
--- a/src/com/android/settings/search/actionbar/SearchMenuController.java
+++ b/src/com/android/settings/search/actionbar/SearchMenuController.java
@@ -17,6 +17,7 @@
package com.android.settings.search.actionbar;
import android.annotation.NonNull;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
@@ -25,6 +26,7 @@
import androidx.fragment.app.Fragment;
+import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.overlay.FeatureFactory;
@@ -70,10 +72,12 @@
searchItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
searchItem.setOnMenuItemClickListener(target -> {
+ final Context context = mHost.getContext();
final Intent intent = SearchFeatureProvider.SEARCH_UI_INTENT;
intent.setPackage(FeatureFactory.getFactory(mHost.getContext())
.getSearchFeatureProvider().getSettingsIntelligencePkgName());
-
+ FeatureFactory.getFactory(context).getMetricsFeatureProvider()
+ .action(context, MetricsProto.MetricsEvent.ACTION_SEARCH_RESULTS);
mHost.startActivityForResult(intent, 0 /* requestCode */);
return true;
});
diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java
index 3533915..62c8d6b 100644
--- a/src/com/android/settings/security/LockscreenDashboardFragment.java
+++ b/src/com/android/settings/security/LockscreenDashboardFragment.java
@@ -29,6 +29,7 @@
import com.android.settings.display.AmbientDisplayNotificationsPreferenceController;
import com.android.settings.gestures.DoubleTapScreenPreferenceController;
import com.android.settings.gestures.PickupGesturePreferenceController;
+import com.android.settings.gestures.WakeScreenGesturePreferenceController;
import com.android.settings.notification.LockScreenNotificationPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.security.screenlock.LockScreenPreferenceController;
diff --git a/src/com/android/settings/slices/CustomSliceManager.java b/src/com/android/settings/slices/CustomSliceManager.java
index 3d81392..8fa2fb6 100644
--- a/src/com/android/settings/slices/CustomSliceManager.java
+++ b/src/com/android/settings/slices/CustomSliceManager.java
@@ -21,6 +21,8 @@
import android.util.ArrayMap;
import com.android.settings.homepage.deviceinfo.DataUsageSlice;
+import com.android.settings.homepage.deviceinfo.DeviceInfoSlice;
+import com.android.settings.homepage.deviceinfo.StorageSlice;
import com.android.settings.wifi.WifiSlice;
import java.util.Map;
@@ -89,5 +91,7 @@
private void addSlices() {
mUriMap.put(WifiSlice.WIFI_URI, WifiSlice.class);
mUriMap.put(DataUsageSlice.DATA_USAGE_CARD_URI, DataUsageSlice.class);
+ mUriMap.put(DeviceInfoSlice.DEVICE_INFO_CARD_URI, DeviceInfoSlice.class);
+ mUriMap.put(StorageSlice.STORAGE_CARD_URI, StorageSlice.class);
}
}
\ No newline at end of file
diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java
index 0306fc9..a947fb2 100644
--- a/src/com/android/settings/slices/SliceBuilderUtils.java
+++ b/src/com/android/settings/slices/SliceBuilderUtils.java
@@ -184,12 +184,23 @@
*/
public static CharSequence getSubtitleText(Context context,
AbstractPreferenceController controller, SliceData sliceData) {
- CharSequence summaryText = sliceData.getScreenTitle();
+ final boolean isDynamicSummaryAllowed = sliceData.isDynamicSummaryAllowed();
+ CharSequence summaryText = controller.getSummary();
+
+ // Priority 1 : User prefers showing the dynamic summary in slice view rather than static
+ // summary.
+ if (isDynamicSummaryAllowed && isValidSummary(context, summaryText)) {
+ return summaryText;
+ }
+
+ // Priority 2 : Show screen title.
+ summaryText = sliceData.getScreenTitle();
if (isValidSummary(context, summaryText) && !TextUtils.equals(summaryText,
sliceData.getTitle())) {
return summaryText;
}
+ // Priority 3 : Show dynamic summary from preference controller.
if (controller != null) {
summaryText = controller.getSummary();
@@ -198,11 +209,13 @@
}
}
+ // Priority 4 : Show summary from slice data.
summaryText = sliceData.getSummary();
if (isValidSummary(context, summaryText)) {
return summaryText;
}
+ // Priority 5 : Show empty text.
return "";
}
@@ -217,7 +230,7 @@
.build();
}
- public static Intent buildSearchResultPageIntent(Context context, String className, String key,
+ public static Intent buildSearchResultPageIntent(Context context, String className, String key,
String screenTitle, int sourceMetricsCategory) {
final Bundle args = new Bundle();
args.putString(SettingsActivity.EXTRA_FRAGMENT_ARG_KEY, key);
diff --git a/src/com/android/settings/slices/SliceData.java b/src/com/android/settings/slices/SliceData.java
index 72729a8..8705884 100644
--- a/src/com/android/settings/slices/SliceData.java
+++ b/src/com/android/settings/slices/SliceData.java
@@ -74,6 +74,8 @@
private final boolean mIsPlatformDefined;
+ private final boolean mIsDynamicSummaryAllowed;
+
public String getKey() {
return mKey;
}
@@ -118,6 +120,10 @@
return mIsPlatformDefined;
}
+ public boolean isDynamicSummaryAllowed() {
+ return mIsDynamicSummaryAllowed;
+ }
+
private SliceData(Builder builder) {
mKey = builder.mKey;
mTitle = builder.mTitle;
@@ -130,6 +136,7 @@
mPreferenceController = builder.mPrefControllerClassName;
mSliceType = builder.mSliceType;
mIsPlatformDefined = builder.mIsPlatformDefined;
+ mIsDynamicSummaryAllowed = builder.mIsDynamicSummaryAllowed;
}
@Override
@@ -169,6 +176,8 @@
private boolean mIsPlatformDefined;
+ private boolean mIsDynamicSummaryAllowed;
+
public Builder setKey(String key) {
mKey = key;
return this;
@@ -224,6 +233,11 @@
return this;
}
+ public Builder setDynamicSummaryAllowed(boolean isDynamicSummaryAllowed) {
+ mIsDynamicSummaryAllowed = isDynamicSummaryAllowed;
+ return this;
+ }
+
public SliceData build() {
if (TextUtils.isEmpty(mKey)) {
throw new InvalidSliceDataException("Key cannot be empty");
diff --git a/src/com/android/settings/slices/SliceDataConverter.java b/src/com/android/settings/slices/SliceDataConverter.java
index 7c233a6..29e3d6b 100644
--- a/src/com/android/settings/slices/SliceDataConverter.java
+++ b/src/com/android/settings/slices/SliceDataConverter.java
@@ -16,6 +16,8 @@
package com.android.settings.slices;
+import static com.android.settings.core.PreferenceXmlParserUtils
+ .METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_CONTROLLER;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_ICON;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY;
@@ -186,7 +188,8 @@
| MetadataFlag.FLAG_NEED_PREF_TITLE
| MetadataFlag.FLAG_NEED_PREF_ICON
| MetadataFlag.FLAG_NEED_PREF_SUMMARY
- | MetadataFlag.FLAG_NEED_PLATFORM_SLICE_FLAG);
+ | MetadataFlag.FLAG_NEED_PLATFORM_SLICE_FLAG
+ | MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE);
for (Bundle bundle : metadata) {
// TODO (b/67996923) Non-controller Slices should become intent-only slices.
@@ -203,6 +206,8 @@
final int sliceType = SliceBuilderUtils.getSliceType(mContext, controllerClassName,
key);
final boolean isPlatformSlice = bundle.getBoolean(METADATA_PLATFORM_SLICE_FLAG);
+ final boolean isDynamicSummaryAllowed = bundle.getBoolean(
+ METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE);
final SliceData xmlSlice = new SliceData.Builder()
.setKey(key)
@@ -214,6 +219,7 @@
.setFragmentName(fragmentName)
.setSliceType(sliceType)
.setPlatformDefined(isPlatformSlice)
+ .setDynamicSummaryAllowed(isDynamicSummaryAllowed)
.build();
final BasePreferenceController controller =
diff --git a/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java b/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
index 5d36d73..7531778 100644
--- a/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
+++ b/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
@@ -21,6 +21,8 @@
import android.provider.Settings;
import android.util.Log;
+import androidx.annotation.Keep;
+
import com.android.settings.bluetooth.BluetoothSliceBuilder;
import com.android.settings.location.LocationSliceBuilder;
import com.android.settings.notification.ZenModeSliceBuilder;
@@ -90,6 +92,14 @@
}
}
+ @Keep
+ public static Uri createDeepLink(String s) {
+ return new Uri.Builder().scheme(SETTINGS)
+ .authority(SettingsSliceProvider.SLICE_AUTHORITY)
+ .appendQueryParameter(INTENT, s)
+ .build();
+ }
+
public static Intent parse(Uri uri, String pkg) throws URISyntaxException {
Intent intent = Intent.parseUri(uri.getQueryParameter(INTENT),
Intent.URI_ANDROID_APP_SCHEME);
diff --git a/src/com/android/settings/slices/SlicesDatabaseAccessor.java b/src/com/android/settings/slices/SlicesDatabaseAccessor.java
index 79d3bc6..35a0a5d 100644
--- a/src/com/android/settings/slices/SlicesDatabaseAccessor.java
+++ b/src/com/android/settings/slices/SlicesDatabaseAccessor.java
@@ -49,6 +49,7 @@
IndexColumns.CONTROLLER,
IndexColumns.PLATFORM_SLICE,
IndexColumns.SLICE_TYPE,
+ IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
};
// Cursor value for boolean true
@@ -159,6 +160,8 @@
cursor.getColumnIndex(IndexColumns.CONTROLLER));
final boolean isPlatformDefined = cursor.getInt(
cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE)) == TRUE;
+ final boolean isDynamicSummaryAllowed = cursor.getInt(
+ cursor.getColumnIndex(IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE)) == TRUE;
int sliceType = cursor.getInt(
cursor.getColumnIndex(IndexColumns.SLICE_TYPE));
@@ -178,6 +181,7 @@
.setUri(uri)
.setPlatformDefined(isPlatformDefined)
.setSliceType(sliceType)
+ .setDynamicSummaryAllowed(isDynamicSummaryAllowed)
.build();
}
diff --git a/src/com/android/settings/slices/SlicesDatabaseHelper.java b/src/com/android/settings/slices/SlicesDatabaseHelper.java
index f1628e7..e463099 100644
--- a/src/com/android/settings/slices/SlicesDatabaseHelper.java
+++ b/src/com/android/settings/slices/SlicesDatabaseHelper.java
@@ -36,7 +36,7 @@
private static final String DATABASE_NAME = "slices_index.db";
private static final String SHARED_PREFS_TAG = "slices_shared_prefs";
- private static final int DATABASE_VERSION = 2;
+ private static final int DATABASE_VERSION = 3;
public interface Tables {
String TABLE_SLICES_INDEX = "slices_index";
@@ -93,6 +93,12 @@
* {@link SliceData.SliceType} representing the inline type of the result.
*/
String SLICE_TYPE = "slice_type";
+
+ /**
+ * Boolean flag, {@code true} when the slice object prefers using the dynamic summary from
+ * preference controller.
+ */
+ String ALLOW_DYNAMIC_SUMMARY_IN_SLICE = "allow_dynamic_summary_in_slice";
}
private static final String CREATE_SLICES_TABLE =
@@ -117,6 +123,8 @@
IndexColumns.PLATFORM_SLICE +
", " +
IndexColumns.SLICE_TYPE +
+ ", " +
+ IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE +
");";
private final Context mContext;
diff --git a/src/com/android/settings/slices/SlicesIndexer.java b/src/com/android/settings/slices/SlicesIndexer.java
index f88af8f..0ccd223 100644
--- a/src/com/android/settings/slices/SlicesIndexer.java
+++ b/src/com/android/settings/slices/SlicesIndexer.java
@@ -111,6 +111,8 @@
values.put(IndexColumns.CONTROLLER, dataRow.getPreferenceController());
values.put(IndexColumns.PLATFORM_SLICE, dataRow.isPlatformDefined());
values.put(IndexColumns.SLICE_TYPE, dataRow.getSliceType());
+ values.put(IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
+ dataRow.isDynamicSummaryAllowed());
database.replaceOrThrow(Tables.TABLE_SLICES_INDEX, null /* nullColumnHack */,
values);
diff --git a/src/com/android/settings/support/SupportPreferenceController.java b/src/com/android/settings/support/SupportPreferenceController.java
new file mode 100644
index 0000000..793842f
--- /dev/null
+++ b/src/com/android/settings/support/SupportPreferenceController.java
@@ -0,0 +1,60 @@
+/*
+ * 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.support;
+
+import android.app.Activity;
+import android.content.Context;
+import android.text.TextUtils;
+
+import androidx.preference.Preference;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.overlay.SupportFeatureProvider;
+
+public class SupportPreferenceController extends BasePreferenceController {
+
+ private final SupportFeatureProvider mSupportFeatureProvider;
+
+ private Activity mActivity;
+
+ public SupportPreferenceController(Context context, String preferenceKey) {
+ super(context, preferenceKey);
+ mSupportFeatureProvider = FeatureFactory.getFactory(context)
+ .getSupportFeatureProvider(context);
+ }
+
+ public void setActivity(Activity activity) {
+ mActivity = activity;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return mSupportFeatureProvider == null ? UNSUPPORTED_ON_DEVICE : AVAILABLE;
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (preference == null || mActivity == null ||
+ !TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ return false;
+ }
+ mSupportFeatureProvider.startSupport(mActivity);
+ return true;
+
+ }
+}
diff --git a/src/com/android/settings/widget/ChartDataUsageView.java b/src/com/android/settings/widget/ChartDataUsageView.java
deleted file mode 100644
index d1ddc14..0000000
--- a/src/com/android/settings/widget/ChartDataUsageView.java
+++ /dev/null
@@ -1,606 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.widget;
-
-import static android.net.TrafficStats.MB_IN_BYTES;
-
-import android.content.Context;
-import android.content.res.Resources;
-import android.net.NetworkPolicy;
-import android.net.NetworkStatsHistory;
-import android.net.TrafficStats;
-import android.os.Handler;
-import android.os.Message;
-import android.text.Spannable;
-import android.text.SpannableStringBuilder;
-import android.text.TextUtils;
-import android.text.format.DateUtils;
-import android.text.format.Formatter;
-import android.text.format.Formatter.BytesResult;
-import android.text.format.Time;
-import android.util.AttributeSet;
-import android.util.MathUtils;
-import android.view.MotionEvent;
-import android.view.View;
-
-import com.android.settings.R;
-import com.android.settings.widget.ChartSweepView.OnSweepListener;
-
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Objects;
-
-/**
- * Specific {@link ChartView} that displays {@link ChartNetworkSeriesView} along
- * with {@link ChartSweepView} for inspection ranges and warning/limits.
- */
-public class ChartDataUsageView extends ChartView {
-
- private static final int MSG_UPDATE_AXIS = 100;
- private static final long DELAY_MILLIS = 250;
-
- private ChartGridView mGrid;
- private ChartNetworkSeriesView mSeries;
- private ChartNetworkSeriesView mDetailSeries;
-
- private NetworkStatsHistory mHistory;
-
- private ChartSweepView mSweepWarning;
- private ChartSweepView mSweepLimit;
-
- private long mInspectStart;
- private long mInspectEnd;
-
- private Handler mHandler;
-
- /** Current maximum value of {@link #mVert}. */
- private long mVertMax;
-
- public interface DataUsageChartListener {
- public void onWarningChanged();
- public void onLimitChanged();
- public void requestWarningEdit();
- public void requestLimitEdit();
- }
-
- private DataUsageChartListener mListener;
-
- public ChartDataUsageView(Context context) {
- this(context, null, 0);
- }
-
- public ChartDataUsageView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public ChartDataUsageView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- init(new TimeAxis(), new InvertedChartAxis(new DataAxis()));
-
- mHandler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- final ChartSweepView sweep = (ChartSweepView) msg.obj;
- updateVertAxisBounds(sweep);
- updateEstimateVisible();
-
- // we keep dispatching repeating updates until sweep is dropped
- sendUpdateAxisDelayed(sweep, true);
- }
- };
- }
-
- @Override
- protected void onFinishInflate() {
- super.onFinishInflate();
-
- mGrid = (ChartGridView) findViewById(R.id.grid);
- mSeries = (ChartNetworkSeriesView) findViewById(R.id.series);
- mDetailSeries = (ChartNetworkSeriesView) findViewById(R.id.detail_series);
- mDetailSeries.setVisibility(View.GONE);
-
- mSweepLimit = (ChartSweepView) findViewById(R.id.sweep_limit);
- mSweepWarning = (ChartSweepView) findViewById(R.id.sweep_warning);
-
- // prevent sweeps from crossing each other
- mSweepWarning.setValidRangeDynamic(null, mSweepLimit);
- mSweepLimit.setValidRangeDynamic(mSweepWarning, null);
-
- // mark neighbors for checking touch events against
- mSweepLimit.setNeighbors(mSweepWarning);
- mSweepWarning.setNeighbors(mSweepLimit);
-
- mSweepWarning.addOnSweepListener(mVertListener);
- mSweepLimit.addOnSweepListener(mVertListener);
-
- mSweepWarning.setDragInterval(5 * MB_IN_BYTES);
- mSweepLimit.setDragInterval(5 * MB_IN_BYTES);
-
- // tell everyone about our axis
- mGrid.init(mHoriz, mVert);
- mSeries.init(mHoriz, mVert);
- mDetailSeries.init(mHoriz, mVert);
- mSweepWarning.init(mVert);
- mSweepLimit.init(mVert);
-
- setActivated(false);
- }
-
- public void setListener(DataUsageChartListener listener) {
- mListener = listener;
- }
-
- public void bindNetworkStats(NetworkStatsHistory stats) {
- mSeries.bindNetworkStats(stats);
- mHistory = stats;
- updateVertAxisBounds(null);
- updateEstimateVisible();
- updatePrimaryRange();
- requestLayout();
- }
-
- public void bindDetailNetworkStats(NetworkStatsHistory stats) {
- mDetailSeries.bindNetworkStats(stats);
- mDetailSeries.setVisibility(stats != null ? View.VISIBLE : View.GONE);
- if (mHistory != null) {
- mDetailSeries.setEndTime(mHistory.getEnd());
- }
- updateVertAxisBounds(null);
- updateEstimateVisible();
- updatePrimaryRange();
- requestLayout();
- }
-
- public void bindNetworkPolicy(NetworkPolicy policy) {
- if (policy == null) {
- mSweepLimit.setVisibility(View.INVISIBLE);
- mSweepLimit.setValue(-1);
- mSweepWarning.setVisibility(View.INVISIBLE);
- mSweepWarning.setValue(-1);
- return;
- }
-
- if (policy.limitBytes != NetworkPolicy.LIMIT_DISABLED) {
- mSweepLimit.setVisibility(View.VISIBLE);
- mSweepLimit.setEnabled(true);
- mSweepLimit.setValue(policy.limitBytes);
- } else {
- mSweepLimit.setVisibility(View.INVISIBLE);
- mSweepLimit.setEnabled(false);
- mSweepLimit.setValue(-1);
- }
-
- if (policy.warningBytes != NetworkPolicy.WARNING_DISABLED) {
- mSweepWarning.setVisibility(View.VISIBLE);
- mSweepWarning.setValue(policy.warningBytes);
- } else {
- mSweepWarning.setVisibility(View.INVISIBLE);
- mSweepWarning.setValue(-1);
- }
-
- updateVertAxisBounds(null);
- requestLayout();
- invalidate();
- }
-
- /**
- * Update {@link #mVert} to both show data from {@link NetworkStatsHistory}
- * and controls from {@link NetworkPolicy}.
- */
- private void updateVertAxisBounds(ChartSweepView activeSweep) {
- final long max = mVertMax;
-
- long newMax = 0;
- if (activeSweep != null) {
- final int adjustAxis = activeSweep.shouldAdjustAxis();
- if (adjustAxis > 0) {
- // hovering around upper edge, grow axis
- newMax = max * 11 / 10;
- } else if (adjustAxis < 0) {
- // hovering around lower edge, shrink axis
- newMax = max * 9 / 10;
- } else {
- newMax = max;
- }
- }
-
- // always show known data and policy lines
- final long maxSweep = Math.max(mSweepWarning.getValue(), mSweepLimit.getValue());
- final long maxSeries = Math.max(mSeries.getMaxVisible(), mDetailSeries.getMaxVisible());
- final long maxVisible = Math.max(maxSeries, maxSweep) * 12 / 10;
- final long maxDefault = Math.max(maxVisible, 50 * MB_IN_BYTES);
- newMax = Math.max(maxDefault, newMax);
-
- // only invalidate when vertMax actually changed
- if (newMax != mVertMax) {
- mVertMax = newMax;
-
- final boolean changed = mVert.setBounds(0L, newMax);
- mSweepWarning.setValidRange(0L, newMax);
- mSweepLimit.setValidRange(0L, newMax);
-
- if (changed) {
- mSeries.invalidatePath();
- mDetailSeries.invalidatePath();
- }
-
- mGrid.invalidate();
-
- // since we just changed axis, make sweep recalculate its value
- if (activeSweep != null) {
- activeSweep.updateValueFromPosition();
- }
-
- // layout other sweeps to match changed axis
- // TODO: find cleaner way of doing this, such as requesting full
- // layout and making activeSweep discard its tracking MotionEvent.
- if (mSweepLimit != activeSweep) {
- layoutSweep(mSweepLimit);
- }
- if (mSweepWarning != activeSweep) {
- layoutSweep(mSweepWarning);
- }
- }
- }
-
- /**
- * Control {@link ChartNetworkSeriesView#setEstimateVisible(boolean)} based
- * on how close estimate comes to {@link #mSweepWarning}.
- */
- private void updateEstimateVisible() {
- final long maxEstimate = mSeries.getMaxEstimate();
-
- // show estimate when near warning/limit
- long interestLine = Long.MAX_VALUE;
- if (mSweepWarning.isEnabled()) {
- interestLine = mSweepWarning.getValue();
- } else if (mSweepLimit.isEnabled()) {
- interestLine = mSweepLimit.getValue();
- }
-
- if (interestLine < 0) {
- interestLine = Long.MAX_VALUE;
- }
-
- final boolean estimateVisible = (maxEstimate >= interestLine * 7 / 10);
- mSeries.setEstimateVisible(estimateVisible);
- }
-
- private void sendUpdateAxisDelayed(ChartSweepView sweep, boolean force) {
- if (force || !mHandler.hasMessages(MSG_UPDATE_AXIS, sweep)) {
- mHandler.sendMessageDelayed(
- mHandler.obtainMessage(MSG_UPDATE_AXIS, sweep), DELAY_MILLIS);
- }
- }
-
- private void clearUpdateAxisDelayed(ChartSweepView sweep) {
- mHandler.removeMessages(MSG_UPDATE_AXIS, sweep);
- }
-
- private OnSweepListener mVertListener = new OnSweepListener() {
- @Override
- public void onSweep(ChartSweepView sweep, boolean sweepDone) {
- if (sweepDone) {
- clearUpdateAxisDelayed(sweep);
- updateEstimateVisible();
-
- if (sweep == mSweepWarning && mListener != null) {
- mListener.onWarningChanged();
- } else if (sweep == mSweepLimit && mListener != null) {
- mListener.onLimitChanged();
- }
- } else {
- // while moving, kick off delayed grow/shrink axis updates
- sendUpdateAxisDelayed(sweep, false);
- }
- }
-
- @Override
- public void requestEdit(ChartSweepView sweep) {
- if (sweep == mSweepWarning && mListener != null) {
- mListener.requestWarningEdit();
- } else if (sweep == mSweepLimit && mListener != null) {
- mListener.requestLimitEdit();
- }
- }
- };
-
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if (isActivated()) return false;
- switch (event.getAction()) {
- case MotionEvent.ACTION_DOWN: {
- return true;
- }
- case MotionEvent.ACTION_UP: {
- setActivated(true);
- return true;
- }
- default: {
- return false;
- }
- }
- }
-
- public long getInspectStart() {
- return mInspectStart;
- }
-
- public long getInspectEnd() {
- return mInspectEnd;
- }
-
- public long getWarningBytes() {
- return mSweepWarning.getLabelValue();
- }
-
- public long getLimitBytes() {
- return mSweepLimit.getLabelValue();
- }
-
- /**
- * Set the exact time range that should be displayed, updating how
- * {@link ChartNetworkSeriesView} paints. Moves inspection ranges to be the
- * last "week" of available data, without triggering listener events.
- */
- public void setVisibleRange(long visibleStart, long visibleEnd) {
- final boolean changed = mHoriz.setBounds(visibleStart, visibleEnd);
- mGrid.setBounds(visibleStart, visibleEnd);
- mSeries.setBounds(visibleStart, visibleEnd);
- mDetailSeries.setBounds(visibleStart, visibleEnd);
-
- mInspectStart = visibleStart;
- mInspectEnd = visibleEnd;
-
- requestLayout();
- if (changed) {
- mSeries.invalidatePath();
- mDetailSeries.invalidatePath();
- }
-
- updateVertAxisBounds(null);
- updateEstimateVisible();
- updatePrimaryRange();
- }
-
- private void updatePrimaryRange() {
- // prefer showing primary range on detail series, when available
- if (mDetailSeries.getVisibility() == View.VISIBLE) {
- mSeries.setSecondary(true);
- } else {
- mSeries.setSecondary(false);
- }
- }
-
- public static class TimeAxis implements ChartAxis {
- private static final int FIRST_DAY_OF_WEEK = Calendar.getInstance().getFirstDayOfWeek() - 1;
-
- private long mMin;
- private long mMax;
- private float mSize;
-
- public TimeAxis() {
- final long currentTime = System.currentTimeMillis();
- setBounds(currentTime - DateUtils.DAY_IN_MILLIS * 30, currentTime);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(mMin, mMax, mSize);
- }
-
- @Override
- public boolean setBounds(long min, long max) {
- if (mMin != min || mMax != max) {
- mMin = min;
- mMax = max;
- return true;
- } else {
- return false;
- }
- }
-
- @Override
- public boolean setSize(float size) {
- if (mSize != size) {
- mSize = size;
- return true;
- } else {
- return false;
- }
- }
-
- @Override
- public float convertToPoint(long value) {
- return (mSize * (value - mMin)) / (mMax - mMin);
- }
-
- @Override
- public long convertToValue(float point) {
- return (long) (mMin + ((point * (mMax - mMin)) / mSize));
- }
-
- @Override
- public long buildLabel(Resources res, SpannableStringBuilder builder, long value) {
- // TODO: convert to better string
- builder.replace(0, builder.length(), Long.toString(value));
- return value;
- }
-
- @Override
- public float[] getTickPoints() {
- final float[] ticks = new float[32];
- int i = 0;
-
- // tick mark for first day of each week
- final Time time = new Time();
- time.set(mMax);
- time.monthDay -= time.weekDay - FIRST_DAY_OF_WEEK;
- time.hour = time.minute = time.second = 0;
-
- time.normalize(true);
- long timeMillis = time.toMillis(true);
- while (timeMillis > mMin) {
- if (timeMillis <= mMax) {
- ticks[i++] = convertToPoint(timeMillis);
- }
- time.monthDay -= 7;
- time.normalize(true);
- timeMillis = time.toMillis(true);
- }
-
- return Arrays.copyOf(ticks, i);
- }
-
- @Override
- public int shouldAdjustAxis(long value) {
- // time axis never adjusts
- return 0;
- }
- }
-
- public static class DataAxis implements ChartAxis {
- private long mMin;
- private long mMax;
- private float mSize;
-
- private static final boolean LOG_SCALE = false;
-
- @Override
- public int hashCode() {
- return Objects.hash(mMin, mMax, mSize);
- }
-
- @Override
- public boolean setBounds(long min, long max) {
- if (mMin != min || mMax != max) {
- mMin = min;
- mMax = max;
- return true;
- } else {
- return false;
- }
- }
-
- @Override
- public boolean setSize(float size) {
- if (mSize != size) {
- mSize = size;
- return true;
- } else {
- return false;
- }
- }
-
- @Override
- public float convertToPoint(long value) {
- if (LOG_SCALE) {
- // derived polynomial fit to make lower values more visible
- final double normalized = ((double) value - mMin) / (mMax - mMin);
- final double fraction = Math.pow(10,
- 0.36884343106175121463 * Math.log10(normalized) + -0.04328199452018252624);
- return (float) (fraction * mSize);
- } else {
- return (mSize * (value - mMin)) / (mMax - mMin);
- }
- }
-
- @Override
- public long convertToValue(float point) {
- if (LOG_SCALE) {
- final double normalized = point / mSize;
- final double fraction = 1.3102228476089056629
- * Math.pow(normalized, 2.7111774693164631640);
- return (long) (mMin + (fraction * (mMax - mMin)));
- } else {
- return (long) (mMin + ((point * (mMax - mMin)) / mSize));
- }
- }
-
- private static final Object sSpanSize = new Object();
- private static final Object sSpanUnit = new Object();
-
- @Override
- public long buildLabel(Resources res, SpannableStringBuilder builder, long value) {
- value = MathUtils.constrain(value, 0, TrafficStats.TB_IN_BYTES);
- final BytesResult result = Formatter.formatBytes(res, value,
- Formatter.FLAG_SHORTER | Formatter.FLAG_CALCULATE_ROUNDED);
- setText(builder, sSpanSize, result.value, "^1");
- setText(builder, sSpanUnit, result.units, "^2");
- return result.roundedBytes;
- }
-
- @Override
- public float[] getTickPoints() {
- final long range = mMax - mMin;
-
- // target about 16 ticks on screen, rounded to nearest power of 2
- final long tickJump = roundUpToPowerOfTwo(range / 16);
- final int tickCount = (int) (range / tickJump);
- final float[] tickPoints = new float[tickCount];
- long value = mMin;
- for (int i = 0; i < tickPoints.length; i++) {
- tickPoints[i] = convertToPoint(value);
- value += tickJump;
- }
-
- return tickPoints;
- }
-
- @Override
- public int shouldAdjustAxis(long value) {
- final float point = convertToPoint(value);
- if (point < mSize * 0.1) {
- return -1;
- } else if (point > mSize * 0.85) {
- return 1;
- } else {
- return 0;
- }
- }
- }
-
- private static void setText(
- SpannableStringBuilder builder, Object key, CharSequence text, String bootstrap) {
- int start = builder.getSpanStart(key);
- int end = builder.getSpanEnd(key);
- if (start == -1) {
- start = TextUtils.indexOf(builder, bootstrap);
- end = start + bootstrap.length();
- builder.setSpan(key, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE);
- }
- builder.replace(start, end, text);
- }
-
- private static long roundUpToPowerOfTwo(long i) {
- // NOTE: borrowed from Hashtable.roundUpToPowerOfTwo()
-
- i--; // If input is a power of two, shift its high-order bit right
-
- // "Smear" the high-order bit all the way to the right
- i |= i >>> 1;
- i |= i >>> 2;
- i |= i >>> 4;
- i |= i >>> 8;
- i |= i >>> 16;
- i |= i >>> 32;
-
- i++;
-
- return i > 0 ? i : Long.MAX_VALUE;
- }
-}
diff --git a/src/com/android/settings/widget/ChartNetworkSeriesView.java b/src/com/android/settings/widget/ChartNetworkSeriesView.java
deleted file mode 100644
index 7aaba66..0000000
--- a/src/com/android/settings/widget/ChartNetworkSeriesView.java
+++ /dev/null
@@ -1,340 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.widget;
-
-import static android.text.format.DateUtils.DAY_IN_MILLIS;
-import static android.text.format.DateUtils.WEEK_IN_MILLIS;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.DashPathEffect;
-import android.graphics.Paint;
-import android.graphics.Paint.Style;
-import android.graphics.Path;
-import android.graphics.RectF;
-import android.net.NetworkStatsHistory;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.View;
-
-import com.android.internal.util.Preconditions;
-import com.android.settings.R;
-
-/**
- * {@link NetworkStatsHistory} series to render inside a {@link ChartView},
- * using {@link ChartAxis} to map into screen coordinates.
- */
-public class ChartNetworkSeriesView extends View {
- private static final String TAG = "ChartNetworkSeriesView";
- private static final boolean LOGD = false;
-
- private static final boolean ESTIMATE_ENABLED = false;
-
- private ChartAxis mHoriz;
- private ChartAxis mVert;
-
- private Paint mPaintStroke;
- private Paint mPaintFill;
- private Paint mPaintFillSecondary;
- private Paint mPaintEstimate;
-
- private NetworkStatsHistory mStats;
-
- private Path mPathStroke;
- private Path mPathFill;
- private Path mPathEstimate;
-
- private int mSafeRegion;
-
- private long mStart;
- private long mEnd;
-
- /** Series will be extended to reach this end time. */
- private long mEndTime = Long.MIN_VALUE;
-
- private boolean mPathValid = false;
- private boolean mEstimateVisible = false;
- private boolean mSecondary = false;
-
- private long mMax;
- private long mMaxEstimate;
-
- public ChartNetworkSeriesView(Context context) {
- this(context, null, 0);
- }
-
- public ChartNetworkSeriesView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- public ChartNetworkSeriesView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
-
- final TypedArray a = context.obtainStyledAttributes(
- attrs, R.styleable.ChartNetworkSeriesView, defStyle, 0);
-
- final int stroke = a.getColor(R.styleable.ChartNetworkSeriesView_strokeColor, Color.RED);
- final int fill = a.getColor(R.styleable.ChartNetworkSeriesView_fillColor, Color.RED);
- final int fillSecondary = a.getColor(
- R.styleable.ChartNetworkSeriesView_fillColorSecondary, Color.RED);
- final int safeRegion = a.getDimensionPixelSize(
- R.styleable.ChartNetworkSeriesView_safeRegion, 0);
-
- setChartColor(stroke, fill, fillSecondary);
- setSafeRegion(safeRegion);
- setWillNotDraw(false);
-
- a.recycle();
-
- mPathStroke = new Path();
- mPathFill = new Path();
- mPathEstimate = new Path();
- }
-
- void init(ChartAxis horiz, ChartAxis vert) {
- mHoriz = Preconditions.checkNotNull(horiz, "missing horiz");
- mVert = Preconditions.checkNotNull(vert, "missing vert");
- }
-
- public void setChartColor(int stroke, int fill, int fillSecondary) {
- mPaintStroke = new Paint();
- mPaintStroke.setStrokeWidth(4.0f * getResources().getDisplayMetrics().density);
- mPaintStroke.setColor(stroke);
- mPaintStroke.setStyle(Style.STROKE);
- mPaintStroke.setAntiAlias(true);
-
- mPaintFill = new Paint();
- mPaintFill.setColor(fill);
- mPaintFill.setStyle(Style.FILL);
- mPaintFill.setAntiAlias(true);
-
- mPaintFillSecondary = new Paint();
- mPaintFillSecondary.setColor(fillSecondary);
- mPaintFillSecondary.setStyle(Style.FILL);
- mPaintFillSecondary.setAntiAlias(true);
-
- mPaintEstimate = new Paint();
- mPaintEstimate.setStrokeWidth(3.0f);
- mPaintEstimate.setColor(fillSecondary);
- mPaintEstimate.setStyle(Style.STROKE);
- mPaintEstimate.setAntiAlias(true);
- mPaintEstimate.setPathEffect(new DashPathEffect(new float[] { 10, 10 }, 1));
- }
-
- public void setSafeRegion(int safeRegion) {
- mSafeRegion = safeRegion;
- }
-
- public void bindNetworkStats(NetworkStatsHistory stats) {
- mStats = stats;
- invalidatePath();
- invalidate();
- }
-
- public void setBounds(long start, long end) {
- mStart = start;
- mEnd = end;
- }
-
- public void setSecondary(boolean secondary) {
- mSecondary = secondary;
- }
-
- public void invalidatePath() {
- mPathValid = false;
- mMax = 0;
- invalidate();
- }
-
- /**
- * Erase any existing {@link Path} and generate series outline based on
- * currently bound {@link NetworkStatsHistory} data.
- */
- private void generatePath() {
- if (LOGD) Log.d(TAG, "generatePath()");
-
- mMax = 0;
- mPathStroke.reset();
- mPathFill.reset();
- mPathEstimate.reset();
- mPathValid = true;
-
- // bail when not enough stats to render
- if (mStats == null || mStats.size() < 2) {
- return;
- }
-
- final int width = getWidth();
- final int height = getHeight();
-
- boolean started = false;
- float lastX = 0;
- float lastY = height;
- long lastTime = mHoriz.convertToValue(lastX);
-
- // move into starting position
- mPathStroke.moveTo(lastX, lastY);
- mPathFill.moveTo(lastX, lastY);
-
- // TODO: count fractional data from first bucket crossing start;
- // currently it only accepts first full bucket.
-
- long totalData = 0;
-
- NetworkStatsHistory.Entry entry = null;
-
- final int start = mStats.getIndexBefore(mStart);
- final int end = mStats.getIndexAfter(mEnd);
- for (int i = start; i <= end; i++) {
- entry = mStats.getValues(i, entry);
-
- final long startTime = entry.bucketStart;
- final long endTime = startTime + entry.bucketDuration;
-
- final float startX = mHoriz.convertToPoint(startTime);
- final float endX = mHoriz.convertToPoint(endTime);
-
- // skip until we find first stats on screen
- if (endX < 0) continue;
-
- // increment by current bucket total
- totalData += entry.rxBytes + entry.txBytes;
-
- final float startY = lastY;
- final float endY = mVert.convertToPoint(totalData);
-
- if (lastTime != startTime) {
- // gap in buckets; line to start of current bucket
- mPathStroke.lineTo(startX, startY);
- mPathFill.lineTo(startX, startY);
- }
-
- // always draw to end of current bucket
- mPathStroke.lineTo(endX, endY);
- mPathFill.lineTo(endX, endY);
-
- lastX = endX;
- lastY = endY;
- lastTime = endTime;
- }
-
- // when data falls short, extend to requested end time
- if (lastTime < mEndTime) {
- lastX = mHoriz.convertToPoint(mEndTime);
-
- mPathStroke.lineTo(lastX, lastY);
- mPathFill.lineTo(lastX, lastY);
- }
-
- if (LOGD) {
- final RectF bounds = new RectF();
- mPathFill.computeBounds(bounds, true);
- Log.d(TAG, "onLayout() rendered with bounds=" + bounds.toString() + " and totalData="
- + totalData);
- }
-
- // drop to bottom of graph from current location
- mPathFill.lineTo(lastX, height);
- mPathFill.lineTo(0, height);
-
- mMax = totalData;
-
- if (ESTIMATE_ENABLED) {
- // build estimated data
- mPathEstimate.moveTo(lastX, lastY);
-
- final long now = System.currentTimeMillis();
- final long bucketDuration = mStats.getBucketDuration();
-
- // long window is average over two weeks
- entry = mStats.getValues(lastTime - WEEK_IN_MILLIS * 2, lastTime, now, entry);
- final long longWindow = (entry.rxBytes + entry.txBytes) * bucketDuration
- / entry.bucketDuration;
-
- long futureTime = 0;
- while (lastX < width) {
- futureTime += bucketDuration;
-
- // short window is day average last week
- final long lastWeekTime = lastTime - WEEK_IN_MILLIS + (futureTime % WEEK_IN_MILLIS);
- entry = mStats.getValues(lastWeekTime - DAY_IN_MILLIS, lastWeekTime, now, entry);
- final long shortWindow = (entry.rxBytes + entry.txBytes) * bucketDuration
- / entry.bucketDuration;
-
- totalData += (longWindow * 7 + shortWindow * 3) / 10;
-
- lastX = mHoriz.convertToPoint(lastTime + futureTime);
- lastY = mVert.convertToPoint(totalData);
-
- mPathEstimate.lineTo(lastX, lastY);
- }
-
- mMaxEstimate = totalData;
- }
-
- invalidate();
- }
-
- public void setEndTime(long endTime) {
- mEndTime = endTime;
- }
-
- public void setEstimateVisible(boolean estimateVisible) {
- mEstimateVisible = ESTIMATE_ENABLED ? estimateVisible : false;
- invalidate();
- }
-
- public long getMaxEstimate() {
- return mMaxEstimate;
- }
-
- public long getMaxVisible() {
- final long maxVisible = mEstimateVisible ? mMaxEstimate : mMax;
- if (maxVisible <= 0 && mStats != null) {
- // haven't generated path yet; fall back to raw data
- final NetworkStatsHistory.Entry entry = mStats.getValues(mStart, mEnd, null);
- return entry.rxBytes + entry.txBytes;
- } else {
- return maxVisible;
- }
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- int save;
-
- if (!mPathValid) {
- generatePath();
- }
-
- if (mEstimateVisible) {
- save = canvas.save();
- canvas.clipRect(0, 0, getWidth(), getHeight());
- canvas.drawPath(mPathEstimate, mPaintEstimate);
- canvas.restoreToCount(save);
- }
-
- final Paint paintFill = mSecondary ? mPaintFillSecondary : mPaintFill;
-
- save = canvas.save();
- canvas.clipRect(mSafeRegion, 0, getWidth(), getHeight() - mSafeRegion);
- canvas.drawPath(mPathFill, paintFill);
- canvas.restoreToCount(save);
- }
-}
diff --git a/src/com/android/settings/widget/ChartView.java b/src/com/android/settings/widget/ChartView.java
index 30284bc..768a717 100644
--- a/src/com/android/settings/widget/ChartView.java
+++ b/src/com/android/settings/widget/ChartView.java
@@ -30,8 +30,8 @@
/**
* Container for two-dimensional chart, drawn with a combination of
- * {@link ChartGridView}, {@link ChartNetworkSeriesView} and {@link ChartSweepView}
- * children. The entire chart uses {@link ChartAxis} to map between raw values
+ * {@link ChartGridView} and {@link ChartSweepView} children. The entire chart uses
+ * {@link ChartAxis} to map between raw values
* and screen coordinates.
*/
public class ChartView extends FrameLayout {
@@ -112,13 +112,7 @@
parentRect.set(mContent);
- if (child instanceof ChartNetworkSeriesView) {
- // series are always laid out to fill entire graph area
- // TODO: handle scrolling for series larger than content area
- Gravity.apply(params.gravity, width, height, parentRect, childRect);
- child.layout(childRect.left, childRect.top, childRect.right, childRect.bottom);
-
- } else if (child instanceof ChartGridView) {
+ if (child instanceof ChartGridView) {
// Grid uses some extra room for labels
Gravity.apply(params.gravity, width, height, parentRect, childRect);
child.layout(childRect.left, childRect.top, childRect.right,
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 2e6611f..d6c1931 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -123,7 +123,8 @@
private final ArrayAdapter<String> mPhase2FullAdapter;
// e.g. AccessPoint.SECURITY_NONE
- private int mAccessPointSecurity;
+ @VisibleForTesting
+ int mAccessPointSecurity;
private TextView mPasswordView;
private String mUnspecifiedCertString;
@@ -465,7 +466,8 @@
} else {
enabled = ipAndProxyFieldsAreValid();
}
- if (mAccessPointSecurity == AccessPoint.SECURITY_EAP) {
+ if (mAccessPointSecurity == AccessPoint.SECURITY_EAP && mEapCaCertSpinner != null
+ && mView.findViewById(R.id.l_ca_cert).getVisibility() != View.GONE) {
String caCertSelection = (String) mEapCaCertSpinner.getSelectedItem();
if (caCertSelection.equals(mUnspecifiedCertString)) {
// Disallow submit if the user has not selected a CA certificate for an EAP network
@@ -481,7 +483,8 @@
enabled = false;
}
}
- if (mAccessPointSecurity == AccessPoint.SECURITY_EAP
+ if (mAccessPointSecurity == AccessPoint.SECURITY_EAP && mEapUserCertSpinner != null
+ && mView.findViewById(R.id.l_user_cert).getVisibility() != View.GONE
&& mEapUserCertSpinner.getSelectedItem().equals(mUnspecifiedCertString)) {
// Disallow submit if the user has not selected a user certificate for an EAP network
// configuration.
diff --git a/tests/robotests/assets/grandfather_not_implementing_index_provider b/tests/robotests/assets/grandfather_not_implementing_index_provider
index 1ed50c9..38108f7 100644
--- a/tests/robotests/assets/grandfather_not_implementing_index_provider
+++ b/tests/robotests/assets/grandfather_not_implementing_index_provider
@@ -28,6 +28,7 @@
com.android.settings.bluetooth.BluetoothPairingDetail
com.android.settings.bluetooth.DevicePickerFragment
com.android.settings.datausage.AppDataUsage
+com.android.settings.datausage.AppDataUsageV2
com.android.settings.datausage.DataUsageList
com.android.settings.datausage.DataUsageListV2
com.android.settings.datetime.timezone.TimeZoneSettings
diff --git a/tests/robotests/res/xml-mcc998/location_settings.xml b/tests/robotests/res/xml-mcc998/location_settings.xml
index f61ca63..16f0d82 100644
--- a/tests/robotests/res/xml-mcc998/location_settings.xml
+++ b/tests/robotests/res/xml-mcc998/location_settings.xml
@@ -25,13 +25,15 @@
android:title="title"
android:icon="@drawable/ic_android"
android:summary="summary1"
- settings:controller="com.android.settings.core.BadPreferenceController"/>
+ settings:controller="com.android.settings.core.BadPreferenceController"
+ settings:allowDynamicSummaryInSlice="true"/>
<Preference
android:key="key2"
android:title="title"
android:icon="@drawable/ic_android"
android:summary="summary2"
- settings:controller="com.android.settings.slices.FakePreferenceController"/>
+ settings:controller="com.android.settings.slices.FakePreferenceController"
+ settings:allowDynamicSummaryInSlice="true"/>
</PreferenceScreen>
\ No newline at end of file
diff --git a/tests/robotests/res/xml-mcc999/location_settings.xml b/tests/robotests/res/xml-mcc999/location_settings.xml
index da71a1e..91e4c41 100644
--- a/tests/robotests/res/xml-mcc999/location_settings.xml
+++ b/tests/robotests/res/xml-mcc999/location_settings.xml
@@ -26,6 +26,7 @@
android:summary="summary"
settings:controller="com.android.settings.slices.FakePreferenceController"
settings:keywords="a, b, c"
- settings:platform_slice="true"/>
+ settings:platform_slice="true"
+ settings:allowDynamicSummaryInSlice="true"/>
</PreferenceScreen>
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/MasterClearTest.java b/tests/robotests/src/com/android/settings/MasterClearTest.java
index b1cd714..174f5ab 100644
--- a/tests/robotests/src/com/android/settings/MasterClearTest.java
+++ b/tests/robotests/src/com/android/settings/MasterClearTest.java
@@ -18,7 +18,6 @@
import static com.google.common.truth.Truth.assertThat;
-import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
@@ -51,7 +50,6 @@
import androidx.fragment.app.FragmentActivity;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowUtils;
@@ -61,6 +59,7 @@
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
@@ -123,8 +122,8 @@
verify(context).startActivity(intent.capture());
assertThat(intent.getValue().getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
- .getBoolean(MasterClear.ERASE_ESIMS_EXTRA, false))
- .isTrue();
+ .getBoolean(MasterClear.ERASE_ESIMS_EXTRA, false))
+ .isTrue();
}
@Test
@@ -140,8 +139,8 @@
verify(context).startActivity(intent.capture());
assertThat(intent.getValue().getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS)
- .getBoolean(MasterClear.ERASE_ESIMS_EXTRA, false))
- .isFalse();
+ .getBoolean(MasterClear.ERASE_ESIMS_EXTRA, false))
+ .isFalse();
}
@Test
@@ -211,11 +210,10 @@
ShadowUtils.setIsDemoUser(true);
final ComponentName componentName =
- ComponentName.unflattenFromString("com.android.retaildemo/.DeviceAdminReceiver");
+ ComponentName.unflattenFromString("com.android.retaildemo/.DeviceAdminReceiver");
ShadowUtils.setDeviceOwnerComponent(componentName);
- mMasterClear.mInitiateListener
- .onClick(mContentView.findViewById(R.id.initiate_master_clear));
+ mMasterClear.mInitiateListener.onClick(mContentView);
final Intent intent = mShadowActivity.getNextStartedActivity();
assertThat(Intent.ACTION_FACTORY_RESET).isEqualTo(intent.getAction());
assertThat(componentName).isNotNull();
@@ -241,7 +239,8 @@
doNothing().when(mMasterClear).establishInitialState();
mMasterClear
- .onActivityResultInternal(MasterClear.KEYGUARD_REQUEST, Activity.RESULT_CANCELED, null);
+ .onActivityResultInternal(MasterClear.KEYGUARD_REQUEST, Activity.RESULT_CANCELED,
+ null);
verify(mMasterClear, times(1)).isValidRequestCode(eq(MasterClear.KEYGUARD_REQUEST));
verify(mMasterClear, times(1)).establishInitialState();
@@ -256,7 +255,7 @@
doNothing().when(mMasterClear).showAccountCredentialConfirmation(eq(mMockIntent));
mMasterClear
- .onActivityResultInternal(MasterClear.KEYGUARD_REQUEST, Activity.RESULT_OK, null);
+ .onActivityResultInternal(MasterClear.KEYGUARD_REQUEST, Activity.RESULT_OK, null);
verify(mMasterClear, times(1)).isValidRequestCode(eq(MasterClear.KEYGUARD_REQUEST));
verify(mMasterClear, times(0)).establishInitialState();
@@ -271,7 +270,7 @@
doNothing().when(mMasterClear).showFinalConfirmation();
mMasterClear
- .onActivityResultInternal(MasterClear.KEYGUARD_REQUEST, Activity.RESULT_OK, null);
+ .onActivityResultInternal(MasterClear.KEYGUARD_REQUEST, Activity.RESULT_OK, null);
verify(mMasterClear, times(1)).isValidRequestCode(eq(MasterClear.KEYGUARD_REQUEST));
verify(mMasterClear, times(0)).establishInitialState();
@@ -282,14 +281,14 @@
@Test
public void testOnActivityResultInternal_confirmRequestTriggeringShowFinal() {
doReturn(true).when(mMasterClear)
- .isValidRequestCode(eq(MasterClear.CREDENTIAL_CONFIRM_REQUEST));
+ .isValidRequestCode(eq(MasterClear.CREDENTIAL_CONFIRM_REQUEST));
doNothing().when(mMasterClear).showFinalConfirmation();
mMasterClear.onActivityResultInternal(
- MasterClear.CREDENTIAL_CONFIRM_REQUEST, Activity.RESULT_OK, null);
+ MasterClear.CREDENTIAL_CONFIRM_REQUEST, Activity.RESULT_OK, null);
verify(mMasterClear, times(1))
- .isValidRequestCode(eq(MasterClear.CREDENTIAL_CONFIRM_REQUEST));
+ .isValidRequestCode(eq(MasterClear.CREDENTIAL_CONFIRM_REQUEST));
verify(mMasterClear, times(0)).establishInitialState();
verify(mMasterClear, times(0)).getAccountConfirmationIntent();
verify(mMasterClear, times(1)).showFinalConfirmation();
@@ -307,9 +306,9 @@
when(mMasterClear.getActivity()).thenReturn(mMockActivity);
when(mMockActivity.getString(R.string.account_type)).thenReturn(TEST_ACCOUNT_TYPE);
when(mMockActivity.getString(R.string.account_confirmation_package))
- .thenReturn(TEST_CONFIRMATION_PACKAGE);
+ .thenReturn(TEST_CONFIRMATION_PACKAGE);
when(mMockActivity.getString(R.string.account_confirmation_class))
- .thenReturn(TEST_CONFIRMATION_CLASS);
+ .thenReturn(TEST_CONFIRMATION_CLASS);
Account[] accounts = new Account[0];
when(mMockActivity.getSystemService(Context.ACCOUNT_SERVICE)).thenReturn(mAccountManager);
@@ -322,10 +321,10 @@
when(mMasterClear.getActivity()).thenReturn(mMockActivity);
when(mMockActivity.getString(R.string.account_type)).thenReturn(TEST_ACCOUNT_TYPE);
when(mMockActivity.getString(R.string.account_confirmation_package))
- .thenReturn(TEST_CONFIRMATION_PACKAGE);
+ .thenReturn(TEST_CONFIRMATION_PACKAGE);
when(mMockActivity.getString(R.string.account_confirmation_class))
- .thenReturn(TEST_CONFIRMATION_CLASS);
- Account[] accounts = new Account[] { new Account(TEST_ACCOUNT_NAME, TEST_ACCOUNT_TYPE) };
+ .thenReturn(TEST_CONFIRMATION_CLASS);
+ Account[] accounts = new Account[]{new Account(TEST_ACCOUNT_NAME, TEST_ACCOUNT_TYPE)};
when(mMockActivity.getSystemService(Context.ACCOUNT_SERVICE)).thenReturn(mAccountManager);
when(mAccountManager.getAccountsByType(TEST_ACCOUNT_TYPE)).thenReturn(accounts);
// The package manager should not resolve the confirmation intent targeting the non-existent
@@ -340,11 +339,11 @@
// Only try to show account confirmation if the appropriate resource overlays are available.
when(mMockActivity.getString(R.string.account_type)).thenReturn(TEST_ACCOUNT_TYPE);
when(mMockActivity.getString(R.string.account_confirmation_package))
- .thenReturn(TEST_CONFIRMATION_PACKAGE);
+ .thenReturn(TEST_CONFIRMATION_PACKAGE);
when(mMockActivity.getString(R.string.account_confirmation_class))
- .thenReturn(TEST_CONFIRMATION_CLASS);
+ .thenReturn(TEST_CONFIRMATION_CLASS);
// Add accounts to trigger the search for a resolving intent.
- Account[] accounts = new Account[] { new Account(TEST_ACCOUNT_NAME, TEST_ACCOUNT_TYPE) };
+ Account[] accounts = new Account[]{new Account(TEST_ACCOUNT_NAME, TEST_ACCOUNT_TYPE)};
when(mMockActivity.getSystemService(Context.ACCOUNT_SERVICE)).thenReturn(mAccountManager);
when(mAccountManager.getAccountsByType(TEST_ACCOUNT_TYPE)).thenReturn(accounts);
// The package manager should not resolve the confirmation intent targeting the non-existent
@@ -358,25 +357,28 @@
when(mPackageManager.resolveActivity(any(), eq(0))).thenReturn(resolveInfo);
Intent actualIntent = mMasterClear.getAccountConfirmationIntent();
- assertEquals(TEST_CONFIRMATION_PACKAGE, actualIntent.getComponent().getPackageName());
- assertEquals(TEST_CONFIRMATION_CLASS, actualIntent.getComponent().getClassName());
+ assertThat(TEST_CONFIRMATION_PACKAGE).isEqualTo(
+ actualIntent.getComponent().getPackageName());
+ assertThat(TEST_CONFIRMATION_CLASS).isEqualTo(actualIntent.getComponent().getClassName());
}
@Test
public void testShowAccountCredentialConfirmation() {
// Finally mock out the startActivityForResultCall
doNothing().when(mMasterClear)
- .startActivityForResult(eq(mMockIntent), eq(MasterClear.CREDENTIAL_CONFIRM_REQUEST));
+ .startActivityForResult(eq(mMockIntent),
+ eq(MasterClear.CREDENTIAL_CONFIRM_REQUEST));
mMasterClear.showAccountCredentialConfirmation(mMockIntent);
verify(mMasterClear, times(1))
- .startActivityForResult(eq(mMockIntent), eq(MasterClear.CREDENTIAL_CONFIRM_REQUEST));
+ .startActivityForResult(eq(mMockIntent),
+ eq(MasterClear.CREDENTIAL_CONFIRM_REQUEST));
}
@Test
public void testIsValidRequestCode() {
assertThat(mMasterClear.isValidRequestCode(MasterClear.KEYGUARD_REQUEST)).isTrue();
assertThat(mMasterClear.isValidRequestCode(MasterClear.CREDENTIAL_CONFIRM_REQUEST))
- .isTrue();
+ .isTrue();
assertThat(mMasterClear.isValidRequestCode(0)).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index 8fc17ce..bfc176f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -26,16 +26,17 @@
import android.view.ViewGroup;
import androidx.annotation.XmlRes;
+import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.widget.SwitchBar;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
@@ -46,7 +47,8 @@
@Test
public void createFragment_shouldOnlyAddPreferencesOnce() {
mFragment = spy(new ToggleFeaturePreferenceFragmentTestable());
- FragmentTestUtils.startFragment(mFragment);
+ FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId*/,
+ null /* bundle */);
// execute exactly once
verify(mFragment).addPreferencesFromResource(R.xml.placeholder_prefs);
diff --git a/tests/robotests/src/com/android/settings/applications/SpecialAppAccessPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/SpecialAppAccessPreferenceControllerTest.java
index b642915..694625e 100644
--- a/tests/robotests/src/com/android/settings/applications/SpecialAppAccessPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/SpecialAppAccessPreferenceControllerTest.java
@@ -94,4 +94,22 @@
.isEqualTo(mContext.getResources().getQuantityString(
R.plurals.special_access_summary, 1, 1));
}
+
+ @Test
+ public void updateState_wrongExtraInfo_shouldNotIncludeInSummary() {
+ final ArrayList<ApplicationsState.AppEntry> apps = new ArrayList<>();
+ final ApplicationsState.AppEntry entry = mock(ApplicationsState.AppEntry.class);
+ entry.hasLauncherEntry = true;
+ entry.info = new ApplicationInfo();
+ entry.extraInfo = new AppStateNotificationBridge.NotificationsSentState();
+ apps.add(entry);
+ when(mSession.getAllApps()).thenReturn(apps);
+
+ mController.displayPreference(mScreen);
+ mController.onExtraInfoUpdated();
+
+ assertThat(mPreference.getSummary())
+ .isEqualTo(mContext.getResources().getQuantityString(
+ R.plurals.special_access_summary, 0, 0));
+ }
}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerTest.java
index 74966a2..e77106d 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerTest.java
@@ -115,6 +115,7 @@
@Test
public void onPause_shouldDestroyDataLoader() {
+ ReflectionHelpers.setField(mController, "mStatsSession", mock(INetworkStatsSession.class));
doReturn(mLoaderManager).when(mFragment).getLoaderManager();
mController.onPause();
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2Test.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2Test.java
new file mode 100644
index 0000000..5e9179f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceControllerV2Test.java
@@ -0,0 +1,144 @@
+/*
+ * 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.applications.appinfo;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.nullable;
+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.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.net.ConnectivityManager;
+import android.os.Bundle;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.FeatureFlags;
+import com.android.settings.datausage.AppDataUsageV2;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.applications.ApplicationsState.AppEntry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;import android.net.INetworkStatsSession;
+import android.util.FeatureFlagUtils;
+
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.util.ReflectionHelpers;
+
+import androidx.loader.app.LoaderManager;
+import androidx.preference.Preference;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class AppDataUsagePreferenceControllerV2Test {
+
+ @Mock
+ private LoaderManager mLoaderManager;
+ @Mock
+ private AppInfoDashboardFragment mFragment;
+
+ private Context mContext;
+ private AppDataUsagePreferenceControllerV2 mController;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application.getApplicationContext());
+ mController = spy(new AppDataUsagePreferenceControllerV2(mContext, "test_key"));
+ mController.setParentFragment(mFragment);
+ FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DATA_USAGE_V2, true);
+ }
+
+ @Test
+ public void getAvailabilityStatus_bandwidthControlEnabled_shouldReturnAvailable() {
+ doReturn(true).when(mController).isBandwidthControlEnabled();
+
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.AVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_bandwidthControlDisabled_shouldReturnDisabled() {
+ doReturn(false).when(mController).isBandwidthControlEnabled();
+
+ assertThat(mController.getAvailabilityStatus())
+ .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void onResume_notAvailable_shouldNotRestartDataLoader() {
+ FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DATA_USAGE_V2, false);
+ doReturn(mLoaderManager).when(mFragment).getLoaderManager();
+
+ mController.onResume();
+
+ verify(mLoaderManager, never()).restartLoader(
+ AppInfoDashboardFragment.LOADER_CHART_DATA, Bundle.EMPTY, mController);
+ }
+
+ @Test
+ public void onResume_isAvailable_shouldRestartDataLoader() {
+ final ConnectivityManager connectivityManager = mock(ConnectivityManager.class);
+ when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
+ .thenReturn(connectivityManager);
+ when(connectivityManager.isNetworkSupported(anyInt())).thenReturn(true);
+ doReturn(mLoaderManager).when(mFragment).getLoaderManager();
+ doReturn(BasePreferenceController.AVAILABLE).when(mController).getAvailabilityStatus();
+ final AppEntry appEntry = mock(AppEntry.class);
+ appEntry.info = new ApplicationInfo();
+ when(mFragment.getAppEntry()).thenReturn(appEntry);
+
+ mController.onResume();
+
+ verify(mLoaderManager).restartLoader(eq(AppInfoDashboardFragment.LOADER_CHART_DATA),
+ nullable(Bundle.class), eq(mController));
+ }
+
+ @Test
+ public void onPause_shouldDestroyDataLoader() {
+ doReturn(BasePreferenceController.AVAILABLE).when(mController).getAvailabilityStatus();
+ doReturn(mLoaderManager).when(mFragment).getLoaderManager();
+
+ mController.onPause();
+
+ verify(mLoaderManager).destroyLoader(AppInfoDashboardFragment.LOADER_CHART_DATA);
+ }
+
+ @Test
+ public void getDetailFragmentClass_shouldReturnAppDataUsage() {
+ assertThat(mController.getDetailFragmentClass()).isEqualTo(AppDataUsageV2.class);
+ }
+
+ @Test
+ public void updateState_shouldUpdatePreferenceSummary() {
+ final Preference preference = mock(Preference.class);
+
+ mController.updateState(preference);
+
+ verify(preference).setSummary(any());
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/ButtonActionDialogFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/ButtonActionDialogFragmentTest.java
index abce50a..e9ff8fb 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/ButtonActionDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/ButtonActionDialogFragmentTest.java
@@ -27,12 +27,12 @@
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Before;
import org.junit.Test;
@@ -41,6 +41,7 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {ShadowAlertDialogCompat.class, SettingsShadowResourcesImpl.class})
@@ -75,7 +76,8 @@
@Test
public void testOnCreateDialog_forceStopDialog() {
ButtonActionDialogFragment fragment = ButtonActionDialogFragment.newInstance(FORCE_STOP_ID);
- FragmentTestUtils.startFragment(fragment);
+ FragmentController.setupFragment(fragment, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNotNull();
@@ -95,7 +97,8 @@
@Test
public void testOnCreateDialog_disableDialog() {
ButtonActionDialogFragment fragment = ButtonActionDialogFragment.newInstance(DISABLE_ID);
- FragmentTestUtils.startFragment(fragment);
+ FragmentController.setupFragment(fragment, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNotNull();
@@ -114,7 +117,8 @@
public void testOnCreateDialog_specialDisableDialog() {
ButtonActionDialogFragment fragment =
ButtonActionDialogFragment.newInstance(SPECIAL_DISABLE_ID);
- FragmentTestUtils.startFragment(fragment);
+ FragmentController.setupFragment(fragment, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNotNull();
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
index d636fa4..e625eee 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/ExternalSourcesDetailsTest.java
@@ -17,29 +17,36 @@
package com.android.settings.applications.appinfo;
import static com.google.common.truth.Truth.assertThat;
-
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.nullable;
+import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
+import android.content.Context;
+import android.content.ContextWrapper;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageInfo;
+import android.os.UserHandle;
import android.os.UserManager;
-
import com.android.settings.applications.AppStateInstallAppsBridge;
import com.android.settings.applications.AppStateInstallAppsBridge.InstallAppsState;
+import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.RestrictedPreferenceHelper;
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.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadow.api.Shadow;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class})
public class ExternalSourcesDetailsTest {
@Mock
@@ -47,6 +54,8 @@
@Mock
private RestrictedSwitchPreference mSwitchPref;
@Mock
+ private RestrictedPreferenceHelper mHelper;
+ @Mock
private PackageInfo mPackageInfo;
private ExternalSourcesDetails mFragment;
@@ -90,5 +99,128 @@
mFragment.refreshUi();
assertThat(mFragment.refreshUi()).isTrue();
+ assertThat(mSwitchPref.isDisabledByAdmin()).isFalse();
+ }
+
+ @Test
+ public void refreshUi_userRestrictionsUnknownSources_disablesSwitchPreference() {
+ // Mocks set up
+ final ExternalSourcesDetails fragment = new ExternalSourcesDetails();
+ final ContextWrapper context = RuntimeEnvironment.application;
+ final UserManager userManager = (UserManager) context.getSystemService(
+ Context.USER_SERVICE);
+ final ShadowUserManager shadowUserManager = Shadow.extract(userManager);
+
+ ReflectionHelpers.setField(fragment, "mSwitchPref", mSwitchPref);
+ ReflectionHelpers.setField(fragment, "mPackageInfo", mPackageInfo);
+ mPackageInfo.applicationInfo = new ApplicationInfo();
+ ReflectionHelpers.setField(fragment, "mUserManager", userManager);
+ ReflectionHelpers.setField(mSwitchPref, "mHelper", mHelper);
+
+ final AppStateInstallAppsBridge appBridge = mock(AppStateInstallAppsBridge.class);
+ ReflectionHelpers.setField(fragment, "mAppBridge", appBridge);
+ when(appBridge.createInstallAppsStateFor(nullable(String.class), anyInt()))
+ .thenReturn(mock(InstallAppsState.class));
+
+ // Test restriction set up
+ shadowUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES, true);
+ doAnswer((answer) -> {
+ when(mSwitchPref.isDisabledByAdmin()).thenReturn(true);
+ return null;
+ }).when(mSwitchPref).checkRestrictionAndSetDisabled(
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES);
+
+ // Code execution
+ assertThat(fragment.refreshUi()).isTrue();
+
+ // Assertions
+ assertThat(shadowUserManager.hasUserRestriction(
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
+ UserHandle.of(UserHandle.myUserId()))).isTrue();
+ assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
+ }
+
+ @Test
+ public void refreshUi_userRestrictionsUnknownSourcesGlobally_disablesSwitchPreference() {
+ // Mocks set up
+ final ExternalSourcesDetails fragment = new ExternalSourcesDetails();
+ final ContextWrapper context = RuntimeEnvironment.application;
+ final UserManager userManager = (UserManager) context.getSystemService(
+ Context.USER_SERVICE);
+ final ShadowUserManager shadowUserManager = Shadow.extract(userManager);
+
+ ReflectionHelpers.setField(fragment, "mSwitchPref", mSwitchPref);
+ ReflectionHelpers.setField(fragment, "mPackageInfo", mPackageInfo);
+ mPackageInfo.applicationInfo = new ApplicationInfo();
+ ReflectionHelpers.setField(fragment, "mUserManager", userManager);
+ ReflectionHelpers.setField(mSwitchPref, "mHelper", mHelper);
+
+ final AppStateInstallAppsBridge appBridge = mock(AppStateInstallAppsBridge.class);
+ ReflectionHelpers.setField(fragment, "mAppBridge", appBridge);
+ when(appBridge.createInstallAppsStateFor(nullable(String.class), anyInt()))
+ .thenReturn(mock(InstallAppsState.class));
+
+ // Test restriction set up
+ shadowUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY, true);
+ doAnswer((answer) -> {
+ when(mSwitchPref.isDisabledByAdmin()).thenReturn(true);
+ return null;
+ }).when(mSwitchPref).checkRestrictionAndSetDisabled(
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY);
+
+ // Code execution
+ assertThat(fragment.refreshUi()).isTrue();
+
+ // Assertions
+ assertThat(shadowUserManager.hasUserRestriction(
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
+ UserHandle.of(UserHandle.myUserId()))).isTrue();
+ assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
+ }
+
+ @Test
+ public void refreshUi_bothUnknownSourcesUserRestrictions_disableSwitchPreference() {
+ // Mocks set up
+ final ExternalSourcesDetails fragment = new ExternalSourcesDetails();
+ final ContextWrapper context = RuntimeEnvironment.application;
+ final UserManager userManager = (UserManager) context.getSystemService(
+ Context.USER_SERVICE);
+ final ShadowUserManager shadowUserManager = Shadow.extract(userManager);
+
+ ReflectionHelpers.setField(fragment, "mSwitchPref", mSwitchPref);
+ ReflectionHelpers.setField(fragment, "mPackageInfo", mPackageInfo);
+ mPackageInfo.applicationInfo = new ApplicationInfo();
+ ReflectionHelpers.setField(fragment, "mUserManager", userManager);
+ ReflectionHelpers.setField(mSwitchPref, "mHelper", mHelper);
+
+ final AppStateInstallAppsBridge appBridge = mock(AppStateInstallAppsBridge.class);
+ ReflectionHelpers.setField(fragment, "mAppBridge", appBridge);
+ when(appBridge.createInstallAppsStateFor(nullable(String.class), anyInt()))
+ .thenReturn(mock(InstallAppsState.class));
+
+ // Test restriction set up
+ shadowUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY, true);
+ shadowUserManager.setUserRestriction(UserHandle.of(UserHandle.myUserId()),
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES, true);
+ doAnswer((answer) -> {
+ when(mSwitchPref.isDisabledByAdmin()).thenReturn(true);
+ return null;
+ }).when(mSwitchPref).checkRestrictionAndSetDisabled(
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY);
+
+ // Code execution
+ assertThat(fragment.refreshUi()).isTrue();
+
+ // Assertions
+ assertThat(shadowUserManager.hasUserRestriction(
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES_GLOBALLY,
+ UserHandle.of(UserHandle.myUserId()))).isTrue();
+ assertThat(shadowUserManager.hasUserRestriction(
+ UserManager.DISALLOW_INSTALL_UNKNOWN_SOURCES,
+ UserHandle.of(UserHandle.myUserId()))).isTrue();
+ assertThat(mSwitchPref.isDisabledByAdmin()).isTrue();
}
}
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/DeleteFingerprintDialogTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/DeleteFingerprintDialogTest.java
index 9479771..1d3d9ea 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/DeleteFingerprintDialogTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/DeleteFingerprintDialogTest.java
@@ -23,12 +23,14 @@
import android.app.Dialog;
import android.hardware.fingerprint.Fingerprint;
+import androidx.fragment.app.FragmentActivity;
+
import com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment;
-import com.android.settings.biometrics.fingerprint.FingerprintSettings.FingerprintSettingsFragment.DeleteFingerprintDialog;
+import com.android.settings.biometrics.fingerprint.FingerprintSettings
+ .FingerprintSettingsFragment.DeleteFingerprintDialog;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowFragment;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Before;
import org.junit.Test;
@@ -36,6 +38,7 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {ShadowFragment.class, SettingsShadowResourcesImpl.class})
@@ -56,7 +59,8 @@
@Test
public void launchDialog_clickPositive_shouldDeleteFingerprint() {
- FragmentTestUtils.startFragment(mFragment);
+ FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
mFragment.onClick(mFragment.getDialog(), Dialog.BUTTON_POSITIVE);
@@ -65,7 +69,8 @@
@Test
public void launchDialog_clickNegative_shouldDoNothing() {
- FragmentTestUtils.startFragment(mFragment);
+ FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
mFragment.onClick(mFragment.getDialog(), Dialog.BUTTON_NEGATIVE);
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
index c85a569..6689518 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroductionTest.java
@@ -30,15 +30,13 @@
import com.android.settings.R;
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricEnrollIntroduction;
-import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroductionTest
- .ShadowStorageManagerWrapper;
import com.android.settings.password.SetupChooseLockGeneric.SetupChooseLockGenericFragment;
import com.android.settings.password.SetupSkipDialog;
-import com.android.settings.password.StorageManagerWrapper;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowFingerprintManager;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowStorageManager;
import com.android.settings.testutils.shadow.ShadowUserManager;
import org.junit.After;
@@ -51,8 +49,6 @@
import org.robolectric.Shadows;
import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
-import org.robolectric.annotation.Implementation;
-import org.robolectric.annotation.Implements;
import org.robolectric.shadows.ShadowActivity;
import org.robolectric.shadows.ShadowActivity.IntentForResult;
import org.robolectric.shadows.ShadowKeyguardManager;
@@ -61,7 +57,7 @@
@Config(shadows = {
ShadowFingerprintManager.class,
ShadowLockPatternUtils.class,
- ShadowStorageManagerWrapper.class,
+ ShadowStorageManager.class,
ShadowUserManager.class
})
public class SetupFingerprintEnrollIntroductionTest {
@@ -89,7 +85,7 @@
@After
public void tearDown() {
- ShadowStorageManagerWrapper.reset();
+ ShadowStorageManager.reset();
ShadowFingerprintManager.reset();
}
@@ -209,7 +205,7 @@
@Test
public void testLockPattern() {
- ShadowStorageManagerWrapper.sIsFileEncrypted = false;
+ ShadowStorageManager.setIsFileEncryptedNativeOrEmulated(false);
mController.create().postCreate(null).resume();
@@ -228,19 +224,4 @@
private ShadowKeyguardManager getShadowKeyguardManager() {
return Shadows.shadowOf(application.getSystemService(KeyguardManager.class));
}
-
- @Implements(StorageManagerWrapper.class)
- public static class ShadowStorageManagerWrapper {
-
- private static boolean sIsFileEncrypted = true;
-
- public static void reset() {
- sIsFileEncrypted = true;
- }
-
- @Implementation
- public static boolean isFileEncryptedNativeOrEmulated() {
- return sIsFileEncrypted;
- }
- }
}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
index 28bf3ab..4ede947 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
@@ -161,7 +161,7 @@
@Test
public void isDeviceConnected_deviceConnected() {
doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
- doReturn(true).when(mBluetoothDevice).isConnected();
+ doReturn(true).when(mCachedBluetoothDevice).isConnected();
assertThat(mBluetoothDeviceUpdater.isDeviceConnected(mCachedBluetoothDevice)).isTrue();
}
@@ -169,7 +169,7 @@
@Test
public void isDeviceConnected_deviceNotConnected() {
doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
- doReturn(false).when(mBluetoothDevice).isConnected();
+ doReturn(false).when(mCachedBluetoothDevice).isConnected();
assertThat(mBluetoothDeviceUpdater.isDeviceConnected(mCachedBluetoothDevice)).isFalse();
}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
index 37cc1e7..7b50e21 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDialogTest.java
@@ -37,12 +37,12 @@
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Before;
import org.junit.Test;
@@ -51,6 +51,7 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {ShadowAlertDialogCompat.class, SettingsShadowResourcesImpl.class})
@@ -190,7 +191,8 @@
BluetoothPairingDialogFragment frag = new BluetoothPairingDialogFragment();
// this should throw an error
- FragmentTestUtils.startFragment(frag);
+ FragmentController.setupFragment(frag, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
fail("Starting the fragment with no controller set should have thrown an exception.");
}
@@ -286,7 +288,7 @@
// verify that the checkbox is visible and that the device name is correct
CheckBox sharingCheckbox =
- frag.getmDialog().findViewById(R.id.phonebook_sharing_message_confirm_pin);
+ frag.getmDialog().findViewById(R.id.phonebook_sharing_message_confirm_pin);
assertThat(sharingCheckbox.getVisibility()).isEqualTo(View.VISIBLE);
}
@@ -304,7 +306,7 @@
// verify that the checkbox is gone
CheckBox sharingCheckbox =
- frag.getmDialog().findViewById(R.id.phonebook_sharing_message_confirm_pin);
+ frag.getmDialog().findViewById(R.id.phonebook_sharing_message_confirm_pin);
assertThat(sharingCheckbox.getVisibility()).isEqualTo(View.GONE);
}
@@ -450,7 +452,8 @@
frag.setPairingController(controller);
assertThat(frag.isPairingDialogActivitySet()).isFalse();
frag.setPairingDialogActivity(dialogActivity);
- FragmentTestUtils.startFragment(frag);
+ FragmentController.setupFragment(frag, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
assertThat(frag.getmDialog()).isNotNull();
assertThat(frag.isPairingControllerSet()).isTrue();
assertThat(frag.isPairingDialogActivitySet()).isTrue();
diff --git a/tests/robotests/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragmentTest.java
index d9867cf..b455fa2 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragmentTest.java
@@ -28,13 +28,13 @@
import android.view.inputmethod.InputMethodManager;
import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.After;
import org.junit.Before;
@@ -44,6 +44,7 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -73,7 +74,8 @@
@Test
public void diaglogTriggersShowSoftInput() {
- FragmentTestUtils.startFragment(mFragment);
+ FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
assertThat(dialog).isNotNull();
View view = dialog.findViewById(R.id.edittext);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragmentTest.java
index df3ffbb..31dec3f 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragmentTest.java
@@ -31,6 +31,7 @@
import android.widget.EditText;
import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.testutils.FakeFeatureFactory;
@@ -38,7 +39,6 @@
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowDynamicLayout;
import com.android.settingslib.bluetooth.CachedBluetoothDevice;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Before;
import org.junit.Test;
@@ -48,6 +48,7 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowDialog;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {SettingsShadowResourcesImpl.class, ShadowDynamicLayout.class})
@@ -77,7 +78,8 @@
*/
AlertDialog startDialog(String deviceName) {
when(mCachedDevice.getName()).thenReturn(deviceName);
- FragmentTestUtils.startFragment(mFragment);
+ FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
return (AlertDialog) ShadowDialog.getLatestDialog();
}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
index e25e4b2..4d4a711 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
@@ -77,7 +77,7 @@
@Test
public void update_filterMatch_addPreference() {
doReturn(BluetoothDevice.BOND_BONDED).when(mBluetoothDevice).getBondState();
- doReturn(false).when(mBluetoothDevice).isConnected();
+ doReturn(false).when(mCachedBluetoothDevice).isConnected();
mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
@@ -87,7 +87,7 @@
@Test
public void update_filterNotMatch_removePreference() {
doReturn(BluetoothDevice.BOND_NONE).when(mBluetoothDevice).getBondState();
- doReturn(true).when(mBluetoothDevice).isConnected();
+ doReturn(true).when(mCachedBluetoothDevice).isConnected();
mBluetoothDeviceUpdater.update(mCachedBluetoothDevice);
@@ -96,7 +96,7 @@
@Test
public void onProfileConnectionStateChanged_deviceConnected_removePreference() {
- when(mBluetoothDevice.isConnected()).thenReturn(true);
+ when(mCachedBluetoothDevice.isConnected()).thenReturn(true);
mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
BluetoothProfile.STATE_CONNECTED, BluetoothProfile.A2DP);
@@ -106,7 +106,7 @@
@Test
public void onProfileConnectionStateChanged_deviceDisconnected_addPreference() {
- when(mBluetoothDevice.isConnected()).thenReturn(false);
+ when(mCachedBluetoothDevice.isConnected()).thenReturn(false);
mBluetoothDeviceUpdater.onProfileConnectionStateChanged(mCachedBluetoothDevice,
BluetoothProfile.STATE_DISCONNECTED, BluetoothProfile.A2DP);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
index fc08016..52b2e95 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
@@ -28,6 +28,9 @@
import android.content.pm.PackageManager;
import androidx.preference.Preference;
+import androidx.preference.PreferenceCategory;
+import androidx.preference.PreferenceGroup;
+import androidx.preference.PreferenceManager;
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
import com.android.settings.connecteddevice.dock.DockUpdater;
@@ -54,10 +57,12 @@
private DockUpdater mDockUpdater;
@Mock
private PackageManager mPackageManager;
+ @Mock
+ private PreferenceManager mPreferenceManager;
private Context mContext;
private PreviouslyConnectedDevicePreferenceController mPreConnectedDeviceController;
- private Preference mPreference;
+ private PreferenceGroup mPreferenceGroup;
@Before
public void setUp() {
@@ -70,8 +75,10 @@
mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
- mPreference = new Preference(mContext);
- mPreConnectedDeviceController.setPreference(mPreference);
+ mPreferenceGroup = spy(new PreferenceCategory(mContext));
+ doReturn(mPreferenceManager).when(mPreferenceGroup).getPreferenceManager();
+ mPreferenceGroup.setVisible(false);
+ mPreConnectedDeviceController.setPreferenceGroup(mPreferenceGroup);
}
@Test
@@ -101,20 +108,34 @@
}
@Test
- public void onDeviceAdded_addFirstDevice_preferenceIsEnable() {
- doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
- mPreConnectedDeviceController.setPreferenceSize(0);
- mPreConnectedDeviceController.onDeviceAdded(mPreference);
+ public void onDeviceAdded_addDevicePreference_displayIt() {
+ mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
- assertThat(mPreference.isEnabled()).isTrue();
+ assertThat(mPreferenceGroup.isVisible()).isTrue();
+ assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
}
@Test
- public void onDeviceRemoved_removeLastDevice_preferenceIsDisable() {
- doReturn(true).when(mPackageManager).hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
- mPreConnectedDeviceController.setPreferenceSize(1);
- mPreConnectedDeviceController.onDeviceRemoved(mPreference);
+ public void onDeviceAdded_addFourDevicePreference_onlyDisplayThree() {
+ mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
+ mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
+ mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
+ mPreConnectedDeviceController.onDeviceAdded(new Preference(mContext));
- assertThat(mPreference.isEnabled()).isFalse();
+ assertThat(mPreferenceGroup.isVisible()).isTrue();
+ assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(3);
}
+
+ @Test
+ public void onDeviceRemoved_removeLastDevice_setInvisible() {
+ final Preference preference = new Preference(mContext);
+ mPreferenceGroup.addPreference(preference);
+ mPreferenceGroup.setVisible(true);
+
+ mPreConnectedDeviceController.onDeviceRemoved(preference);
+
+ assertThat(mPreferenceGroup.isVisible()).isFalse();
+ assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(0);
+ }
+
}
diff --git a/tests/robotests/src/com/android/settings/core/PreferenceXmlParserUtilsTest.java b/tests/robotests/src/com/android/settings/core/PreferenceXmlParserUtilsTest.java
index 06d75da..3b1b5af 100644
--- a/tests/robotests/src/com/android/settings/core/PreferenceXmlParserUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/core/PreferenceXmlParserUtilsTest.java
@@ -16,6 +16,8 @@
package com.android.settings.core;
+import static com.android.settings.core.PreferenceXmlParserUtils
+ .METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEY;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_KEYWORDS;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_SEARCHABLE;
@@ -289,6 +291,30 @@
assertThat(foundKey).isTrue();
}
+ @Test
+ @Config(qualifiers = "mcc999")
+ public void extractMetadata_requestIsDynamicSummaryAllowed_shouldDefaultToFalse()
+ throws Exception {
+ final List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext,
+ R.xml.display_settings, MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE);
+
+ for (Bundle bundle : metadata) {
+ assertThat(bundle.getBoolean(METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE)).isFalse();
+ }
+ }
+
+ @Test
+ @Config(qualifiers = "mcc998")
+ public void extractMetadata_requestIsDynamicSummaryAllowed_shouldReturnAttributeValue()
+ throws Exception {
+ final List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext,
+ R.xml.location_settings, MetadataFlag.FLAG_ALLOW_DYNAMIC_SUMMARY_IN_SLICE);
+
+ for (Bundle bundle : metadata) {
+ assertThat(bundle.getBoolean(METADATA_ALLOW_DYNAMIC_SUMMARY_IN_SLICE)).isTrue();
+ }
+ }
+
/**
* @param resId the ID for the XML preference
* @return an XML resource parser that points to the start tag
diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsageV2Test.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsageV2Test.java
new file mode 100644
index 0000000..8796a39
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsageV2Test.java
@@ -0,0 +1,227 @@
+/*
+ * 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 org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.net.NetworkPolicyManager;
+import android.os.Bundle;
+import android.util.ArraySet;
+import android.view.View;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
+import com.android.settings.testutils.shadow.ShadowRestrictedLockUtilsInternal;
+import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.AppItem;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import com.android.settingslib.RestrictedSwitchPreference;
+import com.android.settingslib.net.NetworkCycleDataForUid;
+
+import org.junit.After;
+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.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ReflectionHelpers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = {ShadowEntityHeaderController.class, ShadowRestrictedLockUtilsInternal.class})
+public class AppDataUsageV2Test {
+
+ @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+ private EntityHeaderController mHeaderController;
+ @Mock
+ private PackageManager mPackageManager;
+
+ private AppDataUsageV2 mFragment;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest();
+ }
+
+ @After
+ public void tearDown() {
+ ShadowEntityHeaderController.reset();
+ }
+
+ @Test
+ public void bindAppHeader_allWorkApps_shouldNotShowAppInfoLink() {
+ ShadowEntityHeaderController.setUseMock(mHeaderController);
+ when(mHeaderController.setRecyclerView(any(), any())).thenReturn(mHeaderController);
+ when(mHeaderController.setUid(anyInt())).thenReturn(mHeaderController);
+
+ mFragment = spy(new AppDataUsageV2());
+
+ when(mFragment.getPreferenceManager())
+ .thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS));
+ doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen();
+ ReflectionHelpers.setField(mFragment, "mAppItem", mock(AppItem.class));
+
+ mFragment.onViewCreated(new View(RuntimeEnvironment.application), new Bundle());
+
+ verify(mHeaderController).setHasAppInfoLink(false);
+ }
+
+ @Test
+ public void bindAppHeader_workApp_shouldSetWorkAppUid() throws
+ PackageManager.NameNotFoundException {
+ final int fakeUserId = 100;
+
+ mFragment = spy(new AppDataUsageV2());
+ final ArraySet<String> packages = new ArraySet<>();
+ packages.add("pkg");
+ final AppItem appItem = new AppItem(123456789);
+
+ ReflectionHelpers.setField(mFragment, "mPackageManager", mPackageManager);
+ ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
+ ReflectionHelpers.setField(mFragment, "mPackages", packages);
+
+ when(mPackageManager.getPackageUidAsUser(anyString(), anyInt()))
+ .thenReturn(fakeUserId);
+
+ ShadowEntityHeaderController.setUseMock(mHeaderController);
+ when(mHeaderController.setRecyclerView(any(), any())).thenReturn(mHeaderController);
+ when(mHeaderController.setUid(fakeUserId)).thenReturn(mHeaderController);
+ when(mHeaderController.setHasAppInfoLink(anyBoolean())).thenReturn(mHeaderController);
+
+ when(mFragment.getPreferenceManager())
+ .thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS));
+ doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen();
+
+ mFragment.onViewCreated(new View(RuntimeEnvironment.application), new Bundle());
+
+ verify(mHeaderController).setHasAppInfoLink(true);
+ verify(mHeaderController).setUid(fakeUserId);
+ }
+
+ @Test
+ public void changePreference_backgroundData_shouldUpdateUI() {
+ mFragment = spy(new AppDataUsageV2());
+ final AppItem appItem = new AppItem(123456789);
+ final RestrictedSwitchPreference pref = mock(RestrictedSwitchPreference.class);
+ final DataSaverBackend dataSaverBackend = mock(DataSaverBackend.class);
+ ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
+ ReflectionHelpers.setField(mFragment, "mRestrictBackground", pref);
+ ReflectionHelpers.setField(mFragment, "mDataSaverBackend", dataSaverBackend);
+
+ doNothing().when(mFragment).updatePrefs();
+
+ mFragment.onPreferenceChange(pref, true /* value */);
+
+ verify(mFragment).updatePrefs();
+ }
+
+ @Test
+ public void updatePrefs_restrictedByAdmin_shouldDisablePreference() {
+ mFragment = spy(new AppDataUsageV2());
+ final int testUid = 123123;
+ final AppItem appItem = new AppItem(testUid);
+ final RestrictedSwitchPreference restrictBackgroundPref
+ = mock(RestrictedSwitchPreference.class);
+ final RestrictedSwitchPreference unrestrictedDataPref
+ = mock(RestrictedSwitchPreference.class);
+ final DataSaverBackend dataSaverBackend = mock(DataSaverBackend.class);
+ final NetworkPolicyManager networkPolicyManager = mock(NetworkPolicyManager.class);
+ ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
+ ReflectionHelpers.setField(mFragment, "mRestrictBackground", restrictBackgroundPref);
+ ReflectionHelpers.setField(mFragment, "mUnrestrictedData", unrestrictedDataPref);
+ ReflectionHelpers.setField(mFragment, "mDataSaverBackend", dataSaverBackend);
+ ReflectionHelpers.setField(mFragment.services, "mPolicyManager", networkPolicyManager);
+
+ ShadowRestrictedLockUtilsInternal.setRestricted(true);
+ doReturn(NetworkPolicyManager.POLICY_NONE).when(networkPolicyManager)
+ .getUidPolicy(testUid);
+
+ mFragment.updatePrefs();
+
+ verify(restrictBackgroundPref).setDisabledByAdmin(any(EnforcedAdmin.class));
+ verify(unrestrictedDataPref).setDisabledByAdmin(any(EnforcedAdmin.class));
+ }
+
+ @Test
+ public void bindData_noAppUsageData_shouldHideCycleSpinner() {
+ mFragment = spy(new AppDataUsageV2());
+ final SpinnerPreference cycle = mock(SpinnerPreference.class);
+ ReflectionHelpers.setField(mFragment, "mCycle", cycle);
+ final Preference preference = mock(Preference.class);
+ ReflectionHelpers.setField(mFragment, "mBackgroundUsage", preference);
+ ReflectionHelpers.setField(mFragment, "mForegroundUsage", preference);
+ ReflectionHelpers.setField(mFragment, "mTotalUsage", preference);
+ doReturn(RuntimeEnvironment.application).when(mFragment).getContext();
+
+ mFragment.bindData(0 /* position */);
+
+ verify(cycle).setVisible(false);
+ }
+
+ @Test
+ public void bindData_hasAppUsageData_shouldShowCycleSpinnerAndUpdateUsageSummary() {
+ mFragment = spy(new AppDataUsageV2());
+ final Context context = RuntimeEnvironment.application;
+ doReturn(context).when(mFragment).getContext();
+ final long backgroundBytes = 1234L;
+ final long foregroundBytes = 5678L;
+ final List<NetworkCycleDataForUid> appUsage = new ArrayList<>();
+ appUsage.add(new NetworkCycleDataForUid.Builder()
+ .setBackgroundUsage(backgroundBytes).setForegroundUsage(foregroundBytes).build());
+ ReflectionHelpers.setField(mFragment, "mUsageData", appUsage);
+ final Preference backgroundPref = mock(Preference.class);
+ ReflectionHelpers.setField(mFragment, "mBackgroundUsage", backgroundPref);
+ final Preference foregroundPref = mock(Preference.class);
+ ReflectionHelpers.setField(mFragment, "mForegroundUsage", foregroundPref);
+ final Preference totalPref = mock(Preference.class);
+ ReflectionHelpers.setField(mFragment, "mTotalUsage", totalPref);
+ final SpinnerPreference cycle = mock(SpinnerPreference.class);
+ ReflectionHelpers.setField(mFragment, "mCycle", cycle);
+
+ mFragment.bindData(0 /* position */);
+
+ verify(cycle).setVisible(true);
+ verify(totalPref).setSummary(
+ DataUsageUtils.formatDataUsage(context, backgroundBytes + foregroundBytes));
+ verify(backgroundPref).setSummary(DataUsageUtils.formatDataUsage(context, backgroundBytes));
+ verify(foregroundPref).setSummary(DataUsageUtils.formatDataUsage(context, foregroundBytes));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsagePreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsagePreferenceTest.java
index 422450a..151bc7d 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsagePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsagePreferenceTest.java
@@ -57,7 +57,7 @@
@Test
public void setTemplate_noDataUsage_shouldDisablePreference() {
- doReturn(0L).when(mController).getHistoriclUsageLevel(any(NetworkTemplate.class));
+ doReturn(0L).when(mController).getHistoricalUsageLevel(any(NetworkTemplate.class));
mPreference.setTemplate(
NetworkTemplate.buildTemplateMobileWildcard(), 5 /* subId */, null /* services */);
@@ -68,7 +68,7 @@
@Test
public void setTemplate_hasDataUsage_shouldNotDisablePreference() {
- doReturn(200L).when(mController).getHistoriclUsageLevel(any(NetworkTemplate.class));
+ doReturn(200L).when(mController).getHistoricalUsageLevel(any(NetworkTemplate.class));
mPreference.setTemplate(
NetworkTemplate.buildTemplateMobileWildcard(), 5 /* subId */, null /* services */);
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index 8964d88..121d9a2 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -493,7 +493,7 @@
mSummaryPreference.setUsageNumbers(1000000L, -1L, true);
final String cycleText = "The quick fox";
mSummaryPreference.setWifiMode(true, cycleText);
- doReturn(200L).when(mSummaryPreference).getHistoriclUsageLevel();
+ doReturn(200L).when(mSummaryPreference).getHistoricalUsageLevel();
bindViewHolder();
assertThat(mUsageTitle.getText().toString())
@@ -529,7 +529,7 @@
public void testSetWifiMode_noUsageInfo_shouldDisableLaunchButton() {
mSummaryPreference = spy(mSummaryPreference);
mSummaryPreference.setWifiMode(true, "Test cycle text");
- doReturn(0L).when(mSummaryPreference).getHistoriclUsageLevel();
+ doReturn(0L).when(mSummaryPreference).getHistoricalUsageLevel();
bindViewHolder();
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
index 0270be4..4ab4256 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageUtilsTest.java
@@ -19,13 +19,19 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import android.app.usage.NetworkStatsManager;
import android.content.Context;
import android.net.ConnectivityManager;
import android.telephony.TelephonyManager;
import android.util.DataUnit;
+import android.util.FeatureFlagUtils;
+import com.android.settings.core.FeatureFlags;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -42,6 +48,9 @@
private ConnectivityManager mManager;
@Mock
private TelephonyManager mTelephonyManager;
+ @Mock
+ private NetworkStatsManager mNetworkStatsManager;
+
private Context mContext;
@Before
@@ -51,6 +60,7 @@
mContext = shadowContext.getApplicationContext();
shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
shadowContext.setSystemService(Context.TELEPHONY_SERVICE, mTelephonyManager);
+ shadowContext.setSystemService(Context.NETWORK_STATS_SERVICE, mNetworkStatsManager);
}
@Test
@@ -88,4 +98,17 @@
assertThat(formattedDataUsage).isEqualTo("1.00 GB");
}
+
+ @Test
+ public void hasEthernet_shouldQueryEthernetSummaryForUser() throws Exception {
+ FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DATA_USAGE_V2, true);
+ when(mManager.isNetworkSupported(anyInt())).thenReturn(true);
+ final String subscriber = "TestSub";
+ when(mTelephonyManager.getSubscriberId()).thenReturn(subscriber);
+
+ DataUsageUtils.hasEthernet(mContext);
+
+ verify(mNetworkStatsManager).querySummaryForUser(eq(ConnectivityManager.TYPE_ETHERNET),
+ eq(subscriber), anyLong() /* startTime */, anyLong() /* endTime */);
+ }
}
diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/RegionSearchPickerTest.java b/tests/robotests/src/com/android/settings/datetime/timezone/RegionSearchPickerTest.java
index 9861d70..e7e01c9 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/RegionSearchPickerTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/timezone/RegionSearchPickerTest.java
@@ -32,13 +32,13 @@
import com.android.settings.datetime.timezone.BaseTimeZoneAdapter.ItemViewHolder;
import com.android.settings.datetime.timezone.RegionSearchPicker.RegionItem;
import com.android.settings.datetime.timezone.model.TimeZoneData;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import libcore.util.CountryZonesFinder;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
diff --git a/tests/robotests/src/com/android/settings/development/AngleEnabledAppPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/AngleEnabledAppPreferenceControllerTest.java
new file mode 100644
index 0000000..03837c2
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/AngleEnabledAppPreferenceControllerTest.java
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2018 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import static com.android.settings.development.DevelopmentOptionsActivityRequestCodes.REQUEST_CODE_ANGLE_ENABLED_APP;
+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.Activity;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+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.util.ReflectionHelpers;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class AngleEnabledAppPreferenceControllerTest {
+
+ @Mock
+ private Preference mPreference;
+ @Mock
+ private PreferenceScreen mPreferenceScreen;
+ @Mock
+ private DevelopmentSettingsDashboardFragment mFragment;
+ @Mock
+ private PackageManager mPackageManager;
+
+ private Context mContext;
+ private AngleEnabledAppPreferenceController mController;
+
+ @Before
+ public void setup() {
+ MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
+ mController = spy(new AngleEnabledAppPreferenceController(mContext, mFragment));
+ ReflectionHelpers
+ .setField(mController, "mPackageManager" /* field name */, mPackageManager);
+ when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
+ .thenReturn(mPreference);
+ mController.displayPreference(mPreferenceScreen);
+ }
+
+ @Test
+ public void handlePreferenceTreeClick_preferenceClicked_launchActivity() {
+ final Intent activityStartIntent = new Intent(mContext, AppPicker.class);
+ final String preferenceKey = mController.getPreferenceKey();
+ doReturn(activityStartIntent).when(mController).getActivityStartIntent();
+ when(mPreference.getKey()).thenReturn(preferenceKey);
+ mController.handlePreferenceTreeClick(mPreference);
+
+ verify(mFragment).startActivityForResult(activityStartIntent,
+ REQUEST_CODE_ANGLE_ENABLED_APP);
+ }
+
+ @Test
+ public void updateState_foobarAppSelected_shouldUpdateSummaryWithAngleEnabledAppLabel() {
+ final String angleEnabledApp = "foobar";
+ final ContentResolver contentResolver = mContext.getContentResolver();
+ Settings.Global.putString(contentResolver, Settings.Global.ANGLE_ENABLED_APP,
+ angleEnabledApp);
+ mController.updateState(mPreference);
+
+ verify(mPreference).setSummary(
+ mContext.getString(R.string.angle_enabled_app_set, angleEnabledApp));
+ }
+
+ @Test
+ public void updateState_noAppSelected_shouldUpdateSummaryWithNoAppSelected() {
+ final String angleEnabledApp = null;
+ final ContentResolver contentResolver = mContext.getContentResolver();
+ Settings.Global.putString(contentResolver, Settings.Global.ANGLE_ENABLED_APP,
+ angleEnabledApp);
+ mController.updateState(mPreference);
+
+ verify(mPreference).setSummary(
+ mContext.getString(R.string.angle_enabled_app_not_set));
+ }
+
+ @Test
+ public void onActivityResult_foobarAppSelected_shouldUpdateSummaryWithAngleEnabledLabel() {
+ Intent activityResultIntent = new Intent(mContext, AppPicker.class);
+ final String appLabel = "foobar";
+ activityResultIntent.setAction(appLabel);
+ final boolean result = mController
+ .onActivityResult(REQUEST_CODE_ANGLE_ENABLED_APP, Activity.RESULT_OK,
+ activityResultIntent);
+
+ assertThat(result).isTrue();
+ verify(mPreference).setSummary(
+ mContext.getString(R.string.angle_enabled_app_set, appLabel));
+ }
+
+ @Test
+ public void onActivityResult_badRequestCode_shouldReturnFalse() {
+ assertThat(mController.onActivityResult(
+ -1 /* requestCode */, -1 /* resultCode */, null /* intent */)).isFalse();
+ }
+
+ @Test
+ public void onDeveloperOptionsSwitchDisabled_shouldDisablePreference() {
+ mController.onDeveloperOptionsSwitchDisabled();
+
+ assertThat(mPreference.isEnabled()).isFalse();
+ verify(mPreference).setSummary(
+ mContext.getString(R.string.angle_enabled_app_not_set));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/development/CbrsDataSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/CbrsDataSwitchPreferenceControllerTest.java
index be9b123..0f22390 100644
--- a/tests/robotests/src/com/android/settings/development/CbrsDataSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/CbrsDataSwitchPreferenceControllerTest.java
@@ -62,19 +62,19 @@
public void onPreferenceChanged_settingEnabled_shouldEnableANAS() {
mController.onPreferenceChange(mPreference, true);
- assertThat(mTelephonyManager.isAlternativeNetworkAccessEnabled()).isTrue();
+ assertThat(mTelephonyManager.isAlternativeNetworkEnabled()).isTrue();
}
@Test
public void onPreferenceChanged_settingDisabled_shouldDisableANAS() {
mController.onPreferenceChange(mPreference, false);
- assertThat(mTelephonyManager.isAlternativeNetworkAccessEnabled()).isFalse();
+ assertThat(mTelephonyManager.isAlternativeNetworkEnabled()).isFalse();
}
@Test
public void updateState_settingEnabled_shouldEnablePreference() {
- mTelephonyManager.setAlternativeNetworkAccessState(true);
+ mTelephonyManager.setAlternativeNetworkState(true);
mController.updateState(mPreference);
assertThat(mPreference.isChecked()).isTrue();
@@ -82,7 +82,7 @@
@Test
public void updateState_settingDisabled_shouldDisablePreference() {
- mTelephonyManager.setAlternativeNetworkAccessState(false);
+ mTelephonyManager.setAlternativeNetworkState(false);
mController.updateState(mPreference);
assertThat(mPreference.isChecked()).isFalse();
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/DeviceModelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/DeviceModelPreferenceControllerTest.java
index e337141..aa84adf 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/DeviceModelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/DeviceModelPreferenceControllerTest.java
@@ -48,7 +48,7 @@
@RunWith(SettingsRobolectricTestRunner.class)
public class DeviceModelPreferenceControllerTest {
- private final String KEY = "device_model_key";
+ private final String KEY = "device_model";
@Mock
private Fragment mFragment;
@@ -101,6 +101,11 @@
.add(any(HardwareInfoDialogFragment.class), eq(HardwareInfoDialogFragment.TAG));
}
+ @Test
+ public void isSliceable_shouldBeTrue() {
+ assertThat(mController.isSliceable()).isTrue();
+ }
+
private boolean containBuildModel(CharSequence result) {
final String oracle = mContext.getResources().getString(R.string.model_summary,
Build.MODEL);
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/HardwareInfoDialogFragmentTest.java b/tests/robotests/src/com/android/settings/deviceinfo/HardwareInfoDialogFragmentTest.java
index 058bc76..abcce00 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/HardwareInfoDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/HardwareInfoDialogFragmentTest.java
@@ -29,13 +29,13 @@
import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java
index 4748135..82056a2 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/PhoneNumberPreferenceControllerTest.java
@@ -16,8 +16,7 @@
package com.android.settings.deviceinfo;
-import static junit.framework.Assert.assertFalse;
-import static junit.framework.Assert.assertTrue;
+import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
@@ -27,12 +26,14 @@
import android.content.Context;
import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -41,7 +42,6 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class)
public class PhoneNumberPreferenceControllerTest {
@@ -55,6 +55,8 @@
@Mock
private SubscriptionInfo mSubscriptionInfo;
@Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
private PreferenceScreen mScreen;
private Context mContext;
@@ -63,9 +65,10 @@
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
- mContext = RuntimeEnvironment.application;
- mController = spy(new PhoneNumberPreferenceController(mContext));
- ReflectionHelpers.setField(mController, "mTelephonyManager", mTelephonyManager);
+ mContext = spy(RuntimeEnvironment.application);
+ when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager);
+ when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
+ mController = spy(new PhoneNumberPreferenceController(mContext, "phone_number"));
final String prefKey = mController.getPreferenceKey();
when(mScreen.findPreference(prefKey)).thenReturn(mPreference);
when(mScreen.getContext()).thenReturn(mContext);
@@ -75,17 +78,19 @@
}
@Test
- public void isAvailable_shouldBeTrueIfCallCapable() {
+ public void getAvailabilityStatus_isVoiceCapable_shouldBeAVAILABLE() {
when(mTelephonyManager.isVoiceCapable()).thenReturn(true);
- assertTrue(mController.isAvailable());
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.AVAILABLE);
}
@Test
- public void isAvailable_shouldBeFalseIfNotCallCapable() {
+ public void getAvailabilityStatus_isNotVoiceCapable_shouldBeUNSUPPORTED_ON_DEVICE() {
when(mTelephonyManager.isVoiceCapable()).thenReturn(false);
- assertFalse(mController.isAvailable());
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.UNSUPPORTED_ON_DEVICE);
}
@Test
@@ -126,4 +131,19 @@
mContext.getString(R.string.status_number_sim_slot, 2 /* sim slot */));
verify(mSecondPreference).setSummary(phoneNumber);
}
+
+ @Test
+ public void getSummary_cannotGetActiveSubscriptionInfo_shouldShowUnknown() {
+ when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(null);
+
+ CharSequence primaryNumber = mController.getSummary();
+
+ assertThat(primaryNumber).isNotNull();
+ assertThat(primaryNumber).isEqualTo(mContext.getString(R.string.device_info_default));
+ }
+
+ @Test
+ public void isSliceable_shouldBeTrue() {
+ assertThat(mController.isSliceable()).isTrue();
+ }
}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeForgetTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeForgetTest.java
index fad75c3..768a9ea 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeForgetTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeForgetTest.java
@@ -28,7 +28,6 @@
import com.android.settings.R;
import com.android.settings.deviceinfo.PrivateVolumeForget.ForgetConfirmFragment;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowStorageManager;
@@ -38,6 +37,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {ShadowStorageManager.class, SettingsShadowResourcesImpl.class})
@@ -50,8 +50,12 @@
public void setUp() {
final Bundle bundle = new Bundle();
bundle.putString(VolumeRecord.EXTRA_FS_UUID, "id");
- mFragment = Robolectric.buildFragment(PrivateVolumeForget.class,
- bundle).create().start().resume().get();
+ mFragment = FragmentController.of(new PrivateVolumeForget(), bundle)
+ .create()
+ .start()
+ .resume()
+ .visible()
+ .get();
mActivity = mFragment.getActivity();
}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeFormatTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeFormatTest.java
index 0d720e3..81c52c5 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeFormatTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeFormatTest.java
@@ -25,7 +25,6 @@
import android.widget.Button;
import com.android.settings.R;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowStorageManager;
@@ -36,6 +35,7 @@
import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -49,8 +49,12 @@
public void setUp() {
final Bundle bundle = new Bundle();
bundle.putString(VolumeInfo.EXTRA_VOLUME_ID, "id");
- mFragment = Robolectric.buildFragment(PrivateVolumeFormat.class,
- bundle).create().start().resume().get();
+ mFragment = FragmentController.of(new PrivateVolumeFormat(), bundle)
+ .create()
+ .start()
+ .resume()
+ .visible()
+ .get();
mShadowActivity = Shadows.shadowOf(mFragment.getActivity());
}
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java
index 94f5286..65f24e3 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeUnmountTest.java
@@ -23,7 +23,6 @@
import android.widget.Button;
import com.android.settings.R;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowStorageManager;
@@ -32,6 +31,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -44,8 +44,12 @@
public void setUp() {
Bundle bundle = new Bundle();
bundle.putString(VolumeInfo.EXTRA_VOLUME_ID, "id");
- mFragment = Robolectric.buildFragment(PrivateVolumeUnmount.class,
- bundle).create().start().resume().get();
+ mFragment = FragmentController.of(new PrivateVolumeUnmount(), bundle)
+ .create()
+ .start()
+ .resume()
+ .visible()
+ .get();
}
@After
@@ -57,7 +61,7 @@
public void OnClickListener_shouldCallUnmount() {
assertThat(ShadowStorageManager.isUnmountCalled()).isFalse();
- Button confirm = (Button) mFragment.getView().findViewById(R.id.confirm);
+ final Button confirm = mFragment.getView().findViewById(R.id.confirm);
confirm.performClick();
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/deviceinfo/DeviceNameWarningDialogTest.java b/tests/robotests/src/com/android/settings/deviceinfo/deviceinfo/DeviceNameWarningDialogTest.java
index 9e1400b..0be0ac2 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/deviceinfo/DeviceNameWarningDialogTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/deviceinfo/DeviceNameWarningDialogTest.java
@@ -1,7 +1,6 @@
package com.android.settings.deviceinfo.deviceinfo;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -9,12 +8,11 @@
import com.android.settings.deviceinfo.aboutphone.DeviceNameWarningDialog;
import com.android.settings.deviceinfo.aboutphone.MyDeviceInfoFragment;
-import com.android.settings.testutils.FragmentController;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
public class DeviceNameWarningDialogTest {
@@ -23,7 +21,7 @@
@Test
public void onClick_okSetsName() {
final FragmentController<DeviceNameWarningDialog> fragmentController =
- Robolectric.buildFragment(DeviceNameWarningDialog.class);
+ FragmentController.of(new DeviceNameWarningDialog());
final DeviceNameWarningDialog fragment = spy(fragmentController.get());
final MyDeviceInfoFragment deviceInfoFragment = mock(MyDeviceInfoFragment.class);
fragment.setTargetFragment(deviceInfoFragment, 0);
@@ -36,7 +34,7 @@
@Test
public void onClick_cancelDoesNothing() {
final FragmentController<DeviceNameWarningDialog> fragmentController =
- Robolectric.buildFragment(DeviceNameWarningDialog.class);
+ FragmentController.of(new DeviceNameWarningDialog());
final DeviceNameWarningDialog fragment = spy(fragmentController.get());
final MyDeviceInfoFragment deviceInfoFragment = mock(MyDeviceInfoFragment.class);
fragment.setTargetFragment(deviceInfoFragment, 0);
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceControllerTest.java
index 3927e20..e7b1893 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/firmwareversion/FirmwareVersionPreferenceControllerTest.java
@@ -44,7 +44,7 @@
@RunWith(SettingsRobolectricTestRunner.class)
public class FirmwareVersionPreferenceControllerTest {
- private final String KEY = "firmware_key";
+ private final String KEY = "firmware_version";
@Mock
private Fragment mFragment;
@@ -103,6 +103,11 @@
assertThat(result).isFalse();
}
+ @Test
+ public void isSliceable_shouldBeTrue() {
+ assertThat(mController.isSliceable()).isTrue();
+ }
+
@Implements(FirmwareVersionDialogFragment.class)
public static class ShadowFirmwareVersionDialogFragment {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java
index f1e92e8..e5a4b3d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/RestrictedAppDetailsTest.java
@@ -32,6 +32,7 @@
import android.util.SparseLongArray;
import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
import androidx.preference.CheckBoxPreference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager;
@@ -48,7 +49,6 @@
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Before;
import org.junit.Test;
@@ -58,6 +58,7 @@
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
import java.util.ArrayList;
import java.util.List;
@@ -167,7 +168,8 @@
final BatteryTipDialogFragment dialogFragment = mRestrictedAppDetails.createDialogFragment(
mAppInfo, true);
- FragmentTestUtils.startFragment(dialogFragment);
+ FragmentController.setupFragment(dialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */, null /* bundle */);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
@@ -179,7 +181,8 @@
final BatteryTipDialogFragment dialogFragment = mRestrictedAppDetails.createDialogFragment(
mAppInfo, false);
- FragmentTestUtils.startFragment(dialogFragment);
+ FragmentController.setupFragment(dialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */, null /* bundle */);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java
index 9869300..bd4f899 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterytip/BatteryTipDialogFragmentTest.java
@@ -25,6 +25,7 @@
import android.text.format.DateUtils;
import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.fuelgauge.Estimate;
@@ -38,7 +39,6 @@
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
import com.android.settings.testutils.shadow.ShadowUtils;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Before;
import org.junit.Test;
@@ -47,6 +47,7 @@
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
import java.util.ArrayList;
import java.util.List;
@@ -106,7 +107,8 @@
mDialogFragment = BatteryTipDialogFragment.newInstance(mHighUsageTip, METRICS_KEY);
- FragmentTestUtils.startFragment(mDialogFragment);
+ FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */, null /* bundle */);
Robolectric.getForegroundThreadScheduler().advanceToLastPostedRunnable();
@@ -121,7 +123,8 @@
public void testOnCreateDialog_restrictOneAppTip_fireRestrictOneAppDialog() {
mDialogFragment = BatteryTipDialogFragment.newInstance(mRestrictedOneAppTip, METRICS_KEY);
- FragmentTestUtils.startFragment(mDialogFragment);
+ FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */, null /* bundle */);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
@@ -140,7 +143,8 @@
mDialogFragment = BatteryTipDialogFragment.newInstance(mRestrictTwoAppsTip, METRICS_KEY);
- FragmentTestUtils.startFragment(mDialogFragment);
+ FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */, null /* bundle */);
Robolectric.getForegroundThreadScheduler().advanceToLastPostedRunnable();
@@ -169,7 +173,8 @@
mDialogFragment = BatteryTipDialogFragment.newInstance(restrictSixAppsTip, METRICS_KEY);
- FragmentTestUtils.startFragment(mDialogFragment);
+ FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */, null /* bundle */);
Robolectric.getForegroundThreadScheduler().advanceToLastPostedRunnable();
@@ -189,7 +194,8 @@
mDialogFragment = BatteryTipDialogFragment.newInstance(mUnrestrictAppTip, METRICS_KEY);
ShadowUtils.setApplicationLabel(PACKAGE_NAME, DISPLAY_NAME);
- FragmentTestUtils.startFragment(mDialogFragment);
+ FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */, null /* bundle */);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
@@ -204,7 +210,8 @@
doReturn(AVERAGE_TIME_MS).when(mSummaryTip).getAverageTimeMs();
mDialogFragment = BatteryTipDialogFragment.newInstance(mSummaryTip, METRICS_KEY);
- FragmentTestUtils.startFragment(mDialogFragment);
+ FragmentController.setupFragment(mDialogFragment, FragmentActivity.class,
+ 0 /* containerViewId */, null /* bundle */);
final AlertDialog dialog = ShadowAlertDialogCompat.getLatestAlertDialog();
ShadowAlertDialogCompat shadowDialog = ShadowAlertDialogCompat.shadowOf(dialog);
diff --git a/tests/robotests/src/com/android/settings/gestures/ReachGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/WakeLockScreenGesturePreferenceControllerTest.java
similarity index 73%
copy from tests/robotests/src/com/android/settings/gestures/ReachGesturePreferenceControllerTest.java
copy to tests/robotests/src/com/android/settings/gestures/WakeLockScreenGesturePreferenceControllerTest.java
index 78e899c..c6249fb 100644
--- a/tests/robotests/src/com/android/settings/gestures/ReachGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/WakeLockScreenGesturePreferenceControllerTest.java
@@ -37,41 +37,41 @@
import org.mockito.MockitoAnnotations;
@RunWith(SettingsRobolectricTestRunner.class)
-public class ReachGesturePreferenceControllerTest {
+public class WakeLockScreenGesturePreferenceControllerTest {
- private static final String KEY_REACH = "gesture_reach";
+ private static final String KEY_WAKE_LOCK_SCREEN = "gesture_wake_lock_screen";
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@Mock
private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
- private ReachGesturePreferenceController mController;
+ private WakeLockScreenGesturePreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mController = new ReachGesturePreferenceController(mContext, KEY_REACH);
+ mController = new WakeLockScreenGesturePreferenceController(mContext, KEY_WAKE_LOCK_SCREEN);
mController.setConfig(mAmbientDisplayConfiguration);
}
@Test
public void testIsChecked_configIsSet_shouldReturnTrue() {
// Set the setting to be enabled.
- when(mAmbientDisplayConfiguration.reachGestureEnabled(anyInt())).thenReturn(true);
+ when(mAmbientDisplayConfiguration.wakeLockScreenGestureEnabled(anyInt())).thenReturn(true);
assertThat(mController.isChecked()).isTrue();
}
@Test
public void testIsChecked_configIsNotSet_shouldReturnFalse() {
// Set the setting to be disabled.
- when(mAmbientDisplayConfiguration.reachGestureEnabled(anyInt())).thenReturn(false);
+ when(mAmbientDisplayConfiguration.wakeLockScreenGestureEnabled(anyInt())).thenReturn(false);
assertThat(mController.isChecked()).isFalse();
}
@Test
public void getAvailabilityStatus_gestureNotSupported_UNSUPPORTED_ON_DEVICE() {
- when(mAmbientDisplayConfiguration.reachGestureAvailable()).thenReturn(false);
+ when(mAmbientDisplayConfiguration.wakeLockScreenGestureAvailable()).thenReturn(false);
final int availabilityStatus = mController.getAvailabilityStatus();
assertThat(availabilityStatus).isEqualTo(UNSUPPORTED_ON_DEVICE);
@@ -79,7 +79,7 @@
@Test
public void getAvailabilityStatus_gestureSupported_AVAILABLE() {
- when(mAmbientDisplayConfiguration.reachGestureAvailable()).thenReturn(true);
+ when(mAmbientDisplayConfiguration.wakeLockScreenGestureAvailable()).thenReturn(true);
final int availabilityStatus = mController.getAvailabilityStatus();
assertThat(availabilityStatus).isEqualTo(AVAILABLE);
@@ -87,15 +87,15 @@
@Test
public void isSliceableCorrectKey_returnsTrue() {
- final ReachGesturePreferenceController controller =
- new ReachGesturePreferenceController(mContext, "gesture_reach");
+ final WakeLockScreenGesturePreferenceController controller =
+ new WakeLockScreenGesturePreferenceController(mContext, KEY_WAKE_LOCK_SCREEN);
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
- final ReachGesturePreferenceController controller =
- new ReachGesturePreferenceController(mContext, "bad_key");
+ final WakeLockScreenGesturePreferenceController controller =
+ new WakeLockScreenGesturePreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}
diff --git a/tests/robotests/src/com/android/settings/gestures/ReachGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/WakeLockScreenGestureSettingsTest.java
similarity index 84%
rename from tests/robotests/src/com/android/settings/gestures/ReachGestureSettingsTest.java
rename to tests/robotests/src/com/android/settings/gestures/WakeLockScreenGestureSettingsTest.java
index 9371c71..0cd777d 100644
--- a/tests/robotests/src/com/android/settings/gestures/ReachGestureSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/WakeLockScreenGestureSettingsTest.java
@@ -30,19 +30,19 @@
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
-public class ReachGestureSettingsTest {
+public class WakeLockScreenGestureSettingsTest {
- private ReachGestureSettings mSettings;
+ private WakeLockScreenGestureSettings mSettings;
@Before
public void setUp() {
- mSettings = new ReachGestureSettings();
+ mSettings = new WakeLockScreenGestureSettings();
}
@Test
public void testSearchIndexProvider_shouldIndexResource() {
final List<SearchIndexableResource> indexRes =
- ReachGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ WakeLockScreenGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
RuntimeEnvironment.application, true /* enabled */);
assertThat(indexRes).isNotNull();
diff --git a/tests/robotests/src/com/android/settings/gestures/ReachGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/WakeScreenGesturePreferenceControllerTest.java
similarity index 74%
rename from tests/robotests/src/com/android/settings/gestures/ReachGesturePreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/gestures/WakeScreenGesturePreferenceControllerTest.java
index 78e899c..0af4540 100644
--- a/tests/robotests/src/com/android/settings/gestures/ReachGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/WakeScreenGesturePreferenceControllerTest.java
@@ -37,41 +37,41 @@
import org.mockito.MockitoAnnotations;
@RunWith(SettingsRobolectricTestRunner.class)
-public class ReachGesturePreferenceControllerTest {
+public class WakeScreenGesturePreferenceControllerTest {
- private static final String KEY_REACH = "gesture_reach";
+ private static final String KEY_WAKE_SCREEN = "gesture_wake_screen";
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private Context mContext;
@Mock
private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
- private ReachGesturePreferenceController mController;
+ private WakeScreenGesturePreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mController = new ReachGesturePreferenceController(mContext, KEY_REACH);
+ mController = new WakeScreenGesturePreferenceController(mContext, KEY_WAKE_SCREEN);
mController.setConfig(mAmbientDisplayConfiguration);
}
@Test
public void testIsChecked_configIsSet_shouldReturnTrue() {
// Set the setting to be enabled.
- when(mAmbientDisplayConfiguration.reachGestureEnabled(anyInt())).thenReturn(true);
+ when(mAmbientDisplayConfiguration.wakeScreenGestureEnabled(anyInt())).thenReturn(true);
assertThat(mController.isChecked()).isTrue();
}
@Test
public void testIsChecked_configIsNotSet_shouldReturnFalse() {
// Set the setting to be disabled.
- when(mAmbientDisplayConfiguration.reachGestureEnabled(anyInt())).thenReturn(false);
+ when(mAmbientDisplayConfiguration.wakeScreenGestureEnabled(anyInt())).thenReturn(false);
assertThat(mController.isChecked()).isFalse();
}
@Test
public void getAvailabilityStatus_gestureNotSupported_UNSUPPORTED_ON_DEVICE() {
- when(mAmbientDisplayConfiguration.reachGestureAvailable()).thenReturn(false);
+ when(mAmbientDisplayConfiguration.wakeScreenGestureAvailable()).thenReturn(false);
final int availabilityStatus = mController.getAvailabilityStatus();
assertThat(availabilityStatus).isEqualTo(UNSUPPORTED_ON_DEVICE);
@@ -79,7 +79,7 @@
@Test
public void getAvailabilityStatus_gestureSupported_AVAILABLE() {
- when(mAmbientDisplayConfiguration.reachGestureAvailable()).thenReturn(true);
+ when(mAmbientDisplayConfiguration.wakeScreenGestureAvailable()).thenReturn(true);
final int availabilityStatus = mController.getAvailabilityStatus();
assertThat(availabilityStatus).isEqualTo(AVAILABLE);
@@ -87,15 +87,15 @@
@Test
public void isSliceableCorrectKey_returnsTrue() {
- final ReachGesturePreferenceController controller =
- new ReachGesturePreferenceController(mContext, "gesture_reach");
+ final WakeScreenGesturePreferenceController controller =
+ new WakeScreenGesturePreferenceController(mContext, "gesture_wake_screen");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isSliceableIncorrectKey_returnsFalse() {
- final ReachGesturePreferenceController controller =
- new ReachGesturePreferenceController(mContext, "bad_key");
+ final WakeScreenGesturePreferenceController controller =
+ new WakeScreenGesturePreferenceController(mContext, "bad_key");
assertThat(controller.isSliceable()).isFalse();
}
}
diff --git a/tests/robotests/src/com/android/settings/gestures/ReachGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/WakeScreenGestureSettingsTest.java
similarity index 81%
copy from tests/robotests/src/com/android/settings/gestures/ReachGestureSettingsTest.java
copy to tests/robotests/src/com/android/settings/gestures/WakeScreenGestureSettingsTest.java
index 9371c71..1d7e225 100644
--- a/tests/robotests/src/com/android/settings/gestures/ReachGestureSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/WakeScreenGestureSettingsTest.java
@@ -30,20 +30,20 @@
import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class)
-public class ReachGestureSettingsTest {
+public class WakeScreenGestureSettingsTest {
- private ReachGestureSettings mSettings;
+ private WakeScreenGestureSettings mSettings;
@Before
public void setUp() {
- mSettings = new ReachGestureSettings();
+ mSettings = new WakeScreenGestureSettings();
}
@Test
public void testSearchIndexProvider_shouldIndexResource() {
final List<SearchIndexableResource> indexRes =
- ReachGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
- RuntimeEnvironment.application, true /* enabled */);
+ WakeScreenGestureSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
+ RuntimeEnvironment.application, true /* enabled */);
assertThat(indexRes).isNotNull();
assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
diff --git a/tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java b/tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java
new file mode 100644
index 0000000..865989d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/CardContentLoaderTest.java
@@ -0,0 +1,109 @@
+/*
+ * 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.homepage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.net.Uri;
+
+import com.android.settings.homepage.deviceinfo.DataUsageSlice;
+import com.android.settings.homepage.deviceinfo.DeviceInfoSlice;
+import com.android.settings.slices.SettingsSliceProvider;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.shadows.ShadowContentResolver;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class CardContentLoaderTest {
+
+ private Context mContext;
+ private CardContentLoader mCardContentLoader;
+ private SettingsSliceProvider mProvider;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ mCardContentLoader = new CardContentLoader(mContext);
+ mProvider = new SettingsSliceProvider();
+ ShadowContentResolver.registerProviderInternal(SettingsSliceProvider.SLICE_AUTHORITY,
+ mProvider);
+ }
+
+ @Test
+ public void createStaticCards_shouldReturnTwoCards() {
+ final List<ContextualCard> defaultData = mCardContentLoader.createStaticCards();
+
+ assertThat(defaultData).hasSize(2);
+ }
+
+ @Test
+ public void createStaticCards_shouldContainDataUsageAndDeviceInfo() {
+ final Uri dataUsage = DataUsageSlice.DATA_USAGE_CARD_URI;
+ final Uri deviceInfo = DeviceInfoSlice.DEVICE_INFO_CARD_URI;
+ final List<Uri> expectedUris = Arrays.asList(dataUsage, deviceInfo);
+
+ final List<Uri> actualCardUris = mCardContentLoader.createStaticCards().stream().map(
+ ContextualCard::getSliceUri).collect(Collectors.toList());
+
+ assertThat(actualCardUris).containsExactlyElementsIn(expectedUris);
+ }
+
+ @Test
+ public void isCardEligibleToDisplay_customCard_returnTrue() {
+ final ContextualCard customCard = new ContextualCard.Builder()
+ .setName("custom_card")
+ .setCardType(ContextualCard.CardType.DEFAULT)
+ .setTitleText("custom_title")
+ .setSummaryText("custom_summary")
+ .build();
+
+ assertThat(mCardContentLoader.isCardEligibleToDisplay(customCard)).isTrue();
+ }
+
+ @Test
+ public void isCardEligibleToDisplay_invalidScheme_returnFalse() {
+ final String sliceUri = "contet://com.android.settings.slices/action/flashlight";
+
+ assertThat(
+ mCardContentLoader.isCardEligibleToDisplay(getContextualCard(sliceUri))).isFalse();
+ }
+
+ @Test
+ public void isCardEligibleToDisplay_noProvider_returnFalse() {
+ final String sliceUri = "content://com.android.settings.test.slices/action/flashlight";
+
+ assertThat(
+ mCardContentLoader.isCardEligibleToDisplay(getContextualCard(sliceUri))).isFalse();
+ }
+
+ private ContextualCard getContextualCard(String sliceUri) {
+ return new ContextualCard.Builder()
+ .setName("test_card")
+ .setCardType(ContextualCard.CardType.SLICE)
+ .setSliceUri(sliceUri)
+ .build();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/CardContentProviderTest.java b/tests/robotests/src/com/android/settings/homepage/CardContentProviderTest.java
index 84955e2..f89d037 100644
--- a/tests/robotests/src/com/android/settings/homepage/CardContentProviderTest.java
+++ b/tests/robotests/src/com/android/settings/homepage/CardContentProviderTest.java
@@ -235,7 +235,7 @@
"content://com.android.settings.slices/action/auto_rotate");
values.put(CardDatabaseHelper.CardColumns.CATEGORY, 2);
values.put(CardDatabaseHelper.CardColumns.PACKAGE_NAME, "com.android.settings");
- values.put(CardDatabaseHelper.CardColumns.APP_VERSION, "1.0.0");
+ values.put(CardDatabaseHelper.CardColumns.APP_VERSION, 10001);
return values;
}
@@ -252,7 +252,7 @@
"content://com.android.settings.slices/action/toggle_airplane");
values.put(CardDatabaseHelper.CardColumns.CATEGORY, 2);
values.put(CardDatabaseHelper.CardColumns.PACKAGE_NAME, "com.android.settings");
- values.put(CardDatabaseHelper.CardColumns.APP_VERSION, "1.0.0");
+ values.put(CardDatabaseHelper.CardColumns.APP_VERSION, 10001);
twoRows[1] = values;
return twoRows;
diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
new file mode 100644
index 0000000..80d9497
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/SettingsContextualCardProviderTest.java
@@ -0,0 +1,64 @@
+/*
+ * 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.homepage.contextualcards;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.net.Uri;
+import android.os.Bundle;
+
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import com.google.android.settings.intelligence.libs.contextualcards.ContextualCard;
+import com.google.android.settings.intelligence.libs.contextualcards.ContextualCardProvider;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.ArrayList;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class SettingsContextualCardProviderTest {
+
+ private Context mContext;
+ private ContentResolver mResolver;
+ private Uri mUri;
+
+ @Before
+ public void setUp() {
+ mContext = RuntimeEnvironment.application;
+ mResolver = mContext.getContentResolver();
+ mUri = new Uri.Builder()
+ .scheme(ContentResolver.SCHEME_CONTENT)
+ .authority(SettingsContextualCardProvider.CARD_AUTHORITY)
+ .build();
+ }
+
+ @Test
+ public void contentProviderCall_returnCorrectSize() {
+ final Bundle returnValue =
+ mResolver.call(mUri, ContextualCardProvider.METHOD_GET_CARD_LIST, "", null);
+ final ArrayList<ContextualCard> cards =
+ returnValue.getParcelableArrayList(ContextualCardProvider.BUNDLE_CARD_LIST);
+ assertThat(cards.size()).isEqualTo(2);
+ }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/homepage/deviceinfo/DeviceInfoSliceTest.java b/tests/robotests/src/com/android/settings/homepage/deviceinfo/DeviceInfoSliceTest.java
new file mode 100644
index 0000000..2480baf
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/deviceinfo/DeviceInfoSliceTest.java
@@ -0,0 +1,93 @@
+/*
+ * 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.homepage.deviceinfo;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.telephony.SubscriptionInfo;
+
+import androidx.core.graphics.drawable.IconCompat;
+import androidx.slice.Slice;
+import androidx.slice.SliceItem;
+import androidx.slice.SliceMetadata;
+import androidx.slice.SliceProvider;
+import androidx.slice.core.SliceAction;
+import androidx.slice.widget.SliceLiveData;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.SliceTester;
+
+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 java.util.List;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class DeviceInfoSliceTest {
+
+ @Mock
+ private SubscriptionInfo mSubscriptionInfo;
+
+ private Context mContext;
+ private DeviceInfoSlice mDeviceInfoSlice;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application);
+
+ // Set-up specs for SliceMetadata.
+ SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
+
+ mDeviceInfoSlice = spy(new DeviceInfoSlice(mContext));
+ }
+
+ @Test
+ public void getSlice_hasSubscriptionInfo_shouldBeCorrectSliceContent() {
+ final String phoneNumber = "1111111111";
+ doReturn(mSubscriptionInfo).when(mDeviceInfoSlice).getFirstSubscriptionInfo();
+ doReturn(phoneNumber).when(mDeviceInfoSlice).getPhoneNumber();
+ final Slice slice = mDeviceInfoSlice.getSlice();
+ final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
+ final SliceAction primaryAction = metadata.getPrimaryAction();
+ final IconCompat expectedIcon = IconCompat.createWithResource(mContext,
+ R.drawable.ic_info_outline_24dp);
+ assertThat(primaryAction.getIcon().toString()).isEqualTo(expectedIcon.toString());
+
+ final List<SliceItem> sliceItems = slice.getItems();
+ SliceTester.assertTitle(sliceItems, mContext.getString(R.string.device_info_label));
+ SliceTester.assertTitle(sliceItems, phoneNumber);
+ }
+
+ @Test
+ public void getSlice_hasNoSubscriptionInfo_shouldShowUnknown() {
+ final Slice slice = mDeviceInfoSlice.getSlice();
+ final List<SliceItem> sliceItems = slice.getItems();
+
+ SliceTester.assertTitle(sliceItems, mContext.getString(R.string.device_info_label));
+ SliceTester.assertTitle(sliceItems, mContext.getString(R.string.device_info_default));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/deviceinfo/StorageSliceTest.java b/tests/robotests/src/com/android/settings/homepage/deviceinfo/StorageSliceTest.java
new file mode 100644
index 0000000..5609a7a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/homepage/deviceinfo/StorageSliceTest.java
@@ -0,0 +1,83 @@
+/*
+ * 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.homepage.deviceinfo;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.content.res.Resources;
+
+import androidx.core.graphics.drawable.IconCompat;
+import androidx.slice.Slice;
+import androidx.slice.SliceItem;
+import androidx.slice.SliceMetadata;
+import androidx.slice.SliceProvider;
+import androidx.slice.core.SliceAction;
+import androidx.slice.widget.SliceLiveData;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.SliceTester;
+import com.android.settingslib.deviceinfo.PrivateStorageInfo;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+
+import java.util.List;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class StorageSliceTest {
+ private static final String USED_BYTES_TEXT = "test used bytes";
+ private static final String SUMMARY_TEXT = "test summary";
+
+ private Context mContext;
+ private StorageSlice mStorageSlice;
+
+ @Before
+ public void setUp() {
+ mContext = spy(RuntimeEnvironment.application);
+
+ // Set-up specs for SliceMetadata.
+ SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
+
+ mStorageSlice = spy(new StorageSlice(mContext));
+ }
+
+ @Test
+ public void getSlice_shouldBeCorrectSliceContent() {
+ final PrivateStorageInfo info = new PrivateStorageInfo(100L, 600L);
+ doReturn(info).when(mStorageSlice).getPrivateStorageInfo();
+ doReturn(USED_BYTES_TEXT).when(mStorageSlice).getStorageUsedText(any());
+ doReturn(SUMMARY_TEXT).when(mStorageSlice).getStorageSummaryText(any());
+ final Slice slice = mStorageSlice.getSlice();
+ final SliceMetadata metadata = SliceMetadata.from(mContext, slice);
+ final SliceAction primaryAction = metadata.getPrimaryAction();
+ final IconCompat expectedIcon = IconCompat.createWithResource(mContext,
+ R.drawable.ic_homepage_storage);
+ assertThat(primaryAction.getIcon().toString()).isEqualTo(expectedIcon.toString());
+
+ final List<SliceItem> sliceItems = slice.getItems();
+ SliceTester.assertTitle(sliceItems, mContext.getString(R.string.storage_label));
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/mobilenetwork/MobileSettingsActivityTest.java b/tests/robotests/src/com/android/settings/mobilenetwork/MobileSettingsActivityTest.java
new file mode 100644
index 0000000..cb86d6f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/mobilenetwork/MobileSettingsActivityTest.java
@@ -0,0 +1,140 @@
+/*
+ * 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.mobilenetwork;
+
+import static com.android.settings.mobilenetwork.MobileSettingsActivity.MOBILE_SETTINGS_TAG;
+
+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.view.Menu;
+import android.view.View;
+
+import com.android.internal.view.menu.ContextMenuBuilder;
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+
+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 java.util.ArrayList;
+import java.util.List;
+
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class MobileSettingsActivityTest {
+
+ private static final int CURRENT_SUB_ID = 3;
+ private static final int PREV_SUB_ID = 1;
+
+ private Context mContext;
+ private MobileSettingsActivity mMobileSettingsActivity;
+ private List<SubscriptionInfo> mSubscriptionInfos;
+ private Fragment mShowFragment;
+ private Fragment mHideFragment;
+
+ @Mock
+ private SubscriptionManager mSubscriptionManager;
+ @Mock
+ private SubscriptionInfo mSubscriptionInfo;
+ @Mock
+ private FragmentManager mFragmentManager;
+ @Mock
+ private FragmentTransaction mFragmentTransaction;
+ @Mock
+ private BottomNavigationView mBottomNavigationView;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mContext = spy(RuntimeEnvironment.application);
+
+ mMobileSettingsActivity = spy(new MobileSettingsActivity());
+ mSubscriptionInfos = new ArrayList<>();
+ mShowFragment = new Fragment();
+ mHideFragment = new Fragment();
+ mMobileSettingsActivity.mSubscriptionInfos = mSubscriptionInfos;
+
+ doReturn(mSubscriptionManager).when(mMobileSettingsActivity).getSystemService(
+ SubscriptionManager.class);
+ doReturn(mBottomNavigationView).when(mMobileSettingsActivity).findViewById(R.id.bottom_nav);
+ doReturn(mFragmentManager).when(mMobileSettingsActivity).getSupportFragmentManager();
+ doReturn(mFragmentTransaction).when(mFragmentManager).beginTransaction();
+ doReturn(mHideFragment).when(mFragmentManager).findFragmentByTag(
+ MOBILE_SETTINGS_TAG + PREV_SUB_ID);
+ doReturn(mShowFragment).when(mFragmentManager).findFragmentByTag(
+ MOBILE_SETTINGS_TAG + CURRENT_SUB_ID);
+ }
+
+ @Test
+ public void updateBottomNavigationView_oneSubscription_shouldBeGone() {
+ mSubscriptionInfos.add(mSubscriptionInfo);
+ doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList();
+
+ mMobileSettingsActivity.updateBottomNavigationView();
+
+ verify(mBottomNavigationView).setVisibility(View.GONE);
+ }
+
+ @Test
+ public void updateBottomNavigationView_twoSubscription_updateMenu() {
+ final Menu menu = new ContextMenuBuilder(mContext);
+ mSubscriptionInfos.add(mSubscriptionInfo);
+ mSubscriptionInfos.add(mSubscriptionInfo);
+ doReturn(mSubscriptionInfos).when(mSubscriptionManager).getActiveSubscriptionInfoList();
+ doReturn(menu).when(mBottomNavigationView).getMenu();
+
+ mMobileSettingsActivity.updateBottomNavigationView();
+
+ assertThat(menu.size()).isEqualTo(2);
+ }
+
+ @Test
+ public void switchFragment_hidePreviousFragment() {
+ mMobileSettingsActivity.mPrevSubscriptionId = PREV_SUB_ID;
+
+ mMobileSettingsActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
+
+ verify(mFragmentTransaction).hide(mHideFragment);
+ }
+
+ @Test
+ public void switchFragment_fragmentExist_showItWithArguments() {
+ mMobileSettingsActivity.mPrevSubscriptionId = PREV_SUB_ID;
+
+ mMobileSettingsActivity.switchFragment(mShowFragment, CURRENT_SUB_ID);
+
+ assertThat(mShowFragment.getArguments().getInt(
+ MobileSettingsActivity.KEY_SUBSCRIPTION_ID)).isEqualTo(CURRENT_SUB_ID);
+ verify(mFragmentTransaction).show(mShowFragment);
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/network/ApnEditorTest.java b/tests/robotests/src/com/android/settings/network/ApnEditorTest.java
index 69d8638..b6242c3 100644
--- a/tests/robotests/src/com/android/settings/network/ApnEditorTest.java
+++ b/tests/robotests/src/com/android/settings/network/ApnEditorTest.java
@@ -19,11 +19,13 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.never;
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.ContentValues;
@@ -44,7 +46,6 @@
import com.android.settings.R;
import com.android.settings.network.ApnEditor.ApnData;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -55,6 +56,7 @@
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
@RunWith(SettingsRobolectricTestRunner.class)
public class ApnEditorTest {
@@ -450,6 +452,15 @@
assertThat(ApnEditor.formatInteger("not an int")).isEqualTo("not an int");
}
+ @Test
+ public void onCreate_noAction_shouldFinishAndNoCrash() {
+ doNothing().when(mApnEditorUT).addPreferencesFromResource(anyInt());
+
+ mApnEditorUT.onCreate(null);
+
+ verify(mApnEditorUT).finish();
+ }
+
private void initCursor() {
doReturn(2).when(mCursor).getColumnCount();
doReturn(Integer.valueOf(2)).when(mCursor).getInt(CURSOR_INTEGER_INDEX);
diff --git a/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java b/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java
new file mode 100644
index 0000000..5d8be5a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/ZenModeEventRuleSettingsTest.java
@@ -0,0 +1,119 @@
+/*
+ * 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.notification;
+
+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 static org.robolectric.RuntimeEnvironment.application;
+
+import android.app.NotificationManager;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+
+import com.android.settings.R;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+import org.robolectric.shadows.ShadowToast;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import androidx.fragment.app.FragmentActivity;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
+public class ZenModeEventRuleSettingsTest {
+
+ @Mock
+ private FragmentActivity mActivity;
+
+ @Mock
+ private Intent mIntent;
+
+ @Mock
+ private NotificationManager mNotificationManager;
+
+ private TestFragment mFragment;
+ private Context mContext;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+
+ ShadowApplication shadowApplication = ShadowApplication.getInstance();
+ shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNotificationManager);
+ mContext = shadowApplication.getApplicationContext();
+
+ mFragment = spy(new TestFragment());
+ mFragment.onAttach(application);
+
+ doReturn(mActivity).when(mFragment).getActivity();
+
+ Resources res = application.getResources();
+
+ doReturn(res).when(mFragment).getResources();
+ when(mActivity.getTheme()).thenReturn(res.newTheme());
+ when(mActivity.getIntent()).thenReturn(mIntent);
+ when(mActivity.getResources()).thenReturn(res);
+ when(mFragment.getContext()).thenReturn(mContext);
+ }
+
+ @Test
+ public void onCreate_noRuleId_shouldToastAndFinishAndNoCrash() {
+ final String expected = mContext.getString(R.string.zen_mode_rule_not_found_text);
+
+ mFragment.onCreate(null);
+
+ // verify the toast
+ assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(expected);
+
+ // verify the finish
+ verify(mActivity).finish();
+
+ //should not crash
+ }
+
+ @Test
+ public void testNoDuplicateCalendars() {
+ List<ZenModeEventRuleSettings.CalendarInfo> calendarsList = new ArrayList<>();
+ mFragment.addCalendar(1234, "calName", 1, calendarsList);
+ mFragment.addCalendar(1234, "calName", 2, calendarsList);
+ mFragment.addCalendar(1234, "calName", 3, calendarsList);
+ assertThat(calendarsList.size()).isEqualTo(1);
+ }
+
+ private static class TestFragment extends ZenModeEventRuleSettings {
+
+ @Override
+ protected Object getSystemService(final String name) {
+ return null;
+ }
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
index 9eaf217..b2cd043 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockGenericTest.java
@@ -16,76 +16,79 @@
package com.android.settings.password;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.RuntimeEnvironment.application;
+import static org.robolectric.Shadows.shadowOf;
import android.app.Activity;
-import android.content.Context;
+import android.app.admin.DevicePolicyManager;
import android.content.Intent;
-import android.os.Bundle;
import android.provider.Settings.Global;
-import androidx.fragment.app.FragmentActivity;
-import androidx.fragment.app.FragmentManager;
+import androidx.annotation.Nullable;
+import com.android.internal.widget.LockPatternUtils;
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.SettingsShadowResources.SettingsShadowTheme;
+import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
+import com.android.settings.testutils.shadow.ShadowStorageManager;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settings.testutils.shadow.ShadowUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
+@Config(
+ shadows = {
+ SettingsShadowResources.class,
+ SettingsShadowTheme.class,
+ ShadowLockPatternUtils.class,
+ ShadowStorageManager.class,
+ ShadowUserManager.class,
+ ShadowUtils.class
+ })
public class ChooseLockGenericTest {
- private Context mContext;
private ChooseLockGenericFragment mFragment;
- private FragmentActivity mActivity;
+ private ChooseLockGeneric mActivity;
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
- mFragment = spy(new ChooseLockGenericFragment());
- mActivity = mock(FragmentActivity.class);
- when(mFragment.getActivity()).thenReturn(mActivity);
- when(mFragment.getFragmentManager()).thenReturn(mock(FragmentManager.class));
- doNothing().when(mFragment).startActivity(any(Intent.class));
+ Global.putInt(
+ application.getContentResolver(),
+ Global.DEVICE_PROVISIONED, 1);
+ mFragment = new ChooseLockGenericFragment();
}
@After
public void tearDown() {
- Global.putInt(RuntimeEnvironment.application.getContentResolver(),
+ Global.putInt(
+ application.getContentResolver(),
Global.DEVICE_PROVISIONED, 1);
+ ShadowStorageManager.reset();
}
@Test
- @Config(shadows = SettingsShadowResources.SettingsShadowTheme.class)
public void onCreate_deviceNotProvisioned_shouldFinishActivity() {
- Global.putInt(mContext.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
- when(mActivity.getContentResolver()).thenReturn(mContext.getContentResolver());
- when(mActivity.getTheme()).thenReturn(mContext.getTheme());
- when(mFragment.getArguments()).thenReturn(Bundle.EMPTY);
+ Global.putInt(application.getContentResolver(), Global.DEVICE_PROVISIONED, 0);
- mFragment.onCreate(Bundle.EMPTY);
- verify(mActivity).finish();
+ initActivity(null);
+ assertThat(mActivity.isFinishing()).isTrue();
}
@Test
public void onActivityResult_nullIntentData_shouldNotCrash() {
- doNothing().when(mFragment).updatePreferencesOrFinish(anyBoolean());
-
+ initActivity(null);
mFragment.onActivityResult(
ChooseLockGenericFragment.CONFIRM_EXISTING_REQUEST, Activity.RESULT_OK,
null /* data */);
@@ -93,45 +96,90 @@
}
@Test
+ public void updatePreferencesOrFinish_passwordTypeSetPin_shouldStartChooseLockPassword() {
+ Intent intent = new Intent().putExtra(
+ LockPatternUtils.PASSWORD_TYPE_KEY,
+ DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+ initActivity(intent);
+
+ mFragment.updatePreferencesOrFinish(false /* isRecreatingActivity */);
+
+ assertThat(shadowOf(mActivity).getNextStartedActivity()).isNotNull();
+ }
+
+ @Test
+ public void updatePreferencesOrFinish_passwordTypeSetPinNotFbe_shouldNotStartChooseLock() {
+ ShadowStorageManager.setIsFileEncryptedNativeOrEmulated(false);
+ Intent intent = new Intent().putExtra(
+ LockPatternUtils.PASSWORD_TYPE_KEY,
+ DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+ initActivity(intent);
+
+ mFragment.updatePreferencesOrFinish(false /* isRecreatingActivity */);
+
+ assertThat(shadowOf(mActivity).getNextStartedActivity()).isNull();
+ }
+
+ @Test
public void onActivityResult_requestcode0_shouldNotFinish() {
+ initActivity(null);
+
mFragment.onActivityResult(
SearchFeatureProvider.REQUEST_CODE, Activity.RESULT_OK, null /* data */);
- verify(mFragment, never()).finish();
+ assertThat(mActivity.isFinishing()).isFalse();
}
@Test
public void onActivityResult_requestcode101_shouldFinish() {
+ initActivity(null);
+
mFragment.onActivityResult(
ChooseLockGenericFragment.ENABLE_ENCRYPTION_REQUEST, Activity.RESULT_OK,
null /* data */);
- verify(mFragment).finish();
+ assertThat(mActivity.isFinishing()).isTrue();
}
@Test
public void onActivityResult_requestcode102_shouldFinish() {
+ initActivity(null);
+
mFragment.onActivityResult(
ChooseLockGenericFragment.CHOOSE_LOCK_REQUEST, Activity.RESULT_OK, null /* data */);
- verify(mFragment).finish();
+ assertThat(mActivity.isFinishing()).isTrue();
}
@Test
public void onActivityResult_requestcode103_shouldFinish() {
+ initActivity(null);
+
mFragment.onActivityResult(
ChooseLockGenericFragment.CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST,
BiometricEnrollBase.RESULT_FINISHED, null /* data */);
- verify(mFragment).finish();
+ assertThat(mActivity.isFinishing()).isTrue();
}
@Test
public void onActivityResult_requestcode104_shouldFinish() {
+ initActivity(null);
+
mFragment.onActivityResult(
ChooseLockGenericFragment.SKIP_FINGERPRINT_REQUEST, Activity.RESULT_OK,
null /* data */);
- verify(mFragment).finish();
+ assertThat(mActivity.isFinishing()).isTrue();
+ }
+
+ private void initActivity(@Nullable Intent intent) {
+ if (intent == null) {
+ intent = new Intent();
+ }
+ intent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, false);
+ mActivity = Robolectric.buildActivity(ChooseLockGeneric.InternalActivity.class, intent)
+ .setup().get();
+ mActivity.getSupportFragmentManager().beginTransaction().add(mFragment, null).commitNow();
}
}
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java
index 76c9aba..3b38a56 100644
--- a/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockTypeDialogFragmentTest.java
@@ -28,19 +28,20 @@
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.password.ChooseLockTypeDialogFragment.OnLockTypeSelectedListener;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = {SettingsShadowResourcesImpl.class, ShadowAlertDialogCompat.class})
@@ -53,7 +54,8 @@
public void setUp() {
mContext = RuntimeEnvironment.application;
mFragment = new TestFragment();
- FragmentTestUtils.startFragment(mFragment);
+ FragmentController.setupFragment(mFragment, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
index af77ad8..67f7b0a 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
@@ -84,7 +84,7 @@
when(mFingerprintManager.preEnroll()).thenReturn(FINGERPRINT_CHALLENGE);
when(mPackageManager.hasSystemFeature(eq(FEATURE_FINGERPRINT))).thenReturn(true);
- when(mFaceManager.preEnroll()).thenReturn(FACE_CHALLENGE);
+ when(mFaceManager.generateChallenge()).thenReturn(FACE_CHALLENGE);
when(mPackageManager.hasSystemFeature(eq(FEATURE_FACE))).thenReturn(true);
}
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
index 3802a83..e586958 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
@@ -31,7 +31,6 @@
import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
import com.android.settings.password.ChooseLockPassword.IntentBuilder;
import com.android.settings.password.SetupChooseLockPassword.SetupChooseLockPasswordFragment;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
@@ -42,6 +41,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Shadows;
+import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
@@ -74,11 +74,12 @@
@Test
public void createActivity_shouldNotCrash() {
// Basic sanity test for activity created without crashing
- Robolectric.buildActivity(SetupChooseLockPassword.class,
+ final Intent intent =
SetupChooseLockPassword.modifyIntentForSetup(
application,
- new IntentBuilder(application).build()))
- .setup().get();
+ new IntentBuilder(application).build());
+
+ ActivityController.of(new SetupChooseLockPassword(), intent).setup().get();
}
@Test
@@ -119,7 +120,7 @@
intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
SetupChooseLockPassword activity =
- Robolectric.buildActivity(SetupChooseLockPassword.class, intent).setup().get();
+ ActivityController.of(new SetupChooseLockPassword(), intent).setup().get();
SetupChooseLockPasswordFragment fragment =
(SetupChooseLockPasswordFragment) activity.getSupportFragmentManager()
@@ -136,11 +137,12 @@
}
private SetupChooseLockPassword createSetupChooseLockPassword() {
- Intent intent = SetupChooseLockPassword.modifyIntentForSetup(
- application,
- new IntentBuilder(application).build());
+ final Intent intent =
+ SetupChooseLockPassword.modifyIntentForSetup(
+ application,
+ new IntentBuilder(application).build());
intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
- return Robolectric.buildActivity(SetupChooseLockPassword.class, intent).setup().get();
+ return ActivityController.of(new SetupChooseLockPassword(), intent).setup().get();
}
@Implements(ChooseLockGenericController.class)
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
index 39e69d5..0dcd31b 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPatternTest.java
@@ -21,6 +21,7 @@
import static org.robolectric.RuntimeEnvironment.application;
import android.content.ComponentName;
+import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.UserHandle;
import android.view.View;
@@ -36,7 +37,6 @@
import com.android.settings.SetupRedactionInterstitial;
import com.android.settings.password.ChooseLockPattern.ChooseLockPatternFragment;
import com.android.settings.password.ChooseLockPattern.IntentBuilder;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
@@ -47,6 +47,7 @@
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Shadows;
+import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowPackageManager;
import org.robolectric.util.ReflectionHelpers;
@@ -72,14 +73,13 @@
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
- mActivity = Robolectric.buildActivity(
- SetupChooseLockPattern.class,
+ final Intent intent =
SetupChooseLockPattern.modifyIntentForSetup(
application,
new IntentBuilder(application)
.setUserId(UserHandle.myUserId())
- .build()))
- .setup().get();
+ .build());
+ mActivity = ActivityController.of(new SetupChooseLockPattern(), intent).setup().get();
}
@Test
@@ -173,16 +173,17 @@
@Test
public void skipButton_shouldNotBeVisible_duringFingerprintFlow() {
- mActivity = Robolectric.buildActivity(
- SetupChooseLockPattern.class,
+ final Intent intent =
SetupChooseLockPattern.modifyIntentForSetup(
application,
new IntentBuilder(application)
.setUserId(UserHandle.myUserId())
.setForFingerprint(true)
- .build()))
- .setup().get();
+ .build());
+
+ mActivity = ActivityController.of(new SetupChooseLockPattern(), intent).setup().get();
Button skipButton = mActivity.findViewById(R.id.skip_button);
+
assertThat(skipButton).isNotNull();
assertThat(skipButton.getVisibility()).isEqualTo(View.GONE);
}
diff --git a/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java b/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
index 5e46c8c..0e4e5dc 100644
--- a/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupSkipDialogTest.java
@@ -22,7 +22,6 @@
import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;
import com.android.settings.testutils.shadow.SettingsShadowResourcesImpl;
@@ -32,6 +31,7 @@
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
diff --git a/tests/robotests/src/com/android/settings/search/DeviceIndexFeatureProviderTest.java b/tests/robotests/src/com/android/settings/search/DeviceIndexFeatureProviderTest.java
deleted file mode 100644
index b49ef1d..0000000
--- a/tests/robotests/src/com/android/settings/search/DeviceIndexFeatureProviderTest.java
+++ /dev/null
@@ -1,148 +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.search;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Activity;
-import android.app.job.JobScheduler;
-import android.os.Binder;
-import android.provider.Settings;
-
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-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.Robolectric;
-import org.robolectric.shadows.ShadowBinder;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class DeviceIndexFeatureProviderTest {
-
- @Mock
- private JobScheduler mJobScheduler;
- private DeviceIndexFeatureProvider mProvider;
- private Activity mActivity;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
- ShadowBinder.reset();
- FakeFeatureFactory.setupForTest();
- mActivity = spy(Robolectric.buildActivity(Activity.class).create().visible().get());
- mProvider = spy(new DeviceIndexFeatureProviderImpl());
- when(mActivity.getSystemService(JobScheduler.class)).thenReturn(mJobScheduler);
- }
-
- @After
- public void tearDown() {
- ShadowBinder.reset();
- }
-
- @Test
- public void updateIndex_disabled_shouldDoNothing() {
- when(mProvider.isIndexingEnabled()).thenReturn(false);
-
- mProvider.updateIndex(mActivity, false);
- verify(mJobScheduler, never()).schedule(any());
- }
-
- @Test
- public void updateIndex_enabled_unprovisioned_shouldDoNothing() {
- when(mProvider.isIndexingEnabled()).thenReturn(true);
- Settings.Global.putInt(mActivity.getContentResolver(),
- Settings.Global.DEVICE_PROVISIONED, 0);
-
- mProvider.updateIndex(mActivity, false);
-
- verify(mJobScheduler, never()).schedule(any());
- }
-
- @Test
- public void updateIndex_enabled_provisioned_shouldIndex() {
- Settings.Global.putInt(mActivity.getContentResolver(),
- Settings.Global.DEVICE_PROVISIONED, 1);
- when(mProvider.isIndexingEnabled()).thenReturn(true);
-
- mProvider.updateIndex(mActivity, false);
- verify(mJobScheduler).schedule(any());
- }
-
- @Test
- public void updateIndex_enabled_provisioned_newBuild_shouldIndex() {
- Settings.Global.putInt(mActivity.getContentResolver(),
- Settings.Global.DEVICE_PROVISIONED, 1);
- DeviceIndexFeatureProvider.setIndexState(mActivity);
- Settings.Global.putString(mActivity.getContentResolver(),
- DeviceIndexFeatureProvider.INDEX_VERSION, "new version");
- Settings.Global.putString(mActivity.getContentResolver(),
- DeviceIndexFeatureProvider.LANGUAGE.toString(),
- DeviceIndexFeatureProvider.INDEX_LANGUAGE);
- when(mProvider.isIndexingEnabled()).thenReturn(true);
-
- mProvider.updateIndex(mActivity, false);
- verify(mJobScheduler).schedule(any());
- }
-
- @Test
- public void updateIndex_enabled_provisioned_differentUid_shouldNotIndex() {
- Settings.Global.putInt(mActivity.getContentResolver(),
- Settings.Global.DEVICE_PROVISIONED, 1);
- when(mProvider.isIndexingEnabled()).thenReturn(true);
-
- ShadowBinder.setCallingUid(Binder.getCallingUid() + 2000);
-
- mProvider.updateIndex(mActivity, false);
- verify(mJobScheduler, never()).schedule(any());
- }
-
- @Test
- public void updateIndex_enabled_provisioned_newIndex_shouldIndex() {
- Settings.Global.putInt(mActivity.getContentResolver(),
- Settings.Global.DEVICE_PROVISIONED, 1);
- DeviceIndexFeatureProvider.setIndexState(mActivity);
- Settings.Global.putString(mActivity.getContentResolver(),
- DeviceIndexFeatureProvider.INDEX_LANGUAGE, "new language");
-
- when(mProvider.isIndexingEnabled()).thenReturn(true);
-
- mProvider.updateIndex(mActivity, false);
- verify(mJobScheduler).schedule(any());
- }
-
- @Test
- public void updateIndex_enabled_provisioned_sameBuild_sameLang_shouldNotIndex() {
- // Enabled
- when(mProvider.isIndexingEnabled()).thenReturn(true);
- // Provisioned
- Settings.Global.putInt(mActivity.getContentResolver(),
- Settings.Global.DEVICE_PROVISIONED, 1);
- // Same build and same language
- DeviceIndexFeatureProvider.setIndexState(mActivity);
-
- mProvider.updateIndex(mActivity, false);
-
- verify(mJobScheduler, never()).schedule(any());
- }
-}
diff --git a/tests/robotests/src/com/android/settings/search/DeviceIndexUpdateJobServiceTest.java b/tests/robotests/src/com/android/settings/search/DeviceIndexUpdateJobServiceTest.java
deleted file mode 100644
index 43ce966..0000000
--- a/tests/robotests/src/com/android/settings/search/DeviceIndexUpdateJobServiceTest.java
+++ /dev/null
@@ -1,144 +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.search;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.app.Activity;
-import android.content.ContentResolver;
-import android.net.Uri;
-
-import androidx.slice.Slice;
-import androidx.slice.SliceMetadata;
-import androidx.slice.SliceViewManager;
-
-import com.android.settings.slices.SettingsSliceProvider;
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class DeviceIndexUpdateJobServiceTest {
- private static final Uri BASE_URI = new Uri.Builder()
- .scheme(ContentResolver.SCHEME_CONTENT)
- .authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .build();
-
- private Activity mActivity;
- private DeviceIndexUpdateJobService mJob;
- private SliceViewManager mSliceManager;
-
- @Before
- public void setup() {
- FakeFeatureFactory.setupForTest();
- mActivity = spy(Robolectric.buildActivity(Activity.class).create().visible().get());
- mJob = spy(new DeviceIndexUpdateJobService());
- mSliceManager = mock(SliceViewManager.class);
-
- doReturn(mActivity.getPackageName()).when(mJob).getPackageName();
- doReturn(mSliceManager).when(mJob).getSliceViewManager();
- doNothing().when(mJob).jobFinished(null, false);
- }
-
- @Test
- public void testGetsSlices() {
- setSlices();
-
- mJob.updateIndex(null);
- verify(mSliceManager).getSliceDescendants(eq(BASE_URI));
- }
-
- @Test
- public void testIndexesSlices() {
- setSlices(genSlice("path1"), genSlice("path2"));
-
- mJob.mRunningJob = true;
- mJob.updateIndex(null);
- verify(mSliceManager).getSliceDescendants(eq(BASE_URI));
-
- DeviceIndexFeatureProvider indexFeatureProvider = FakeFeatureFactory.getFactory(mActivity)
- .getDeviceIndexFeatureProvider();
- verify(indexFeatureProvider, times(2)).index(any(), any(), any(), any(), any());
- }
-
- @Test
- public void testDoNotIndexWithoutTitle() {
- Slice testSlice = genSlice("path2");
- setSlices(genSlice("path1"), testSlice);
- doReturn(null).when(mJob).findTitle(testSlice, mJob.getMetadata(testSlice));
-
- mJob.mRunningJob = true;
- mJob.updateIndex(null);
- verify(mSliceManager).getSliceDescendants(eq(BASE_URI));
-
- DeviceIndexFeatureProvider indexFeatureProvider = FakeFeatureFactory.getFactory(mActivity)
- .getDeviceIndexFeatureProvider();
- verify(indexFeatureProvider, times(1)).index(any(), any(), any(), any(), any());
- }
-
- @Test
- public void testStopIndexing() {
- Slice testSlice = genSlice("path1");
- setSlices(testSlice, genSlice("path2"));
- mJob.mRunningJob = true;
-
- doAnswer(invocation -> {
- // Stop running after the first iteration
- mJob.mRunningJob = false;
- return testSlice;
- }).when(mJob).bindSliceSynchronous(mSliceManager, testSlice.getUri());
-
- mJob.updateIndex(null);
- verify(mSliceManager).getSliceDescendants(eq(BASE_URI));
-
- DeviceIndexFeatureProvider indexFeatureProvider = FakeFeatureFactory.getFactory(mActivity)
- .getDeviceIndexFeatureProvider();
- verify(indexFeatureProvider).clearIndex(any());
- verify(indexFeatureProvider, times(1)).index(any(), any(), any(), any(), any());
- }
-
- private Slice genSlice(String path) {
- return new Slice.Builder(BASE_URI.buildUpon().path(path).build()).build();
- }
-
- private void setSlices(Slice... slice) {
- List<Uri> mUris = new ArrayList<>();
- for (Slice slouse : slice) {
- SliceMetadata m = mock(SliceMetadata.class);
- mUris.add(slouse.getUri());
- doReturn(slouse).when(mJob).bindSliceSynchronous(mSliceManager, slouse.getUri());
- doReturn(m).when(mJob).getMetadata(slouse);
- doReturn(slouse.getUri().getPath()).when(mJob).findTitle(slouse, m);
- }
- when(mSliceManager.getSliceDescendants(BASE_URI)).thenReturn(mUris);
- }
-
-}
diff --git a/tests/robotests/src/com/android/settings/security/ConfigureKeyGuardDialogTest.java b/tests/robotests/src/com/android/settings/security/ConfigureKeyGuardDialogTest.java
index b7ff79c..fe7c559 100644
--- a/tests/robotests/src/com/android/settings/security/ConfigureKeyGuardDialogTest.java
+++ b/tests/robotests/src/com/android/settings/security/ConfigureKeyGuardDialogTest.java
@@ -22,12 +22,11 @@
import android.content.DialogInterface;
-import com.android.settings.testutils.FragmentController;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -36,7 +35,7 @@
@Test
public void displayDialog_clickPositiveButton_launchSetNewPassword() {
final FragmentController<ConfigureKeyGuardDialog> fragmentController =
- Robolectric.buildFragment(ConfigureKeyGuardDialog.class);
+ FragmentController.of(new ConfigureKeyGuardDialog());
final ConfigureKeyGuardDialog fragment = spy(fragmentController.get());
doNothing().when(fragment).startPasswordSetup();
fragmentController.create().start().resume();
diff --git a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
index 705c0eb..16e9cb7 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java
@@ -70,6 +70,7 @@
private final Class TOGGLE_CONTROLLER = FakeToggleController.class;
private final Class SLIDER_CONTROLLER = FakeSliderController.class;
private final Class CONTEXT_CONTROLLER = FakeContextOnlyPreferenceController.class;
+ private final boolean IS_DYNAMIC_SUMMARY_ALLOWED = false;
private final String INTENT_PATH = SettingsSlicesContract.PATH_SETTING_INTENT + "/" + KEY;
private final String ACTION_PATH = SettingsSlicesContract.PATH_SETTING_ACTION + "/" + KEY;
@@ -206,6 +207,19 @@
}
@Test
+ public void getDynamicSummary_allowDynamicSummary_returnsControllerSummary() {
+ final SliceData data = getDummyData(true /*isDynamicSummaryAllowed*/);
+ final FakePreferenceController controller = spy(
+ new FakePreferenceController(mContext, KEY));
+ final String controllerSummary = "new_Summary";
+ doReturn(controllerSummary).when(controller).getSummary();
+
+ final CharSequence summary = SliceBuilderUtils.getSubtitleText(mContext, controller, data);
+
+ assertThat(summary).isEqualTo(controllerSummary);
+ }
+
+ @Test
public void getDynamicSummary_returnsScreenTitle() {
final SliceData data = getDummyData();
final FakePreferenceController controller = new FakePreferenceController(mContext, KEY);
@@ -470,25 +484,31 @@
private SliceData getDummyData() {
return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE,
- ICON);
+ ICON, IS_DYNAMIC_SUMMARY_ALLOWED);
+ }
+
+ private SliceData getDummyData(boolean isDynamicSummaryAllowed) {
+ return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE,
+ ICON, isDynamicSummaryAllowed);
}
private SliceData getDummyData(Class prefController, int sliceType, int icon) {
return getDummyData(TOGGLE_CONTROLLER, SUMMARY, SliceData.SliceType.SWITCH, SCREEN_TITLE,
- icon);
+ icon, IS_DYNAMIC_SUMMARY_ALLOWED);
}
private SliceData getDummyData(String summary, String screenTitle) {
return getDummyData(TOGGLE_CONTROLLER, summary, SliceData.SliceType.SWITCH, screenTitle,
- ICON);
+ ICON, IS_DYNAMIC_SUMMARY_ALLOWED);
}
private SliceData getDummyData(Class prefController, int sliceType) {
- return getDummyData(prefController, SUMMARY, sliceType, SCREEN_TITLE, ICON);
+ return getDummyData(prefController, SUMMARY, sliceType, SCREEN_TITLE, ICON,
+ IS_DYNAMIC_SUMMARY_ALLOWED);
}
private SliceData getDummyData(Class prefController, String summary, int sliceType,
- String screenTitle, int icon) {
+ String screenTitle, int icon, boolean isDynamicSummaryAllowed) {
return new SliceData.Builder()
.setKey(KEY)
.setTitle(TITLE)
@@ -500,6 +520,7 @@
.setUri(URI)
.setPreferenceControllerClassName(prefController.getName())
.setSliceType(sliceType)
+ .setDynamicSummaryAllowed(isDynamicSummaryAllowed)
.build();
}
}
diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
index a7df5a7..83c35ba 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java
@@ -124,6 +124,7 @@
assertThat(fakeSlice.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
assertThat(fakeSlice.getSliceType()).isEqualTo(SliceData.SliceType.SLIDER);
assertThat(fakeSlice.isPlatformDefined()).isTrue(); // from XML
+ assertThat(fakeSlice.isDynamicSummaryAllowed()).isTrue(); // from XML
}
private void assertFakeA11ySlice(SliceData fakeSlice) {
diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataTest.java b/tests/robotests/src/com/android/settings/slices/SliceDataTest.java
index 0d91968..9adee07 100644
--- a/tests/robotests/src/com/android/settings/slices/SliceDataTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SliceDataTest.java
@@ -39,6 +39,7 @@
private final String PREF_CONTROLLER = "com.android.settings.slices.tester";
private final int SLICE_TYPE = SliceData.SliceType.SWITCH;
private final boolean IS_PLATFORM_DEFINED = true;
+ private final boolean IS_DYNAMIC_SUMMARY_ALLOWED = true;
@Test
public void testBuilder_buildsMatchingObject() {
@@ -53,7 +54,8 @@
.setUri(URI)
.setPreferenceControllerClassName(PREF_CONTROLLER)
.setSliceType(SLICE_TYPE)
- .setPlatformDefined(IS_PLATFORM_DEFINED);
+ .setPlatformDefined(IS_PLATFORM_DEFINED)
+ .setDynamicSummaryAllowed(IS_DYNAMIC_SUMMARY_ALLOWED);
SliceData data = builder.build();
@@ -68,6 +70,7 @@
assertThat(data.getPreferenceController()).isEqualTo(PREF_CONTROLLER);
assertThat(data.getSliceType()).isEqualTo(SLICE_TYPE);
assertThat(data.isPlatformDefined()).isEqualTo(IS_PLATFORM_DEFINED);
+ assertThat(data.isDynamicSummaryAllowed()).isEqualTo(IS_DYNAMIC_SUMMARY_ALLOWED);
}
@Test(expected = SliceData.InvalidSliceDataException.class)
@@ -216,7 +219,7 @@
}
@Test
- public void testEquality_identicalObjects() {
+ public void testBuilder_noDynamicSummaryAllowed_buildsMatchingObject() {
SliceData.Builder builder = new SliceData.Builder()
.setKey(KEY)
.setTitle(TITLE)
@@ -227,6 +230,32 @@
.setUri(URI)
.setPreferenceControllerClassName(PREF_CONTROLLER);
+ SliceData data = builder.build();
+
+ assertThat(data.getKey()).isEqualTo(KEY);
+ assertThat(data.getTitle()).isEqualTo(TITLE);
+ assertThat(data.getSummary()).isEqualTo(SUMMARY);
+ assertThat(data.getScreenTitle()).isEqualTo(SCREEN_TITLE);
+ assertThat(data.getIconResource()).isEqualTo(ICON);
+ assertThat(data.getFragmentClassName()).isEqualTo(FRAGMENT_NAME);
+ assertThat(data.getUri()).isEqualTo(URI);
+ assertThat(data.getPreferenceController()).isEqualTo(PREF_CONTROLLER);
+ assertThat(data.isDynamicSummaryAllowed()).isFalse();
+ }
+
+ @Test
+ public void testEquality_identicalObjects() {
+ SliceData.Builder builder = new SliceData.Builder()
+ .setKey(KEY)
+ .setTitle(TITLE)
+ .setSummary(SUMMARY)
+ .setScreenTitle(SCREEN_TITLE)
+ .setIcon(ICON)
+ .setFragmentName(FRAGMENT_NAME)
+ .setUri(URI)
+ .setPreferenceControllerClassName(PREF_CONTROLLER)
+ .setDynamicSummaryAllowed(IS_DYNAMIC_SUMMARY_ALLOWED);
+
SliceData dataOne = builder.build();
SliceData dataTwo = builder.build();
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
index bea5e89..949d151 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseAccessorTest.java
@@ -97,6 +97,45 @@
assertThat(data.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_NAME);
assertThat(data.getUri()).isNull();
assertThat(data.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
+ assertThat(data.isDynamicSummaryAllowed()).isFalse(); /* default value */
+ }
+
+ @Test
+ public void testGetSliceDataFromKey_allowDynamicSummary_validSliceReturned() {
+ String key = "key";
+ insertSpecialCase(key, true /* isPlatformSlice */, true /* isDynamicSummaryAllowed */);
+
+ SliceData data = mAccessor.getSliceDataFromKey(key);
+
+ assertThat(data.getKey()).isEqualTo(key);
+ assertThat(data.getTitle()).isEqualTo(FAKE_TITLE);
+ assertThat(data.getSummary()).isEqualTo(FAKE_SUMMARY);
+ assertThat(data.getScreenTitle()).isEqualTo(FAKE_SCREEN_TITLE);
+ assertThat(data.getKeywords()).isEqualTo(FAKE_KEYWORDS);
+ assertThat(data.getIconResource()).isEqualTo(FAKE_ICON);
+ assertThat(data.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_NAME);
+ assertThat(data.getUri()).isNull();
+ assertThat(data.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
+ assertThat(data.isDynamicSummaryAllowed()).isTrue();
+ }
+
+ @Test
+ public void testGetSliceDataFromKey_doNotAllowDynamicSummary_validSliceReturned() {
+ String key = "key";
+ insertSpecialCase(key, true /* isPlatformSlice */, false /* isDynamicSummaryAllowed */);
+
+ SliceData data = mAccessor.getSliceDataFromKey(key);
+
+ assertThat(data.getKey()).isEqualTo(key);
+ assertThat(data.getTitle()).isEqualTo(FAKE_TITLE);
+ assertThat(data.getSummary()).isEqualTo(FAKE_SUMMARY);
+ assertThat(data.getScreenTitle()).isEqualTo(FAKE_SCREEN_TITLE);
+ assertThat(data.getKeywords()).isEqualTo(FAKE_KEYWORDS);
+ assertThat(data.getIconResource()).isEqualTo(FAKE_ICON);
+ assertThat(data.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_NAME);
+ assertThat(data.getUri()).isNull();
+ assertThat(data.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME);
+ assertThat(data.isDynamicSummaryAllowed()).isFalse();
}
@Test(expected = IllegalStateException.class)
@@ -198,6 +237,11 @@
}
private void insertSpecialCase(String key, boolean isPlatformSlice) {
+ insertSpecialCase(key, isPlatformSlice, false /* isDynamicSummaryAllowed */);
+ }
+
+ private void insertSpecialCase(String key, boolean isPlatformSlice,
+ boolean isDynamicSummaryAllowed) {
ContentValues values = new ContentValues();
values.put(SlicesDatabaseHelper.IndexColumns.KEY, key);
values.put(SlicesDatabaseHelper.IndexColumns.TITLE, FAKE_TITLE);
@@ -208,6 +252,8 @@
values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, FAKE_FRAGMENT_NAME);
values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, FAKE_CONTROLLER_NAME);
values.put(SlicesDatabaseHelper.IndexColumns.PLATFORM_SLICE, isPlatformSlice);
+ values.put(SlicesDatabaseHelper.IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
+ isDynamicSummaryAllowed);
values.put(SlicesDatabaseHelper.IndexColumns.SLICE_TYPE, SliceData.SliceType.INTENT);
mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values);
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java
index 602a7fd..a00d343 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java
@@ -73,6 +73,7 @@
IndexColumns.CONTROLLER,
IndexColumns.PLATFORM_SLICE,
IndexColumns.SLICE_TYPE,
+ IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE,
};
assertThat(columnNames).isEqualTo(expectedNames);
diff --git a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
index b823105..c92ee91 100644
--- a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
+++ b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java
@@ -53,6 +53,7 @@
private final Uri URI = Uri.parse("content://com.android.settings.slices/test");
private final String PREF_CONTROLLER = "com.android.settings.slices.tester";
private final boolean PLATFORM_DEFINED = true;
+ private final boolean IS_DYNAMIC_SUMMARY_ALLOWED = true;
private final int SLICE_TYPE = SliceData.SliceType.SLIDER;
private Context mContext;
@@ -131,6 +132,9 @@
1 /* true */);
assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE))).isEqualTo(
SLICE_TYPE);
+ assertThat(cursor.getInt(
+ cursor.getColumnIndex(IndexColumns.ALLOW_DYNAMIC_SUMMARY_IN_SLICE))).isEqualTo(
+ 1 /* true */);
cursor.moveToNext();
}
}
@@ -154,7 +158,8 @@
.setUri(URI)
.setPreferenceControllerClassName(PREF_CONTROLLER)
.setPlatformDefined(PLATFORM_DEFINED)
- .setSliceType(SLICE_TYPE);
+ .setSliceType(SLICE_TYPE)
+ .setDynamicSummaryAllowed(IS_DYNAMIC_SUMMARY_ALLOWED);
for (int i = 0; i < KEYS.length; i++) {
builder.setKey(KEYS[i]).setTitle(TITLES[i]);
diff --git a/tests/robotests/src/com/android/settings/support/SupportPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/support/SupportPreferenceControllerTest.java
new file mode 100644
index 0000000..d805047
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/support/SupportPreferenceControllerTest.java
@@ -0,0 +1,78 @@
+/*
+ * 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.support;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.verify;
+
+import android.app.Activity;
+
+import androidx.preference.Preference;
+
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.util.ReflectionHelpers;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+public class SupportPreferenceControllerTest {
+
+
+ private Activity mActivity;
+ private FakeFeatureFactory mFeatureFactory;
+ private Preference mPreference;
+
+ @Before
+ public void setUp() {
+ mActivity = Robolectric.setupActivity(Activity.class);
+ mFeatureFactory = FakeFeatureFactory.setupForTest();
+ mPreference = new Preference(mActivity);
+ mPreference.setKey("test_key");
+ }
+
+ @Test
+ public void getAvailability_noSupport_unavailable() {
+ ReflectionHelpers.setField(mFeatureFactory, "supportFeatureProvider", null);
+ assertThat(new SupportPreferenceController(mActivity, "test_key").getAvailabilityStatus())
+ .isEqualTo(UNSUPPORTED_ON_DEVICE);
+ }
+
+ @Test
+ public void getAvailability_hasSupport_available() {
+ assertThat(new SupportPreferenceController(mActivity, "test_key").getAvailabilityStatus())
+ .isEqualTo(AVAILABLE);
+ }
+
+ @Test
+ public void handlePreferenceTreeClick_shouldLaunchSupport() {
+ final SupportPreferenceController controller = new SupportPreferenceController(mActivity,
+ mPreference.getKey());
+ controller.setActivity(mActivity);
+
+ assertThat(controller.handlePreferenceTreeClick(mPreference)).isTrue();
+ verify(mFeatureFactory.supportFeatureProvider).startSupport(mActivity);
+ }
+
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
index 39d4417..24db829 100644
--- a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -33,7 +33,6 @@
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SupportFeatureProvider;
import com.android.settings.overlay.SurveyFeatureProvider;
-import com.android.settings.search.DeviceIndexFeatureProvider;
import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.security.SecurityFeatureProvider;
import com.android.settings.slices.SlicesFeatureProvider;
@@ -62,7 +61,6 @@
public final UserFeatureProvider userFeatureProvider;
public final AssistGestureFeatureProvider assistGestureFeatureProvider;
public final AccountFeatureProvider mAccountFeatureProvider;
- public final DeviceIndexFeatureProvider deviceIndexFeatureProvider;
public SlicesFeatureProvider slicesFeatureProvider;
public SearchFeatureProvider searchFeatureProvider;
@@ -104,7 +102,6 @@
assistGestureFeatureProvider = mock(AssistGestureFeatureProvider.class);
slicesFeatureProvider = mock(SlicesFeatureProvider.class);
mAccountFeatureProvider = mock(AccountFeatureProvider.class);
- deviceIndexFeatureProvider = mock(DeviceIndexFeatureProvider.class);
}
@Override
@@ -186,9 +183,4 @@
public AccountFeatureProvider getAccountFeatureProvider() {
return mAccountFeatureProvider;
}
-
- @Override
- public DeviceIndexFeatureProvider getDeviceIndexFeatureProvider() {
- return deviceIndexFeatureProvider;
- }
}
diff --git a/tests/robotests/src/com/android/settings/testutils/FragmentController.java b/tests/robotests/src/com/android/settings/testutils/FragmentController.java
deleted file mode 100644
index 63c68b1..0000000
--- a/tests/robotests/src/com/android/settings/testutils/FragmentController.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.testutils;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.widget.LinearLayout;
-
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-
-import org.robolectric.android.controller.ActivityController;
-import org.robolectric.android.controller.ComponentController;
-import org.robolectric.util.ReflectionHelpers;
-
-/**
- * Controller class for driving fragment lifecycles, similar to {@link ActivityController}.
- */
-// TODO(b/111195167) - Duplicated from org.robolectric.android.controller.FragmentController.
-@Deprecated
-public class FragmentController<F extends Fragment> extends
- ComponentController<FragmentController<F>, F> {
- private final F fragment;
- private final ActivityController<? extends FragmentActivity> activityController;
-
- public static <F extends Fragment> FragmentController<F> of(F fragment) {
- return of(fragment, FragmentControllerActivity.class, null, null);
- }
-
- public static <F extends Fragment> FragmentController<F> of(F fragment,
- Class<? extends FragmentActivity> activityClass) {
- return of(fragment, activityClass, null, null);
- }
-
- public static <F extends Fragment> FragmentController<F> of(F fragment, Intent intent) {
- return new FragmentController<>(fragment, FragmentControllerActivity.class, intent);
- }
-
- public static <F extends Fragment> FragmentController<F> of(F fragment, Bundle arguments) {
- return new FragmentController<>(fragment, FragmentControllerActivity.class, arguments);
- }
-
- public static <F extends Fragment> FragmentController<F> of(F fragment, Intent intent,
- Bundle arguments) {
- return new FragmentController<>(fragment, FragmentControllerActivity.class, intent,
- arguments);
- }
-
- public static <F extends Fragment> FragmentController<F> of(F fragment,
- Class<? extends FragmentActivity> activityClass, Intent intent) {
- return new FragmentController<>(fragment, activityClass, intent);
- }
-
- public static <F extends Fragment> FragmentController<F> of(F fragment,
- Class<? extends FragmentActivity> activityClass, Bundle arguments) {
- return new FragmentController<>(fragment, activityClass, arguments);
- }
-
- public static <F extends Fragment> FragmentController<F> of(F fragment,
- Class<? extends FragmentActivity> activityClass,
- Intent intent, Bundle arguments) {
- return new FragmentController<>(fragment, activityClass, intent, arguments);
- }
-
- private FragmentController(F fragment, Class<? extends FragmentActivity> activityClass,
- Intent intent) {
- this(fragment, activityClass, intent, null);
- }
-
- private FragmentController(F fragment, Class<? extends FragmentActivity> activityClass,
- Bundle arguments) {
- this(fragment, activityClass, null, arguments);
- }
-
- private FragmentController(F fragment, Class<? extends FragmentActivity> activityClass,
- Intent intent, Bundle arguments) {
- super(fragment, intent);
- this.fragment = fragment;
- if (arguments != null) {
- this.fragment.setArguments(arguments);
- }
- this.activityController = ActivityController.of(
- ReflectionHelpers.callConstructor(activityClass), intent);
- }
-
- /**
- * Creates the activity with {@link Bundle} and adds the fragment to the view with ID {@code
- * contentViewId}.
- */
- public FragmentController<F> create(final int contentViewId, final Bundle bundle) {
- shadowMainLooper.runPaused(new Runnable() {
- @Override
- public void run() {
- activityController.create(
- bundle).get().getSupportFragmentManager().beginTransaction().add(
- contentViewId, fragment).commit();
- }
- });
- return this;
- }
-
- /**
- * Creates the activity with {@link Bundle} and adds the fragment to it. Note that the fragment
- * will be added to the view with ID 1.
- */
- public FragmentController<F> create(Bundle bundle) {
- return create(1, bundle);
- }
-
- @Override
- public FragmentController<F> create() {
- return create(null);
- }
-
- @Override
- public FragmentController<F> destroy() {
- shadowMainLooper.runPaused(new Runnable() {
- @Override
- public void run() {
- activityController.destroy();
- }
- });
- return this;
- }
-
- public FragmentController<F> start() {
- shadowMainLooper.runPaused(new Runnable() {
- @Override
- public void run() {
- activityController.start();
- }
- });
- return this;
- }
-
- public FragmentController<F> resume() {
- shadowMainLooper.runPaused(new Runnable() {
- @Override
- public void run() {
- activityController.resume();
- }
- });
- return this;
- }
-
- public FragmentController<F> pause() {
- shadowMainLooper.runPaused(new Runnable() {
- @Override
- public void run() {
- activityController.pause();
- }
- });
- return this;
- }
-
- public FragmentController<F> visible() {
- shadowMainLooper.runPaused(new Runnable() {
- @Override
- public void run() {
- activityController.visible();
- }
- });
- return this;
- }
-
- public FragmentController<F> stop() {
- shadowMainLooper.runPaused(new Runnable() {
- @Override
- public void run() {
- activityController.stop();
- }
- });
- return this;
- }
-
- public FragmentController<F> saveInstanceState(final Bundle outState) {
- shadowMainLooper.runPaused(new Runnable() {
- @Override
- public void run() {
- activityController.saveInstanceState(outState);
- }
- });
- return this;
- }
-
- private static class FragmentControllerActivity extends FragmentActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- LinearLayout view = new LinearLayout(this);
- view.setId(1);
-
- setContentView(view);
- }
- }
-}
diff --git a/tests/robotests/src/com/android/settings/testutils/Robolectric.java b/tests/robotests/src/com/android/settings/testutils/Robolectric.java
deleted file mode 100644
index 549aad8..0000000
--- a/tests/robotests/src/com/android/settings/testutils/Robolectric.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.testutils;
-
-
-import android.app.IntentService;
-import android.app.Service;
-import android.app.backup.BackupAgent;
-import android.content.ContentProvider;
-import android.content.Intent;
-import android.os.Bundle;
-import android.util.AttributeSet;
-import android.view.View;
-
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentActivity;
-
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.android.XmlResourceParserImpl;
-import org.robolectric.android.controller.ActivityController;
-import org.robolectric.android.controller.BackupAgentController;
-import org.robolectric.android.controller.ContentProviderController;
-import org.robolectric.android.controller.IntentServiceController;
-import org.robolectric.android.controller.ServiceController;
-import org.robolectric.res.ResName;
-import org.robolectric.res.ResourceTable;
-import org.robolectric.shadows.ShadowApplication;
-import org.robolectric.util.ReflectionHelpers;
-import org.robolectric.util.Scheduler;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-// TODO(b/111195450) - Duplicated from org.robolectric.Robolectric.
-@Deprecated
-public class Robolectric {
-
- /**
- * This method is internal and shouldn't be called by developers.
- */
- @Deprecated
- public static void reset() {
- // No-op- is now handled in the test runner. Users should not be calling this method anyway.
- }
-
- public static <T extends Service> ServiceController<T> buildService(Class<T> serviceClass) {
- return buildService(serviceClass, null);
- }
-
- public static <T extends Service> ServiceController<T> buildService(Class<T> serviceClass,
- Intent intent) {
- return ServiceController.of(ReflectionHelpers.callConstructor(serviceClass), intent);
- }
-
- public static <T extends Service> T setupService(Class<T> serviceClass) {
- return buildService(serviceClass).create().get();
- }
-
- public static <T extends IntentService> IntentServiceController<T> buildIntentService(
- Class<T> serviceClass) {
- return buildIntentService(serviceClass, null);
- }
-
- public static <T extends IntentService> IntentServiceController<T> buildIntentService(
- Class<T> serviceClass, Intent intent) {
- return IntentServiceController.of(ReflectionHelpers.callConstructor(serviceClass,
- new ReflectionHelpers.ClassParameter<String>(String.class, "IntentService")),
- intent);
- }
-
- public static <T extends IntentService> T setupIntentService(Class<T> serviceClass) {
- return buildIntentService(serviceClass).create().get();
- }
-
- public static <T extends ContentProvider> ContentProviderController<T> buildContentProvider(
- Class<T> contentProviderClass) {
- return ContentProviderController.of(
- ReflectionHelpers.callConstructor(contentProviderClass));
- }
-
- public static <T extends ContentProvider> T setupContentProvider(
- Class<T> contentProviderClass) {
- return buildContentProvider(contentProviderClass).create().get();
- }
-
- public static <T extends ContentProvider> T setupContentProvider(Class<T> contentProviderClass,
- String authority) {
- return buildContentProvider(contentProviderClass).create(authority).get();
- }
-
- public static <T extends FragmentActivity> ActivityController<T> buildActivity(
- Class<T> activityClass) {
- return buildActivity(activityClass, null);
- }
-
- public static <T extends FragmentActivity> ActivityController<T> buildActivity(
- Class<T> activityClass, Intent intent) {
- return ActivityController.of(ReflectionHelpers.callConstructor(activityClass), intent);
- }
-
- public static <T extends FragmentActivity> T setupActivity(Class<T> activityClass) {
- return buildActivity(activityClass).setup().get();
- }
-
- public static <T extends Fragment> FragmentController<T> buildFragment(Class<T> fragmentClass) {
- return FragmentController.of(ReflectionHelpers.callConstructor(fragmentClass));
- }
-
- public static <T extends Fragment> FragmentController<T> buildFragment(Class<T> fragmentClass,
- Bundle arguments) {
- return FragmentController.of(ReflectionHelpers.callConstructor(fragmentClass), arguments);
- }
-
- public static <T extends Fragment> FragmentController<T> buildFragment(Class<T> fragmentClass,
- Class<? extends FragmentActivity> activityClass) {
- return FragmentController.of(ReflectionHelpers.callConstructor(fragmentClass),
- activityClass);
- }
-
- public static <T extends Fragment> FragmentController<T> buildFragment(Class<T> fragmentClass,
- Intent intent) {
- return FragmentController.of(ReflectionHelpers.callConstructor(fragmentClass), intent);
- }
-
- public static <T extends Fragment> FragmentController<T> buildFragment(Class<T> fragmentClass,
- Intent intent,
- Bundle arguments) {
- return FragmentController.of(ReflectionHelpers.callConstructor(fragmentClass), intent,
- arguments);
- }
-
- public static <T extends Fragment> FragmentController<T> buildFragment(Class<T> fragmentClass,
- Class<? extends FragmentActivity> activityClass,
- Intent intent) {
- return FragmentController.of(ReflectionHelpers.callConstructor(fragmentClass),
- activityClass, intent);
- }
-
- public static <T extends Fragment> FragmentController<T> buildFragment(Class<T> fragmentClass,
- Class<? extends FragmentActivity> activityClass,
- Bundle arguments) {
- return FragmentController.of(ReflectionHelpers.callConstructor(fragmentClass),
- activityClass, arguments);
- }
-
- public static <T extends Fragment> FragmentController<T> buildFragment(Class<T> fragmentClass,
- Class<? extends FragmentActivity> activityClass,
- Intent intent,
- Bundle arguments) {
- return FragmentController.of(ReflectionHelpers.callConstructor(fragmentClass),
- activityClass, intent, arguments);
- }
-
- public static <T extends BackupAgent> BackupAgentController<T> buildBackupAgent(
- Class<T> backupAgentClass) {
- return BackupAgentController.of(ReflectionHelpers.callConstructor(backupAgentClass));
- }
-
- public static <T extends BackupAgent> T setupBackupAgent(Class<T> backupAgentClass) {
- return buildBackupAgent(backupAgentClass).create().get();
- }
-
- /**
- * Allows for the programatic creation of an {@link AttributeSet} useful for testing
- * {@link View} classes without
- * the need for creating XML snippets.
- */
- public static AttributeSetBuilder buildAttributeSet() {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- factory.setIgnoringComments(true);
- factory.setIgnoringElementContentWhitespace(true);
- Document document;
- try {
- DocumentBuilder documentBuilder = factory.newDocumentBuilder();
- document = documentBuilder.newDocument();
- Element dummy = document.createElementNS("http://schemas.android.com/apk/res/" +
- RuntimeEnvironment.application.getPackageName(), "dummy");
- document.appendChild(dummy);
- } catch (ParserConfigurationException e) {
- throw new RuntimeException(e);
- }
- return new AttributeSetBuilder(document, RuntimeEnvironment.getCompileTimeResourceTable());
- }
-
- public static class AttributeSetBuilder {
-
- private Document doc;
- private ResourceTable appResourceTable;
-
- AttributeSetBuilder(Document doc, ResourceTable resourceTable) {
- this.doc = doc;
- this.appResourceTable = resourceTable;
- }
-
- public AttributeSetBuilder addAttribute(int resId, String value) {
- ResName resName = appResourceTable.getResName(resId);
- if ("style".equals(resName.name)) {
- ((Element) doc.getFirstChild()).setAttribute(resName.name, value);
- } else {
- ((Element) doc.getFirstChild()).setAttributeNS(resName.getNamespaceUri(),
- resName.packageName + ":" + resName.name, value);
- }
- return this;
- }
-
- public AttributeSetBuilder setStyleAttribute(String value) {
- ((Element) doc.getFirstChild()).setAttribute("style", value);
- return this;
- }
-
- public AttributeSet build() {
- XmlResourceParserImpl parser = new XmlResourceParserImpl(doc, null,
- RuntimeEnvironment.application.getPackageName(),
- RuntimeEnvironment.application.getPackageName(), appResourceTable);
- try {
- parser.next(); // Root document element
- parser.next(); // "dummy" element
- } catch (Exception e) {
- throw new IllegalStateException(
- "Expected single dummy element in the document to contain the attributes.",
- e);
- }
-
- return parser;
- }
- }
-
- /**
- * Return the foreground scheduler (e.g. the UI thread scheduler).
- *
- * @return Foreground scheduler.
- */
- public static Scheduler getForegroundThreadScheduler() {
- return ShadowApplication.getInstance().getForegroundThreadScheduler();
- }
-
- /**
- * Execute all runnables that have been enqueued on the foreground scheduler.
- */
- public static void flushForegroundThreadScheduler() {
- getForegroundThreadScheduler().advanceToLastPostedRunnable();
- }
-
- /**
- * Return the background scheduler.
- *
- * @return Background scheduler.
- */
- public static Scheduler getBackgroundThreadScheduler() {
- return ShadowApplication.getInstance().getBackgroundThreadScheduler();
- }
-
- /**
- * Execute all runnables that have been enqueued on the background scheduler.
- */
- public static void flushBackgroundThreadScheduler() {
- getBackgroundThreadScheduler().advanceToLastPostedRunnable();
- }
-}
-
diff --git a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
index 008d7f7..49197e8 100644
--- a/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
+++ b/tests/robotests/src/com/android/settings/testutils/SettingsRobolectricTestRunner.java
@@ -82,6 +82,8 @@
paths.add(new ResourcePath(null,
Fs.fromURL(new URL("file:frameworks/base/packages/SettingsLib/RestrictedLockUtils/res/")), null));
paths.add(new ResourcePath(null,
+ Fs.fromURL(new URL("file:frameworks/base/packages/SettingsLib/SearchWidget/res/")), null));
+ paths.add(new ResourcePath(null,
Fs.fromURL(new URL("file:frameworks/base/core/res/res")), null));
paths.add(new ResourcePath(null,
Fs.fromURL(new URL("file:frameworks/opt/setupwizard/library/main/res")), null));
@@ -96,7 +98,9 @@
paths.add(new ResourcePath(null,
Fs.fromURL(new URL("file:out/soong/.intermediates/prebuilts/sdk/current/androidx/androidx.cardview_cardview-nodeps/android_common/aar/res")), null));
paths.add(new ResourcePath(null,
- Fs.fromURL(new URL("file:out/soong/.intermediates/prebuilts/sdk/current/androidx/androidx.slice_slice-view-nodeps/android_common/aar/res")), null));
+ Fs.fromURL(new URL("file:out/soong/.intermediates/prebuilts/sdk/current/androidx/androidx.slice_slice-view-nodeps/android_common/aar/res")), null));
+ paths.add(new ResourcePath(null,
+ Fs.fromURL(new URL("file:out/soong/.intermediates/prebuilts/sdk/current/androidx/androidx.preference_preference-nodeps/android_common/aar/res")), null));
} catch (MalformedURLException e) {
throw new RuntimeException("SettingsRobolectricTestRunner failure", e);
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
index 37b8635..a68c5d3 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
@@ -209,6 +209,10 @@
node.setNodeValue("@style/FingerprintLayoutTheme");
} else if (attributeValue.startsWith("@*android:string")) {
node.setNodeValue("PLACEHOLDER");
+ } else if (attributeValue.startsWith("@*android:dimen")) {
+ node.setNodeValue("321dp");
+ } else if (attributeValue.startsWith("@*android:drawable")) {
+ node.setNodeValue("");
}
}
}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowStorageManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowStorageManager.java
index 4b60c16..366dd91 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowStorageManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowStorageManager.java
@@ -30,6 +30,7 @@
private static boolean sIsUnmountCalled;
private static boolean sIsForgetCalled;
+ private static boolean sIsFileEncryptedNativeOrEmulated = true;
public static boolean isUnmountCalled() {
return sIsUnmountCalled;
@@ -43,7 +44,7 @@
public static void reset() {
sIsUnmountCalled = false;
sIsForgetCalled = false;
-
+ sIsFileEncryptedNativeOrEmulated = true;
}
@Implementation
@@ -71,6 +72,15 @@
sIsForgetCalled = true;
}
+ @Implementation
+ protected static boolean isFileEncryptedNativeOrEmulated() {
+ return sIsFileEncryptedNativeOrEmulated;
+ }
+
+ public static void setIsFileEncryptedNativeOrEmulated(boolean encrypted) {
+ sIsFileEncryptedNativeOrEmulated = encrypted;
+ }
+
private VolumeInfo createVolumeInfo(String volumeId) {
final DiskInfo disk = new DiskInfo("fakeid", 0);
return new VolumeInfo(volumeId, 0, disk, "guid");
diff --git a/tests/robotests/src/com/android/settings/users/EditUserInfoControllerTest.java b/tests/robotests/src/com/android/settings/users/EditUserInfoControllerTest.java
index caff2fa..97b3e69 100644
--- a/tests/robotests/src/com/android/settings/users/EditUserInfoControllerTest.java
+++ b/tests/robotests/src/com/android/settings/users/EditUserInfoControllerTest.java
@@ -39,7 +39,6 @@
import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -50,6 +49,7 @@
import org.mockito.Answers;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
@RunWith(SettingsRobolectricTestRunner.class)
@@ -94,7 +94,7 @@
MockitoAnnotations.initMocks(this);
mUserManager = ShadowUserManager.getShadow();
mUserManager.setUserInfo(0, mUserInfo);
- mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
+ mActivity = spy(ActivityController.of(new FragmentActivity()).get());
when(mFragment.getActivity()).thenReturn(mActivity);
when(mActivity.getLayoutInflater()).thenReturn(mInflater);
when(mInflater.inflate(eq(R.layout.edit_user_info_dialog_content), any())).thenReturn(
diff --git a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
index 49a4406..62135fe 100644
--- a/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/users/UserSettingsTest.java
@@ -29,7 +29,6 @@
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.SharedPreferences;
@@ -52,7 +51,6 @@
import com.android.settings.R;
import com.android.settings.dashboard.SummaryLoader;
-import com.android.settings.testutils.Robolectric;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -66,6 +64,7 @@
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment;
+import org.robolectric.android.controller.ActivityController;
import org.robolectric.annotation.Config;
import org.robolectric.util.ReflectionHelpers;
@@ -103,7 +102,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
- mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
+ mActivity = spy(ActivityController.of(new FragmentActivity()).get());
mContext = spy(RuntimeEnvironment.application);
mFragment = spy(new UserSettings());
ReflectionHelpers.setField(mFragment, "mAddUserWhenLockedPreferenceController",
diff --git a/tests/robotests/src/com/android/settings/wifi/AddNetworkFragmentTest.java b/tests/robotests/src/com/android/settings/wifi/AddNetworkFragmentTest.java
index 097b582..2b4b4be 100644
--- a/tests/robotests/src/com/android/settings/wifi/AddNetworkFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/AddNetworkFragmentTest.java
@@ -26,13 +26,13 @@
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
-import com.android.settingslib.testutils.FragmentTestUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.androidx.fragment.FragmentController;
@RunWith(SettingsRobolectricTestRunner.class)
@Config(shadows = ShadowConnectivityManager.class)
@@ -44,7 +44,7 @@
public void setUp() {
MockitoAnnotations.initMocks(this);
mAddNetworkFragment = spy(new AddNetworkFragment());
- FragmentTestUtils.startFragment(mAddNetworkFragment);
+ FragmentController.setupFragment(mAddNetworkFragment);
}
@Test
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
index 54be773..471c991 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
@@ -57,11 +57,10 @@
@Mock
private Context mContext;
@Mock
- private View mView;
- @Mock
private AccessPoint mAccessPoint;
@Mock
private KeyStore mKeyStore;
+ private View mView;
private Spinner mHiddenSettingsSpinner;
public WifiConfigController mController;
@@ -74,6 +73,7 @@
private static final String SHORT_PSK = "abcdefg";
// Valid PSK pass phrase
private static final String GOOD_PSK = "abcdefghijklmnopqrstuvwxyz";
+ private static final String GOOD_SSID = "abc";
private static final int DHCP = 0;
@Before
@@ -185,6 +185,9 @@
@Test
public void isSubmittable_EapToPskWithValidPassword_shouldReturnTrue() {
+ mController = new TestWifiConfigController(mConfigUiBase, mView, null,
+ WifiConfigUiBase.MODE_CONNECT);
+ final TextView ssid = mView.findViewById(R.id.ssid);
final TextView password = mView.findViewById(R.id.password);
final Spinner securitySpinner = mView.findViewById(R.id.security);
assertThat(password).isNotNull();
@@ -195,6 +198,16 @@
mController.onItemSelected(securitySpinner, null, AccessPoint.SECURITY_EAP, 0);
mController.onItemSelected(securitySpinner, null, AccessPoint.SECURITY_PSK, 0);
password.setText(GOOD_PSK);
+ ssid.setText(GOOD_SSID);
+
+ assertThat(mController.isSubmittable()).isTrue();
+ }
+
+ @Test
+ public void isSubmittable_EapWithAkaMethod_shouldReturnTrue() {
+ when(mAccessPoint.isSaved()).thenReturn(true);
+ mController.mAccessPointSecurity = AccessPoint.SECURITY_EAP;
+ mView.findViewById(R.id.l_ca_cert).setVisibility(View.GONE);
assertThat(mController.isSubmittable()).isTrue();
}
diff --git a/tests/unit/src/com/android/settings/homepage/CardContentLoaderTest.java b/tests/unit/src/com/android/settings/homepage/CardContentLoaderTest.java
new file mode 100644
index 0000000..1f762bb
--- /dev/null
+++ b/tests/unit/src/com/android/settings/homepage/CardContentLoaderTest.java
@@ -0,0 +1,67 @@
+/*
+ * 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.homepage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(AndroidJUnit4.class)
+public class CardContentLoaderTest {
+
+ private Context mContext;
+ private CardContentLoader mCardContentLoader;
+
+ @Before
+ public void setUp() {
+ mContext = InstrumentationRegistry.getTargetContext();
+ mCardContentLoader = new CardContentLoader(mContext);
+ }
+
+ @Test
+ public void filter_twoInvalidCards_shouldReturnOneCard() {
+ final String sliceUri1 = "content://com.android.settings.slices/action/flashlight"; //valid
+ final String sliceUri2 = "content://com.android.settings.test.slices/action/flashlight";
+ final String sliceUri3 = "cotent://com.android.settings.slices/action/flashlight";
+
+ final List<ContextualCard> cards = new ArrayList<>();
+ cards.add(getContextualCard(sliceUri1));
+ cards.add(getContextualCard(sliceUri2));
+ cards.add(getContextualCard(sliceUri3));
+
+ final List<ContextualCard> result = mCardContentLoader.filter(cards);
+
+ assertThat(result).hasSize(1);
+ }
+
+ private ContextualCard getContextualCard(String sliceUri) {
+ return new ContextualCard.Builder()
+ .setName("test_card")
+ .setCardType(ContextualCard.CardType.SLICE)
+ .setSliceUri(sliceUri)
+ .build();
+ }
+}
diff --git a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java b/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
similarity index 68%
rename from tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
rename to tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
index 4b237a0..89ec476 100644
--- a/tests/robotests/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
+++ b/tests/unit/src/com/android/settings/homepage/SettingsHomepageActivityTest.java
@@ -16,25 +16,28 @@
package com.android.settings.homepage;
+import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
+
import static com.android.settings.homepage.SettingsHomepageActivity.PERSONAL_SETTINGS_TAG;
import static com.google.common.truth.Truth.assertThat;
import android.content.Context;
+import android.content.Intent;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
import android.util.FeatureFlagUtils;
import androidx.fragment.app.Fragment;
import com.android.settings.core.FeatureFlags;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.Robolectric;
-import org.robolectric.RuntimeEnvironment;
-@RunWith(SettingsRobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
public class SettingsHomepageActivityTest {
private Context mContext;
@@ -42,16 +45,27 @@
@Before
public void setUp() {
- mContext = RuntimeEnvironment.application;
+ mContext = InstrumentationRegistry.getTargetContext();
FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DYNAMIC_HOMEPAGE, true);
}
+ @After
+ public void tearDown() {
+ FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DYNAMIC_HOMEPAGE, false);
+ }
+
@Test
public void launchHomepage_shouldOpenPersonalSettings() {
- mActivity = Robolectric.setupActivity(SettingsHomepageActivity.class);
+ final Intent intent = new Intent().setClass(mContext, SettingsHomepageActivity.class)
+ .addFlags(FLAG_ACTIVITY_NEW_TASK);
+
+ mActivity = (SettingsHomepageActivity) InstrumentationRegistry.getInstrumentation()
+ .startActivitySync(intent);
+
final Fragment fragment = mActivity.getSupportFragmentManager()
.findFragmentByTag(PERSONAL_SETTINGS_TAG);
assertThat(fragment).isInstanceOf(PersonalSettingsFragment.class);
}
+
}
diff --git a/tests/unit/src/com/android/settings/slices/SliceDeepLinkSpringBoardTest.java b/tests/unit/src/com/android/settings/slices/SliceDeepLinkSpringBoardTest.java
index dfeca5f..81f1fac 100644
--- a/tests/unit/src/com/android/settings/slices/SliceDeepLinkSpringBoardTest.java
+++ b/tests/unit/src/com/android/settings/slices/SliceDeepLinkSpringBoardTest.java
@@ -16,7 +16,7 @@
package com.android.settings.slices;
-import static com.android.settings.search.DeviceIndexFeatureProvider.createDeepLink;
+import static com.android.settings.slices.SliceDeepLinkSpringBoard.createDeepLink;
import android.content.Context;
import android.content.Intent;